mirror of
https://github.com/google/sandboxed-api.git
synced 2024-03-22 13:11:30 +08:00
91 lines
1.9 KiB
CMake
91 lines
1.9 KiB
CMake
|
cmake_minimum_required(VERSION 3.10)
|
||
|
|
||
|
project(pffft CXX C)
|
||
|
|
||
|
set(CMAKE_CXX_STANDARD 17)
|
||
|
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||
|
|
||
|
add_library(pffft STATIC
|
||
|
pffft.c
|
||
|
pffft.h
|
||
|
fftpack.c
|
||
|
fftpack.h
|
||
|
)
|
||
|
|
||
|
add_executable(pffft_main
|
||
|
test_pffft.c
|
||
|
)
|
||
|
|
||
|
target_link_libraries(pffft_main PRIVATE
|
||
|
pffft
|
||
|
)
|
||
|
|
||
|
set(MATH_LIBS "")
|
||
|
include(CheckLibraryExists)
|
||
|
check_library_exists(m sin "" LIBM)
|
||
|
if(LIBM)
|
||
|
list(APPEND MATH_LIBS "m")
|
||
|
endif()
|
||
|
|
||
|
target_link_libraries(pffft PUBLIC ${MATH_LIBS})
|
||
|
|
||
|
|
||
|
# Adding dependencies
|
||
|
set(SAPI_ROOT "/usr/local/google/home/inach/sandboxed-api" CACHE PATH "Path to the Sandboxed API source tree")
|
||
|
# Then configure:
|
||
|
# mkdir -p build && cd build
|
||
|
# cmake .. -G Ninja -DSAPI_ROOT=$HOME/sapi_root
|
||
|
|
||
|
set(SAPI_ENABLE_EXAMPLES OFF CACHE BOOL "")
|
||
|
set(SAPI_ENABLE_TESTS OFF CACHE BOOL "")
|
||
|
add_subdirectory("${SAPI_ROOT}"
|
||
|
"${CMAKE_BINARY_DIR}/sandboxed-api-build"
|
||
|
# Omit this to have the full Sandboxed API in IDE
|
||
|
EXCLUDE_FROM_ALL)
|
||
|
|
||
|
add_sapi_library(pffft_sapi
|
||
|
FUNCTIONS pffft_new_setup
|
||
|
pffft_destroy_setup
|
||
|
pffft_transform
|
||
|
pffft_transform_ordered
|
||
|
pffft_zreorder
|
||
|
pffft_zconvolve_accumulate
|
||
|
pffft_aligned_malloc
|
||
|
pffft_aligned_free
|
||
|
pffft_simd_size
|
||
|
cffti
|
||
|
cfftf
|
||
|
cfftb
|
||
|
rffti
|
||
|
rfftf
|
||
|
rfftb
|
||
|
cosqi
|
||
|
cosqf
|
||
|
cosqb
|
||
|
costi
|
||
|
cost
|
||
|
sinqi
|
||
|
sinqb
|
||
|
sinqf
|
||
|
sinti
|
||
|
sint
|
||
|
|
||
|
INPUTS pffft.h fftpack.h
|
||
|
LIBRARY pffft
|
||
|
LIBRARY_NAME pffft
|
||
|
|
||
|
NAMESPACE ""
|
||
|
)
|
||
|
|
||
|
target_include_directories(pffft_sapi INTERFACE
|
||
|
"${PROJECT_BINARY_DIR}"
|
||
|
)
|
||
|
|
||
|
add_executable(pffft_sandboxed
|
||
|
test_pffft_sandboxed.cc
|
||
|
)
|
||
|
|
||
|
target_link_libraries(pffft_sandboxed PRIVATE
|
||
|
pffft_sapi
|
||
|
sapi::sapi
|
||
|
)
|