Permalink
Cannot retrieve contributors at this time
| macro(use_c99) | |
| if(CMAKE_VERSION VERSION_LESS "3.1") | |
| if(CMAKE_C_COMPILER_ID STREQUAL "GNU") | |
| set(CMAKE_C_FLAGS "--std=gnu99 -pedantic ${CMAKE_C_FLAGS}") | |
| endif() | |
| else() | |
| set(CMAKE_C_STANDARD 99) | |
| endif() | |
| endmacro(use_c99) | |
| use_c99() | |
| configure_file(config.h.in ${PROJECT_SOURCE_DIR}/src/config.h) | |
| if(NOT MSVC) | |
| if(NOT WIN32) | |
| find_library(MATH m) | |
| else() | |
| set(MATH "") | |
| endif() | |
| include(FindZLIB) | |
| else() | |
| set(MATH "") | |
| find_program(NUGET nuget) | |
| if(NUGET) | |
| execute_process(COMMAND ${NUGET} install zlib) | |
| endif() | |
| include_directories( | |
| ${PROJECT_SOURCE_DIR}/windows/third-party/zlib-1.2.11/include/) | |
| endif() | |
| if(NOT MSVC) | |
| if(NOT WIN32) | |
| find_library(MATH m) | |
| else() | |
| set(MATH "") | |
| endif() | |
| include(FindZLIB) | |
| include_directories(${ZLIB_INCLUDE_DIRS}) | |
| set(PKG_CONFIG_PRIVATELIBS "-lm ${PKG_CONFIG_PRIVATELIBS}") | |
| set(PKG_CONFIG_PRIVATELIBS "-lz ${PKG_CONFIG_PRIVATELIBS}") | |
| else() | |
| set(MATH "") | |
| find_program(NUGET nuget) | |
| if(NOT NUGET) | |
| message( | |
| FATAL | |
| "Cannot find nuget command line tool.\nInstall it with e.g. choco install nuget.commandline" | |
| ) | |
| else() | |
| execute_process(COMMAND ${NUGET} install zlib) | |
| endif() | |
| include_directories( | |
| ${PROJECT_SOURCE_DIR}/windows/third-party/zlib-1.2.11/include/) | |
| endif() | |
| set(libsrc | |
| hrtf/reader.c | |
| hdf/superblock.c | |
| hdf/dataobject.c | |
| hdf/btree.c | |
| hdf/fractalhead.c | |
| hdf/gunzip.c | |
| hdf/gcol.c | |
| hrtf/check.c | |
| hrtf/spherical.c | |
| hrtf/lookup.c | |
| hrtf/tools.c | |
| hrtf/kdtree.c | |
| hrtf/neighbors.c | |
| hrtf/interpolate.c | |
| hrtf/resample.c | |
| hrtf/loudness.c | |
| hrtf/minphase.c | |
| hrtf/easy.c | |
| hrtf/cache.c | |
| resampler/speex_resampler.c) | |
| if(BUILD_STATIC_LIBS) | |
| add_library(mysofa-static STATIC ${libsrc}) | |
| target_link_libraries(mysofa-static LINK_PRIVATE ${MATH} ${ZLIB_LIBRARIES}) | |
| set_target_properties( | |
| mysofa-static | |
| PROPERTIES OUTPUT_NAME mysofa CLEAN_DIRECT_OUTPUT 1 POSITION_INDEPENDENT_CODE | |
| ON) | |
| install(TARGETS mysofa-static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) | |
| if(UNIX | |
| AND CODE_COVERAGE | |
| AND CMAKE_CXX_COMPILER_ID MATCHES "GNU") | |
| target_compile_options(mysofa-static PUBLIC -g -O0 -Wall -fprofile-arcs | |
| -ftest-coverage) | |
| if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.13) | |
| target_link_options(mysofa-static PUBLIC --coverage) | |
| else() | |
| target_link_libraries(mysofa-static LINK_PUBLIC gcov --coverage) | |
| endif() | |
| endif() | |
| endif() | |
| if(BUILD_SHARED_LIBS) | |
| add_library(mysofa-shared SHARED ${libsrc}) | |
| target_link_libraries(mysofa-shared PRIVATE ${MATH} ${ZLIB_LIBRARIES}) | |
| set_target_properties(mysofa-shared | |
| PROPERTIES OUTPUT_NAME mysofa CLEAN_DIRECT_OUTPUT 1) | |
| set_property( | |
| TARGET mysofa-shared | |
| PROPERTY | |
| VERSION | |
| "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}" | |
| ) | |
| set_property(TARGET mysofa-shared PROPERTY SOVERSION | |
| ${CPACK_PACKAGE_VERSION_MAJOR}) | |
| set_property(TARGET mysofa-shared PROPERTY C_VISIBILITY_PRESET hidden) | |
| generate_export_header(mysofa-shared BASE_NAME mysofa EXPORT_FILE_NAME | |
| ${PROJECT_SOURCE_DIR}/src/hrtf/mysofa_export.h) | |
| if(UNIX | |
| AND CODE_COVERAGE | |
| AND CMAKE_CXX_COMPILER_ID MATCHES "GNU") | |
| target_compile_options(mysofa-shared PUBLIC -g -O0 -Wall -fprofile-arcs | |
| -ftest-coverage) | |
| if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.13) | |
| target_link_options(mysofa-shared PUBLIC --coverage) | |
| else() | |
| target_link_libraries(mysofa-shared LINK_PUBLIC gcov --coverage) | |
| endif() | |
| endif() | |
| install( | |
| TARGETS mysofa-shared | |
| RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} | |
| LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) | |
| else() | |
| generate_export_header(mysofa-static BASE_NAME mysofa EXPORT_FILE_NAME | |
| ${PROJECT_SOURCE_DIR}/src/hrtf/mysofa_export.h) | |
| endif() | |
| install(FILES hrtf/mysofa.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) | |
| if(BUILD_TESTS) | |
| add_executable(mysofa2json tests/sofa2json.c tests/json.c) | |
| if(BUILD_STATIC_LIBS) | |
| target_link_libraries(mysofa2json mysofa-static) | |
| else() | |
| target_link_libraries(mysofa2json mysofa-shared) | |
| endif() | |
| add_executable( | |
| external | |
| tests/external.c | |
| tests/check.c | |
| tests/lookup.c | |
| tests/neighbors.c | |
| tests/interpolate.c | |
| tests/resample.c | |
| tests/loudness.c | |
| tests/minphase.c | |
| tests/easy.c | |
| tests/cache.c | |
| tests/json.c | |
| tests/user_defined_variable.c) | |
| if(BUILD_STATIC_LIBS) | |
| target_link_libraries(external mysofa-static ${CUNIT_LIBRARIES}) | |
| else() | |
| target_link_libraries(external mysofa-shared ${CUNIT_LIBRARIES} m) | |
| endif() | |
| add_test( | |
| NAME external | |
| WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} | |
| COMMAND external) | |
| add_executable(internal tests/internal.c tests/tools.c hrtf/tools.c) | |
| target_link_libraries(internal m ${CUNIT_LIBRARIES}) | |
| add_test( | |
| NAME internal | |
| WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} | |
| COMMAND internal) | |
| add_executable(multithread tests/multithread.c) | |
| if(BUILD_STATIC_LIBS) | |
| target_link_libraries(multithread mysofa-static pthread) | |
| else() | |
| target_link_libraries(multithread mysofa-shared pthread m) | |
| endif() | |
| add_test( | |
| NAME multithread | |
| WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} | |
| COMMAND multithread) | |
| if(UNIX | |
| AND CODE_COVERAGE | |
| AND CMAKE_CXX_COMPILER_ID MATCHES "GNU") | |
| target_compile_options(internal PUBLIC -g -O0 -Wall -fprofile-arcs | |
| -ftest-coverage) | |
| target_link_libraries(internal gcov --coverage) | |
| endif() | |
| install( | |
| TARGETS mysofa2json | |
| RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} | |
| ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} | |
| LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) | |
| endif(BUILD_TESTS) | |
| set(PKG_CONFIG_PRIVATELIBS | |
| "${PKG_CONFIG_PRIVATELIBS}" | |
| PARENT_SCOPE) |