TexConv/CMP_Core/CMakeLists.txt

107 lines
2.7 KiB
CMake

cmake_minimum_required(VERSION 3.10)
add_library(CMP_Core STATIC)
target_sources(CMP_Core
PRIVATE
shaders/bc1_encode_kernel.h
shaders/bc1_common_kernel.h
shaders/bc1_encode_kernel.cpp
shaders/bc2_encode_kernel.h
shaders/bc2_encode_kernel.cpp
shaders/bc3_encode_kernel.h
shaders/bc3_encode_kernel.cpp
shaders/bc4_encode_kernel.h
shaders/bc4_encode_kernel.cpp
shaders/bc5_encode_kernel.h
shaders/bc5_encode_kernel.cpp
shaders/bc6_encode_kernel.h
shaders/bc6_encode_kernel.cpp
shaders/bc7_encode_kernel.h
shaders/bc7_common_encoder.h
shaders/bc7_encode_kernel.cpp
shaders/bcn_common_kernel.h
shaders/bcn_common_api.h
shaders/common_def.h
source/cmp_core.h
source/cmp_core.cpp
source/cmp_math_vec4.h
source/cmp_math_func.h
../applications/_libs/cmp_math/cpu_extensions.cpp
../applications/_libs/cmp_math/cmp_math_common.cpp
)
if (OPTION_CMP_GTC)
target_sources(
CMP_Core
PRIVATE
shaders/gtc_encode_kernel.h
shaders/gtc_encode_kernel.cpp
)
endif()
if (OPTION_BUILD_BROTLIG)
target_sources(
CMP_Core
PRIVATE
shaders/brlg_encode_kernel.h
shaders/brlg_encode_kernel.cpp
)
endif()
target_include_directories(CMP_Core
PUBLIC
shaders
source
../applications/_libs/cmp_math/
)
if (UNIX)
target_compile_definitions(CMP_Core PRIVATE _LINUX ASPM_GPU)
endif()
set_target_properties(CMP_Core PROPERTIES FOLDER "Libs")
# Core SIMD options
# SSE
add_library(CMP_Core_SSE STATIC)
target_sources(CMP_Core_SSE PRIVATE source/core_simd_sse.cpp)
target_include_directories(CMP_Core_SSE PRIVATE source shaders)
if (UNIX)
target_compile_options(CMP_Core_SSE PRIVATE -march=nehalem)
endif()
set_target_properties(CMP_Core_SSE PROPERTIES FOLDER "Core_SIMD")
# AVX
add_library(CMP_Core_AVX STATIC)
target_sources(CMP_Core_AVX PRIVATE source/core_simd_avx.cpp)
target_include_directories(CMP_Core_AVX PRIVATE source shaders)
if (WIN32)
target_compile_options(CMP_Core_AVX PRIVATE /arch:AVX2)
else()
target_compile_options(CMP_Core_AVX PRIVATE -march=haswell)
endif()
set_target_properties(CMP_Core_AVX PROPERTIES FOLDER "Core_SIMD")
# AVX-512
add_library(CMP_Core_AVX512 STATIC)
target_sources(CMP_Core_AVX512 PRIVATE source/core_simd_avx512.cpp)
target_include_directories(CMP_Core_AVX512 PRIVATE source shaders)
if (WIN32)
target_compile_options(CMP_Core_AVX512 PRIVATE /arch:AVX-512)
else()
target_compile_options(CMP_Core_AVX512 PRIVATE -march=knl)
endif()
set_target_properties(CMP_Core_AVX512 PROPERTIES FOLDER "Core_SIMD")
# Link SIMD libraries to CMP_Core
target_link_libraries(CMP_Core PRIVATE CMP_Core_SSE CMP_Core_AVX CMP_Core_AVX512)