this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

cmake more work

+70 -8
+58 -8
CMakeLists.txt
··· 1 - cmake_minimum_required(VERSION 2.8) 2 - project(kissfft) 1 + file(READ Makefile _MAKEFILE_CONTENTS) 2 + string(REGEX MATCH "KFVER=([0-9]+)\n" KFVER_MATCH "${_MAKEFILE_CONTENTS}") 3 + if(NOT KFVER_MATCH) 4 + message(FATAL_ERROR "Cannot extract version from Makefile") 5 + endif() 6 + set(MAKEFILE_EXTRACTED_VERSION "${CMAKE_MATCH_1}") 7 + 8 + cmake_minimum_required(VERSION 3.3) 9 + project(kissfft VERSION "${MAKEFILE_EXTRACTED_VERSION}") 10 + 11 + option(KISSFFT_SIMD "Build kissfft with SIMD") 12 + option(KISSFFT_FLOAT "Build kissfft with float type" ON) 13 + 14 + set(KISSFFT_FIXED_WIDTH_VALID 16 32) 15 + set(KISSFFT_FIXED_WIDTH "16" CACHE STRING "Width of kissfft fixed integer (16/32)") 16 + set_property(CACHE KISSFFT_FIXED_WIDTH PROPERTY STRINGS ${KISSFFT_FIXED_WIDTH_VALID}) 17 + if(NOT KISSFFT_FIXED_WIDTH IN_LIST KISSFFT_FIXED_WIDTH_VALID) 18 + message(FATAL_ERROR "KISSFFT_FIXED_WIDTH must be 16 or 32") 19 + endif() 20 + 21 + set(KISSFFT_FLOAT_TYPE_VALID float double) 22 + set(KISSFFT_FLOAT_TYPE "float" CACHE STRING "Floating type of kissfft (float/double)") 23 + set_property(CACHE KISSFFT_FLOAT_TYPE PROPERTY STRINGS ${KISSFFT_FLOAT_TYPE_VALID}) 24 + if(NOT KISSFFT_FLOAT_TYPE IN_LIST KISSFFT_FLOAT_TYPE_VALID) 25 + message(FATAL_ERROR "KISSFFT_FLOAT_TYPE must be float or double") 26 + endif() 3 27 4 28 add_library(kissfft 5 29 kiss_fft.c) 6 30 add_library(kissfft::kissfft ALIAS kissfft) 7 31 8 32 target_include_directories(kissfft PUBLIC 9 - $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> 33 + $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}> 10 34 $<INSTALL_INTERFACE:.>) 11 35 36 + set(KISSFFT_SUFFIX) 37 + if(KISSFFT_SIMD) 38 + target_compile_definitions(kissfft PUBLIC USE_SIMD) 39 + set(KISSFFT_SUFFIX "${KISSFFT_SUFFIX}_simd") 40 + endif() 41 + if(KISSFFT_FLOAT) 42 + target_compile_definitions(kissfft PUBLIC kiss_fft_scalar=${KISSFFT_FLOAT_TYPE}) 43 + set(KISSFFT_SUFFIX "${KISSFFT_SUFFIX}_${KISSFFT_FLOAT_TYPE}") 44 + else() 45 + target_compile_definitions(kissfft PUBLIC KISSFFT_FIXED_POINT=${KISSFFT_FIXED_WIDTH}) 46 + set(KISSFFT_SUFFIX "${KISSFFT_SUFFIX}_int${KISSFFT_FIXED_WIDTH}") 47 + endif() 48 + 12 49 set_target_properties(kissfft PROPERTIES 13 - DEFINE_SYMBOL KISS_FFT_BUILD) 50 + OUTPUT_NAME "kissfft${KISSFFT_SUFFIX}" 51 + DEFINE_SYMBOL KISS_FFT_BUILD 52 + EXPORT_NAME "kissfit${KISSFFT_SUFFIX}" 53 + SOVERSION ${PROJECT_VERSION}) 14 54 if(BUILD_SHARED_LIBS) 15 55 target_compile_definitions(kissfft PUBLIC KISS_FFT_SHARED) 16 56 set_target_properties(kissfft PROPERTIES ··· 21 61 if (KISSFFT_INSTALL) 22 62 include(GNUInstallDirs) 23 63 install(TARGETS kissfft EXPORT kissfft 24 - ARCHIVE DESTINATION "${CMAKE_INSTALL_BINDIR}" 25 - LIBRARY DESTINATION "${CMAKE_INSTALL_BINDIR}" 64 + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" 65 + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" 26 66 RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") 27 67 install(FILES "kiss_fft.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") 28 - install(EXPORT kissfft DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" 68 + 69 + set(KISSFFT_INSTALL_CMAKE "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" CACHE FILEPATH "Install destination of kissfft cmake modules") 70 + mark_as_advanced(KISSFFT_INSTALL_CMAKE) 71 + 72 + install(EXPORT kissfft DESTINATION "${KISSFFT_INSTALL_CMAKE}" 29 73 NAMESPACE "kissfft::" 30 - FILE "${PROJECT_NAME}-config.cmake") 74 + FILE "${PROJECT_NAME}${KISSFFT_SUFFIX}-targets.cmake") 75 + include(CMakePackageConfigHelpers) 76 + configure_package_config_file(kissfft-config.cmake.in kissfft-config.cmake 77 + INSTALL_DESTINATION "${KISSFFT_INSTALL_CMAKE}") 78 + write_basic_package_version_file(kissfft-config-version.cmake COMPATIBILITY AnyNewerVersion) 79 + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/kissfft-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/kissfft-config-version.cmake" 80 + DESTINATION "${KISSFFT_INSTALL_CMAKE}") 31 81 endif()
+12
kissfft-config.cmake.in
··· 1 + @PACKAGE_INIT@ 2 + 3 + # Load information for all configured kissfft 4 + get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) 5 + file(GLOB CONFIG_FILES "${_DIR}/kissfft*-targets.cmake") 6 + foreach(f ${CONFIG_FILES}) 7 + include(${f}) 8 + endforeach() 9 + 10 + set(KISSFFT_VERSION @kissfft_VERSION@) 11 + 12 + check_required_components(kissfft)