X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=CMakeLists.txt;h=cc05b2a286b2752e02f2cbe47f1d2fccb99643ad;hb=8b274949714bc46e0a780c73c921526762a24a56;hp=6b027c7d5b88aba65e9eb13a711bd1673e14f2f9;hpb=d25f1ee06c76457e3b343231e72661d7a28e225c;p=rtaudio-cdist.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b027c7..cc05b2a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,16 +25,20 @@ endif() # Necessary for Windows if(WIN32) - set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) set(CMAKE_DEBUG_POSTFIX "d") endif() +if(MINGW) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +endif() + # Build Options -option(BUILD_SHARED_LIBS "Compile library shared lib." TRUE) -option(BUILD_STATIC_LIBS "Compile library static lib." TRUE) -option(BUILD_TESTING "Compile test programs." TRUE) -option(BUILD_PYTHON "Build PyRtAudio python bindings" OFF) +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 option(RTAUDIO_API_DS "Build DirectSound API" OFF) @@ -177,8 +181,9 @@ endif() # WASAPI if (RTAUDIO_API_WASAPI) + include_directories(include) set(NEED_WIN32LIBS ON) - list(APPEND LINKLIBS uuid ksuser) + list(APPEND LINKLIBS ksuser mfplat mfuuid wmcodecdspuuid) list(APPEND API_DEFS "-D__WINDOWS_WASAPI__") list(APPEND API_LIST "wasapi") endif() @@ -199,7 +204,7 @@ endif() # Create library targets. cmake_policy(SET CMP0042 OLD) set(LIB_TARGETS) -if(BUILD_SHARED_LIBS) +if(RTAUDIO_BUILD_SHARED_LIBS) add_library(rtaudio SHARED ${rtaudio_SOURCES}) list(APPEND LIB_TARGETS rtaudio) @@ -216,11 +221,12 @@ if(BUILD_SHARED_LIBS) # 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(BUILD_STATIC_LIBS) +if(RTAUDIO_BUILD_STATIC_LIBS) add_library(rtaudio_static STATIC ${rtaudio_SOURCES}) list(APPEND LIB_TARGETS rtaudio_static) @@ -245,10 +251,10 @@ endif() include(GNUInstallDirs) # Subdirs -if (BUILD_TESTING) +if (RTAUDIO_BUILD_TESTING) include(CTest) add_subdirectory(tests) -endif (BUILD_TESTING) +endif (RTAUDIO_BUILD_TESTING) # Message string(REPLACE ";" " " apilist "${API_LIST}") @@ -258,7 +264,7 @@ message(STATUS "Compiling with support for: ${apilist}") string(REPLACE ";" " " req "${PKGCONFIG_REQUIRES}") string(REPLACE ";" " " api "${API_DEFS}") set(prefix ${CMAKE_INSTALL_PREFIX}) -configure_file("rtaudio.pc.in" "rtaudio.pc" @ONLY) +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/rtaudio.pc.in" "rtaudio.pc" @ONLY) # Add install rule. install(TARGETS ${LIB_TARGETS} @@ -300,7 +306,7 @@ configure_file( "${CMAKE_CURRENT_BINARY_DIR}/RtAudioConfigUninstall.cmake" @ONLY) # Create uninstall target. -add_custom_target(uninstall +add_custom_target(${RTAUDIO_TARGETNAME_UNINSTALL} COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/RtAudioConfigUninstall.cmake) install(