diff --git a/CMakeLists.txt b/CMakeLists.txt index 9d9b7c3..08b446f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,13 @@ project(kissfft VERSION "${MAKEFILE_EXTRACTED_VERSION}") option(KISSFFT_SIMD "Build kissfft with SIMD" OFF) option(KISSFFT_FLOAT "Build kissfft with float type" ON) option(KISSFFT_OPENMP "Build kissfft with openmp" OFF) +option(KISSFFT_TOOLS "Build kissfft tools" ON) +option(KISSFFT_TEST "Build and enable kissfft tests" ON) +option(KISSFFT_INSTALL "Enable kissfft install" ON) + +if (KISSFFT_INSTALL) + include(GNUInstallDirs) +endif() if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|AppleClang") add_compile_options(-ffast-math -fomit-frame-pointer @@ -93,20 +100,16 @@ function(add_kissfft_executable NAME) OUTPUT_NAME "${NAME}_${KISSFFT_DATATYPE}") endfunction() -option(KISSFFT_TOOLS "Build kissfft tools" ON) if(KISSFFT_TOOLS) add_subdirectory(tools) endif() -option(KISSFFT_TEST "Build and enable kissfft tests" ON) if(KISSFFT_TEST) enable_testing() add_subdirectory(test) endif() -option(KISSFFT_INSTALL "Enable kissfft install" ON) if (KISSFFT_INSTALL) - include(GNUInstallDirs) install(TARGETS kissfft EXPORT kissfft ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 2ed4aa2..fd225ad 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -6,12 +6,28 @@ target_compile_definitions(fastconv PRIVATE FAST_FILT_UTIL) add_kissfft_executable(fft fftutil.c kiss_fftnd.c kiss_fftr.c kiss_fftndr.c) + +if (KISSFFT_INSTALL) + install(TARGETS fastconv fastconvr fft + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +endif() + # psdpng does not build with "simd" datatype if(NOT KISSFFT_DATATYPE MATCHES "simd") include(FindPkgConfig) pkg_check_modules(libpng REQUIRED IMPORTED_TARGET libpng) add_kissfft_executable(psdpng psdpng.c kiss_fftr.c) target_link_libraries(psdpng PRIVATE PkgConfig::libpng) + if (KISSFFT_INSTALL) + install(TARGETS psdpng + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + endif() endif() #FIXME: dumphdr.c is not available