Files
trigdx/src/CMakeLists.txt
2025-08-12 10:18:32 +02:00

36 lines
974 B
CMake

include(FetchContent)
add_library(trigdx reference.cpp lookup.cpp lookup_avx.cpp)
target_include_directories(trigdx PUBLIC ${PROJECT_SOURCE_DIR}/include)
target_compile_options(trigdx PRIVATE -O3 -march=native)
if(TRIGDX_USE_MKL)
find_package(MKL REQUIRED)
target_sources(trigdx PRIVATE mkl.cpp)
target_link_libraries(trigdx PRIVATE MKL::MKL)
endif()
if(TRIGDX_USE_GPU)
enable_language(CUDA)
find_package(CUDAToolkit REQUIRED)
add_library(gpu SHARED gpu/gpu.cu)
target_sources(trigdx PRIVATE gpu.cpp)
target_link_libraries(trigdx PRIVATE CUDA::cudart)
target_link_libraries(trigdx PRIVATE gpu)
endif()
if(TRIGDX_USE_XSIMD)
find_package(xsimd QUIET)
if(NOT TARGET xsimd)
FetchContent_Declare(
xsimd
GIT_REPOSITORY https://github.com/xtensor-stack/xsimd.git
GIT_TAG 13.2.0)
FetchContent_MakeAvailable(xsimd)
endif()
target_sources(trigdx PRIVATE lookup_xsimd.cpp)
target_link_libraries(trigdx PRIVATE xsimd)
endif()