diff --git a/source/cppassist/CMakeLists.txt b/source/cppassist/CMakeLists.txt index f6bcd40..a6fb1b0 100644 --- a/source/cppassist/CMakeLists.txt +++ b/source/cppassist/CMakeLists.txt @@ -3,6 +3,10 @@ # External dependencies # + +find_package(cppintrinsics REQUIRED) + + set(ADDITIONAL_LIBRARIES) set(ADDITIONAL_INCLUDES) if(NOT OPTION_BUILD_WITH_STD_REGEX) @@ -226,6 +230,16 @@ target_link_libraries(${target} INTERFACE ) +foreach (intrinsic_target + cppintrinsics::SSE + cppintrinsics::AVX + cppintrinsics::AVX2 + cppintrinsics::AVX512) + if (TARGET ${intrinsic_target}) + target_link_libraries(${target} INTERFACE ${intrinsic_target}) + endif() +endforeach() + # # Compile definitions diff --git a/source/cppassist/include/cppassist/simd/simd.h b/source/cppassist/include/cppassist/simd/simd.h index 1fcef62..98e762d 100644 --- a/source/cppassist/include/cppassist/simd/simd.h +++ b/source/cppassist/include/cppassist/simd/simd.h @@ -2,13 +2,13 @@ #pragma once -#ifdef AVX512_ENABLED +#if defined(CPPINTRINSICS_AVX512_ENABLED) #include #define CPPASSIST_SIMD_SIZE 16 -#elif defined(AVX2_ENABLED) +#elif defined(CPPINTRINSICS_AVX2_ENABLED) #include #define CPPASSIST_SIMD_SIZE 8 -#elif defined(SSE_ENABLED) +#elif defined(CPPINTRINSICS_SSE_ENABLED) #include #define CPPASSIST_SIMD_SIZE 4 #else diff --git a/source/examples/simd/CMakeLists.txt b/source/examples/simd/CMakeLists.txt index f4ee332..60399bd 100644 --- a/source/examples/simd/CMakeLists.txt +++ b/source/examples/simd/CMakeLists.txt @@ -78,7 +78,6 @@ target_link_libraries(${target} target_compile_definitions(${target} PRIVATE ${DEFAULT_COMPILE_DEFINITIONS} - SSE_ENABLED )