Browse Source

Update CMakeLists.txt

tags/5.1.0
Francesco Bertolaccini 6 years ago
parent
commit
d3a4e88162
1 changed files with 26 additions and 58 deletions
  1. +26
    -58
      CMakeLists.txt

+ 26
- 58
CMakeLists.txt View File

@@ -1,5 +1,5 @@
# Set minimum CMake required version for this project.
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
cmake_minimum_required(VERSION 3.10 FATAL_ERROR)

# Define a C++ project.
project(RtAudio LANGUAGES CXX)
@@ -24,20 +24,12 @@ elseif(UNIX AND NOT APPLE)
endif()

# Necessary for Windows
if(WIN32)
set(CMAKE_DEBUG_POSTFIX "d")
endif()

if(MINGW)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
endif()

# Build Options
option(RTAUDIO_BUILD_SHARED_LIBS "Compile library shared lib." TRUE)
option(RTAUDIO_BUILD_STATIC_LIBS "Compile library static lib." TRUE)
option(RTAUDIO_BUILD_TESTING "Compile test programs." TRUE)
option(RTAUDIO_BUILD_PYTHON "Build PyRtAudio python bindings" OFF)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type (Release,Debug)")
set(RTAUDIO_TARGETNAME_UNINSTALL "uninstall" CACHE STRING "Name of 'uninstall' build target")

# API Options
@@ -204,57 +196,33 @@ endif()
# Create library targets.
cmake_policy(SET CMP0042 OLD)
set(LIB_TARGETS)
if(RTAUDIO_BUILD_SHARED_LIBS)
add_library(rtaudio SHARED ${rtaudio_SOURCES})
list(APPEND LIB_TARGETS rtaudio)

# Add headers destination for install rule.
set_target_properties(rtaudio PROPERTIES PUBLIC_HEADER RtAudio.h
SOVERSION ${SO_VER}
VERSION ${FULL_VER})

# Set include paths, populate target interface.
target_include_directories(rtaudio PRIVATE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
${INCDIRS})

# Set compile-time definitions
target_compile_definitions(rtaudio PRIVATE ${API_DEFS})
target_compile_definitions(rtaudio PRIVATE RTAUDIO_EXPORT)

target_link_libraries(rtaudio ${LINKLIBS})
endif()

if(RTAUDIO_BUILD_STATIC_LIBS)
add_library(rtaudio_static STATIC ${rtaudio_SOURCES})
list(APPEND LIB_TARGETS rtaudio_static)

# Add headers destination for install rule.
set_target_properties(rtaudio_static PROPERTIES PUBLIC_HEADER RtAudio.h
SOVERSION ${SO_VER}
VERSION ${FULL_VER})

# Set include paths, populate target interface.
target_include_directories(rtaudio_static PRIVATE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
${INCDIRS})

# Set compile-time definitions
target_compile_definitions(rtaudio_static PRIVATE ${API_DEFS})
add_library(rtaudio ${rtaudio_SOURCES})
list(APPEND LIB_TARGETS rtaudio)
# Add headers destination for install rule.
set_target_properties(rtaudio PROPERTIES PUBLIC_HEADER RtAudio.h
SOVERSION ${SO_VER}
VERSION ${FULL_VER})
# Set include paths, populate target interface.
target_include_directories(rtaudio PRIVATE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
${INCDIRS})
# Set compile-time definitions
target_compile_definitions(rtaudio PRIVATE ${API_DEFS})
target_compile_definitions(rtaudio PRIVATE RTAUDIO_EXPORT)
target_link_libraries(rtaudio ${LINKLIBS})

target_link_libraries(rtaudio_static ${LINKLIBS})
endif()

# Set standard installation directories.
include(GNUInstallDirs)

# Subdirs
if (RTAUDIO_BUILD_TESTING)
include(CTest)
include(CTest)

if (BUILD_TESTING)
add_subdirectory(tests)
endif (RTAUDIO_BUILD_TESTING)
endif()

# Message
string(REPLACE ";" " " apilist "${API_LIST}")
@@ -278,14 +246,14 @@ install(TARGETS ${LIB_TARGETS}
export(PACKAGE RtAudio)

# Set installation path for CMake files.
if(WIN32)
set(RTAUDIO_CMAKE_DESTINATION cmake)
else()
set(RTAUDIO_CMAKE_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/RtAudio)
endif()
set(RTAUDIO_CMAKE_DESTINATION share/rtaudio)

# Create CMake configuration export file.
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/RtAudioConfig.cmake "include(\${CMAKE_CURRENT_LIST_DIR}/RtAudioTargets.cmake)")
if(NEED_PTHREAD)
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/RtAudioConfig.cmake "find_package(Threads REQUIRED)\n")
endif()

file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/RtAudioConfig.cmake "include(\${CMAKE_CURRENT_LIST_DIR}/RtAudioTargets.cmake)")

# Install CMake configuration export file.
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/RtAudioConfig.cmake


Loading…
Cancel
Save