vcpkg/ports/kissfft/CMakeLists.txt

66 lines
1.5 KiB
CMake
Raw Normal View History

cmake_minimum_required(VERSION 3.14)
project(kissfft LANGUAGES C)
include(GNUInstallDirs)
option(KF_USE_SIMD "Use SIMD" OFF)
option(KF_INSTALL_HEADERS "Install header files" ON)
if (KF_USE_SIMD)
set(KF_SCALAR_TYPE "__m128" CACHE STRING "Definition of kiss_fft_scalar")
else ()
set(KF_SCALAR_TYPE "float" CACHE STRING "Definition of kiss_fft_scalar")
endif ()
# TODO: FIXED_POINT
# TODO: -msse
set(kissfft_sources kiss_fft.c)
if (WIN32 AND BUILD_SHARED_LIBS)
list(APPEND kissfft_sources exports.def)
endif ()
add_library(kissfft ${kissfft_sources})
if (BUILD_SHARED_LIBS)
set_property(
TARGET kissfft
PROPERTY POSITION_INDEPENDENT_CODE ON
)
endif ()
target_include_directories(
kissfft
PUBLIC
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
target_compile_definitions(
kissfft
PUBLIC
$<$<BOOL:${KF_USE_SIMD}>:USE_SIMD>
kiss_fft_scalar=${KF_SCALAR_TYPE}
)
if (KF_INSTALL_HEADERS)
install(
FILES
_kiss_fft_guts.h
kiss_fft.h
kissfft.hh
kissfft_i32.hh
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)
endif ()
install(TARGETS kissfft EXPORT unofficial-kissfft-config)
install(
EXPORT unofficial-kissfft-config
NAMESPACE unofficial::kissfft::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/unofficial-kissfft
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
)