1515# under the License.
1616# ----------------------------------------------------------------------------
1717
18+ include (../cmake_compiler.cmake )
19+
1820set (ASTCENC_TEST test-unit-${ASTCENC_ISA_SIMD} )
1921
2022add_executable (${ASTCENC_TEST} )
2123
24+ set_property (TARGET ${ASTCENC_TEST}
25+ PROPERTY
26+ CXX_STANDARD 17 )
27+
2228# Enable LTO under the conditions where the codec library will use LTO.
2329# The library link will fail if the settings don't match
2430if (${ASTCENC_CLI} )
@@ -32,6 +38,7 @@ set_property(TARGET ${ASTCENC_TEST}
3238 PROPERTY
3339 MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG :Debug >:Debug >" )
3440
41+
3542target_sources (${ASTCENC_TEST}
3643 PRIVATE
3744 test_simd.cpp
@@ -52,27 +59,34 @@ target_compile_options(${ASTCENC_TEST}
5259 $<$<PLATFORM_ID :Linux ,Darwin >:-pthread >
5360
5461 # MSVC compiler defines
55- $<$<CXX_COMPILER_ID :MSVC >:/EHsc >
62+ $<${is_msvc_fe} :/EHsc >
63+ $<$<AND :$<BOOL :${ASTCENC_WERROR} >,${is_msvc_fe} >:/WX >
64+ $<${is_msvccl} :/wd4324 >
5665
5766 # G++ and Clang++ compiler defines
58- $<$<NOT :$<CXX_COMPILER_ID :MSVC >>:-Wall >
59- $<$<NOT :$<CXX_COMPILER_ID :MSVC >>:-Wextra >
60- $<$<NOT :$<CXX_COMPILER_ID :MSVC >>:-Wpedantic >
61- $<$<NOT :$<CXX_COMPILER_ID :MSVC >>:-Werror >
62- $<$<NOT :$<CXX_COMPILER_ID :MSVC >>:-Wshadow >
63- $<$<NOT :$<CXX_COMPILER_ID :MSVC >>:-Wno -c ++98-compat -pedantic >
64- $<$<NOT :$<CXX_COMPILER_ID :MSVC >>:-Wno -c ++98-c ++11-compat -pedantic >
65- $<$<NOT :$<CXX_COMPILER_ID :MSVC >>:-Wno -float -equal >
66- $<$<NOT :$<CXX_COMPILER_ID :MSVC >>:-Wno -overriding -option >
67- $<$<NOT :$<CXX_COMPILER_ID :MSVC >>:-Wno -unsafe -buffer -usage >
68- $<$<NOT :$<CXX_COMPILER_ID :MSVC >>:-Wno -switch -default >
67+ $<${is_gnu_fe} :-Wall >
68+ $<${is_gnu_fe} :-Wextra >
69+ $<${is_gnu_fe} :-Wpedantic >
70+ $<$<AND :$<BOOL :${ASTCENC_WERROR} >,${is_gnu_fe} >:-Werror >
71+ $<${is_gnu_fe} :-Wshadow >
72+ $<${is_gnu_fe} :-Wdouble -promotion >
73+ $<${is_clang} :-Wdocumentation >
74+
75+ # Hide noise thrown up by Clang 10 and clang-cl
76+ $<${is_gnu_fe} :-Wno -unknown -warning -option >
77+ $<${is_gnu_fe} :-Wno -c ++98-compat -pedantic >
78+ $<${is_gnu_fe} :-Wno -c ++98-c ++11-compat -pedantic >
79+ $<${is_gnu_fe} :-Wno -float -equal >
80+ $<${is_gnu_fe} :-Wno -overriding -option >
81+ $<${is_gnu_fe} :-Wno -unsafe -buffer -usage >
82+ $<${is_clang} :-Wno -switch -default >
6983
7084 # Ignore things that the googletest build triggers
71- $<$< NOT :$< CXX_COMPILER_ID : MSVC >> :-Wno -unknown -warning -option >
72- $<$< NOT :$< CXX_COMPILER_ID : MSVC >> :-Wno -double -promotion >
73- $<$< NOT :$< CXX_COMPILER_ID : MSVC >> :-Wno -undef >
74- $<$< NOT :$< CXX_COMPILER_ID : MSVC >> :-Wno -reserved -identifier >
75- $<$< NOT :$< CXX_COMPILER_ID : MSVC >> :-Wno -global -constructors >)
85+ $<${is_gnu_fe} :-Wno -unknown -warning -option >
86+ $<${is_gnu_fe} :-Wno -double -promotion >
87+ $<${is_gnu_fe} :-Wno -undef >
88+ $<${is_gnu_fe} :-Wno -reserved -identifier >
89+ $<${is_gnu_fe} :-Wno -global -constructors >)
7690
7791# Set up configuration for SIMD ISA builds
7892if (${ASTCENC_ISA_SIMD} MATCHES "none" )
@@ -85,6 +99,12 @@ if(${ASTCENC_ISA_SIMD} MATCHES "none")
8599 ASTCENC_POPCNT=0
86100 ASTCENC_F16C=0 )
87101
102+ if (${ASTCENC_BIG_ENDIAN} )
103+ target_compile_definitions (${ASTCENC_TEST}
104+ PRIVATE
105+ ASTCENC_BIG_ENDIAN=1 )
106+ endif ()
107+
88108elseif (${ASTCENC_ISA_SIMD} MATCHES "neon" )
89109 target_compile_definitions (${ASTCENC_TEST}
90110 PRIVATE
0 commit comments