Closes #46
Unified · Split
| @@ -1,10 +1,17 @@ | |||
| 1 | cmake_minimum_required(VERSION 3.1) | 1 | cmake_minimum_required(VERSION 3.1) |
| 2 | project(libsamplerate VERSION 0.1.9 LANGUAGES C) | 2 | project(libsamplerate VERSION 0.1.9 LANGUAGES C) |
| 3 | 3 | ||
| 4 | option(LIBSAMPLERATE_TESTS "Enable to generate test targets" ON) | 4 | if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) |
| 5 | option(LIBSAMPLERATE_INSTALL "Enable to add install directives" ON) | 5 | set(LIBSAMPLERATE_IS_ROOT_PROJECT ON) |
| 6 | else() | ||
| 7 | set(LIBSAMPLERATE_IS_ROOT_PROJECT OFF) | ||
| 8 | endif() | ||
| 9 | |||
| 10 | option(LIBSAMPLERATE_TESTS "Enable to generate test targets" ${LIBSAMPLERATE_IS_ROOT_PROJECT}) | ||
| 11 | option(LIBSAMPLERATE_EXAMPLES "Enable to generate examples" ${LIBSAMPLERATE_IS_ROOT_PROJECT}) | ||
| 12 | option(LIBSAMPLERATE_INSTALL "Enable to add install directives" ${LIBSAMPLERATE_IS_ROOT_PROJECT}) | ||
| 6 | 13 | ||
| 7 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake) | 14 | list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) |
| 8 | 15 | ||
| 9 | include(TestBigEndian) | 16 | include(TestBigEndian) |
| 10 | include(CheckFunctionExists) | 17 | include(CheckFunctionExists) |
| @@ -104,7 +111,7 @@ endif() · 93 unmodified lines | |||
| 104 | 111 | ||
| 105 | if(LIBSAMPLERATE_TESTS) | 112 | if(LIBSAMPLERATE_TESTS) |
| 106 | 113 | ||
| 107 | enable_testing() | 114 | enable_testing() |
| 108 | 115 | ||
| 109 | file(GLOB TEST_SRCS ${PROJECT_SOURCE_DIR}/tests/*_test.c) | 116 | file(GLOB TEST_SRCS ${PROJECT_SOURCE_DIR}/tests/*_test.c) |
| 110 | 117 | ||
| @@ -117,10 +124,12 @@ foreach(testSrc ${TEST_SRCS}) · 6 unmodified lines | |||
| 117 | target_link_libraries(${testName} PUBLIC samplerate) | 124 | target_link_libraries(${testName} PUBLIC samplerate) |
| 118 | if(FFTW_FOUND) | 125 | if(FFTW_FOUND) |
| 119 | target_link_libraries(${testName} PUBLIC ${FFTW_LIBRARY}) | 126 | target_link_libraries(${testName} PUBLIC ${FFTW_LIBRARY}) |
| 120 | endif() | 127 | endif() |
| 121 | add_test(NAME ${testName} COMMAND ${testName}) | 128 | add_test(NAME ${testName} COMMAND ${testName}) |
| 122 | endforeach(testSrc) | 129 | endforeach(testSrc) |
| 130 | endif() | ||
| 123 | 131 | ||
| 132 | if(LIBSAMPLERATE_EXAMPLES) | ||
| 124 | set(EXAMPLE_SRCS | 133 | set(EXAMPLE_SRCS |
| 125 | ${PROJECT_SOURCE_DIR}/examples/timewarp-file.c | 134 | ${PROJECT_SOURCE_DIR}/examples/timewarp-file.c |
| 126 | ${PROJECT_SOURCE_DIR}/examples/varispeed-play.c) | 135 | ${PROJECT_SOURCE_DIR}/examples/varispeed-play.c) |
| @@ -147,19 +156,19 @@ endforeach(exampleSrc) · 20 unmodified lines | |||
| 147 | endif() | 156 | endif() |
| 148 | 157 | ||
| 149 | if(LIBSAMPLERATE_INSTALL) | 158 | if(LIBSAMPLERATE_INSTALL) |
| 150 | set(prefix ${CMAKE_INSTALL_PREFIX}) | 159 | set(prefix ${CMAKE_INSTALL_PREFIX}) |
| 151 | set(exec_prefix "\${prefix}") | 160 | set(exec_prefix "\${prefix}") |
| 152 | set(includedir "\${prefix}/include") | 161 | set(includedir "\${prefix}/include") |
| 153 | set(libdir "\${exec_prefix}/lib") | 162 | set(libdir "\${exec_prefix}/lib") |
| 154 | set(VERSION "${PROJECT_VERSION}") | 163 | set(VERSION "${PROJECT_VERSION}") |
| 155 | if(NEED_MATH) | 164 | if(NEED_MATH) |
| 156 | set(LIBS "-lm") | 165 | set(LIBS "-lm") |
| 157 | endif() | 166 | endif() |
| 158 | configure_file(samplerate.pc.in samplerate.pc @ONLY) | 167 | configure_file(samplerate.pc.in samplerate.pc @ONLY) |
| 159 | 168 | ||
| 160 | install(TARGETS samplerate DESTINATION lib) | 169 | install(TARGETS samplerate DESTINATION lib) |
| 161 | install(FILES src/samplerate.h DESTINATION include) | 170 | install(FILES src/samplerate.h DESTINATION include) |
| 162 | install(DIRECTORY doc/ DESTINATION share/doc/libsamplerate) | 171 | install(DIRECTORY doc/ DESTINATION share/doc/libsamplerate) |
| 163 | install(FILES ${CMAKE_BINARY_DIR}/samplerate.pc DESTINATION lib/pkgconfig) | 172 | install(FILES ${CMAKE_BINARY_DIR}/samplerate.pc DESTINATION lib/pkgconfig) |
| 164 | 173 | ||
| 165 | endif() | 174 | endif() |