# 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)
# WASAPI
if (RTAUDIO_API_WASAPI)
+ include_directories(include)
set(NEED_WIN32LIBS ON)
list(APPEND LINKLIBS ksuser mfplat mfuuid wmcodecdspuuid)
list(APPEND API_DEFS "-D__WINDOWS_WASAPI__")
# 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)
# 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)
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}")
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}
endif()
# Create CMake configuration export file.
-file(WRITE ${CMAKE_BINARY_DIR}/RtAudioConfig.cmake "include(\${CMAKE_CURRENT_LIST_DIR}/RtAudioTargets.cmake)")
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/RtAudioConfig.cmake "include(\${CMAKE_CURRENT_LIST_DIR}/RtAudioTargets.cmake)")
# Install CMake configuration export file.
-install(FILES ${CMAKE_BINARY_DIR}/RtAudioConfig.cmake
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/RtAudioConfig.cmake
DESTINATION ${RTAUDIO_CMAKE_DESTINATION})
# Export library target (build-tree).
# Configure uninstall target.
configure_file(
- "${CMAKE_SOURCE_DIR}/cmake/RtAudioConfigUninstall.cmake.in"
- "${CMAKE_BINARY_DIR}/RtAudioConfigUninstall.cmake" @ONLY)
+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake/RtAudioConfigUninstall.cmake.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/RtAudioConfigUninstall.cmake" @ONLY)
# Create uninstall target.
-add_custom_target(uninstall
- COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/RtAudioConfigUninstall.cmake)
+add_custom_target(${RTAUDIO_TARGETNAME_UNINSTALL}
+ COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/RtAudioConfigUninstall.cmake)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/rtaudio.pc