[cmake] support previous RTAUDIO_BUILD_* variables
authorStephen Sinclair <radarsat1@gmail.com>
Tue, 16 Apr 2019 21:52:09 +0000 (23:52 +0200)
committerStephen Sinclair <radarsat1@gmail.com>
Tue, 16 Apr 2019 21:52:09 +0000 (23:52 +0200)
Compromise for changes in CMake build introduced by previous commit
that would interfere with use with add_subdirectory.

Re-adds:

- RTAUDIO_BUILD_TESTING
- RTAUDIO_BUILD_SHARED_LIBS
- RTAUDIO_BUILD_STATIC_LIBS

These now override BUILD_TESTING, BUILD_SHARED_LIBS, BUILD_STATIC_LIBS,
but only if they are defined and are not "".

CMakeLists.txt

index 178694720901abaa23da46eec0977ffb2f2d2c08..b88963ff7c26ab940eab9041aa381dd59d7611d2 100644 (file)
@@ -207,17 +207,36 @@ endif()
 cmake_policy(SET CMP0042 OLD)
 set(LIB_TARGETS)
 
-add_library(rtaudio ${rtaudio_SOURCES})
+# Use RTAUDIO_BUILD_SHARED_LIBS / RTAUDIO_BUILD_STATIC_LIBS if they
+# are defined, otherwise default to standard BUILD_SHARED_LIBS.
+if (DEFINED RTAUDIO_BUILD_SHARED_LIBS)
+  if (RTAUDIO_BUILD_SHARED_LIBS)
+    add_library(rtaudio SHARED ${rtaudio_SOURCES})
+  else()
+    add_library(rtaudio STATIC ${rtaudio_SOURCES})
+  endif()
+elseif (DEFINED RTAUDIO_BUILD_STATIC_LIBS)
+  if (RTAUDIO_BUILD_STATIC_LIBS)
+    add_library(rtaudio STATIC ${rtaudio_SOURCES})
+  else()
+    add_library(rtaudio SHARED ${rtaudio_SOURCES})
+  endif()
+else()
+  add_library(rtaudio ${rtaudio_SOURCES})
+endif()
 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)
@@ -230,7 +249,10 @@ include(GNUInstallDirs)
 # Subdirs
 include(CTest)
 
-if (BUILD_TESTING)
+if (NOT DEFINED RTAUDIO_BUILD_TESTING OR RTAUDIO_BUILD_TESTING STREQUAL "")
+  set(RTAUDIO_BUILD_TESTING ${BUILD_TESTING})
+endif()
+if (RTAUDIO_BUILD_TESTING)
   add_subdirectory(tests)
 endif()