ref: af1d8845ac354530bc7deae0cd66f9d402e1e4a8
parent: 0b3d1dbaa0f9aea83647adae64129be746b50ed0
author: Flamefire <[email protected]>
date: Tue Jul 23 08:44:02 EDT 2019
Enable tests, examples and install per default if libsamplerate is root project Closes #46
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,11 +1,18 @@
cmake_minimum_required(VERSION 3.1)
project(libsamplerate VERSION 0.1.9 LANGUAGES C)
-option(LIBSAMPLERATE_TESTS "Enable to generate test targets" ON)
-option(LIBSAMPLERATE_INSTALL "Enable to add install directives" ON)
+if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+ set(LIBSAMPLERATE_IS_ROOT_PROJECT ON)
+else()
+ set(LIBSAMPLERATE_IS_ROOT_PROJECT OFF)
+endif()
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake)
+option(LIBSAMPLERATE_TESTS "Enable to generate test targets" ${LIBSAMPLERATE_IS_ROOT_PROJECT})
+option(LIBSAMPLERATE_EXAMPLES "Enable to generate examples" ${LIBSAMPLERATE_IS_ROOT_PROJECT})
+option(LIBSAMPLERATE_INSTALL "Enable to add install directives" ${LIBSAMPLERATE_IS_ROOT_PROJECT})
+list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
+
include(TestBigEndian)
include(CheckFunctionExists)
include(CheckIncludeFiles)
@@ -104,7 +111,7 @@
if(LIBSAMPLERATE_TESTS)
-enable_testing()
+ enable_testing()
file(GLOB TEST_SRCS ${PROJECT_SOURCE_DIR}/tests/*_test.c)
@@ -117,10 +124,12 @@
target_link_libraries(${testName} PUBLIC samplerate)
if(FFTW_FOUND)
target_link_libraries(${testName} PUBLIC ${FFTW_LIBRARY})
- endif()
+endif()
add_test(NAME ${testName} COMMAND ${testName})
endforeach(testSrc)
+endif()
+if(LIBSAMPLERATE_EXAMPLES)
set(EXAMPLE_SRCS
${PROJECT_SOURCE_DIR}/examples/timewarp-file.c
${PROJECT_SOURCE_DIR}/examples/varispeed-play.c)
@@ -147,19 +156,19 @@
endif()
if(LIBSAMPLERATE_INSTALL)
-set(prefix ${CMAKE_INSTALL_PREFIX})
-set(exec_prefix "\${prefix}")
-set(includedir "\${prefix}/include")
-set(libdir "\${exec_prefix}/lib")
-set(VERSION "${PROJECT_VERSION}")
-if(NEED_MATH)
- set(LIBS "-lm")
-endif()
-configure_file(samplerate.pc.in samplerate.pc @ONLY)
+ set(prefix ${CMAKE_INSTALL_PREFIX})
+ set(exec_prefix "\${prefix}")
+ set(includedir "\${prefix}/include")
+ set(libdir "\${exec_prefix}/lib")
+ set(VERSION "${PROJECT_VERSION}")
+ if(NEED_MATH)
+ set(LIBS "-lm")
+ endif()
+ configure_file(samplerate.pc.in samplerate.pc @ONLY)
-install(TARGETS samplerate DESTINATION lib)
-install(FILES src/samplerate.h DESTINATION include)
-install(DIRECTORY doc/ DESTINATION share/doc/libsamplerate)
-install(FILES ${CMAKE_BINARY_DIR}/samplerate.pc DESTINATION lib/pkgconfig)
+ install(TARGETS samplerate DESTINATION lib)
+ install(FILES src/samplerate.h DESTINATION include)
+ install(DIRECTORY doc/ DESTINATION share/doc/libsamplerate)
+ install(FILES ${CMAKE_BINARY_DIR}/samplerate.pc DESTINATION lib/pkgconfig)
endif()