X-Git-Url: https://git.piment-noir.org/?p=deb_x265.git;a=blobdiff_plain;f=source%2Fcommon%2FCMakeLists.txt;h=4ead34612e653d620dc1cbd596b42825d5aa2782;hp=46929ca76762fd6653dbd44421aaa322b86aa0c5;hb=b53f7c52d8280ab63876efd6eb292c21430ac607;hpb=5c9b45285dd64723ad1dac380b98a7b1f3095674 diff --git a/source/common/CMakeLists.txt b/source/common/CMakeLists.txt index 46929ca..4ead346 100644 --- a/source/common/CMakeLists.txt +++ b/source/common/CMakeLists.txt @@ -1,44 +1,46 @@ # vim: syntax=cmake -set(SSE3 vec/dct-sse3.cpp) -set(SSSE3 vec/dct-ssse3.cpp) -set(SSE41 vec/dct-sse41.cpp) -if(MSVC AND X86) - set(PRIMITIVES ${SSE3} ${SSSE3} ${SSE41}) - set(WARNDISABLE "/wd4100") # unreferenced formal parameter - if(INTEL_CXX) - add_definitions(/Qwd111) # statement is unreachable - add_definitions(/Qwd128) # loop is unreachable - add_definitions(/Qwd177) # declared function is unused - add_definitions(/Qwd185) # dynamic initialization in unreachable code - add_definitions(/Qwd280) # conditional expression is constant - endif() - if(X64) - set_source_files_properties(${SSE3} ${SSSE3} ${SSE41} PROPERTIES COMPILE_FLAGS "${WARNDISABLE}") - else() - # x64 implies SSE4, so only add /arch:SSE2 if building for Win32 - set_source_files_properties(${SSE3} ${SSSE3} ${SSE41} PROPERTIES COMPILE_FLAGS "${WARNDISABLE} /arch:SSE2") - endif() -endif() -if(GCC AND X86) - if(CLANG) - # llvm intrinsic headers cause shadow warnings - set(WARNDISABLE "-Wno-shadow -Wno-unused-parameter") - else() - set(WARNDISABLE "-Wno-unused-parameter") - endif() - if(INTEL_CXX OR CLANG OR (NOT CC_VERSION VERSION_LESS 4.3)) +if(ENABLE_ASSEMBLY) + set_source_files_properties(primitives.cpp PROPERTIES COMPILE_FLAGS -DENABLE_ASSEMBLY=1) + + set(SSE3 vec/dct-sse3.cpp) + set(SSSE3 vec/dct-ssse3.cpp) + set(SSE41 vec/dct-sse41.cpp) + + if(MSVC AND X86) set(PRIMITIVES ${SSE3} ${SSSE3} ${SSE41}) - set_source_files_properties(${SSE3} PROPERTIES COMPILE_FLAGS "${WARNDISABLE} -msse3") - set_source_files_properties(${SSSE3} PROPERTIES COMPILE_FLAGS "${WARNDISABLE} -mssse3") - set_source_files_properties(${SSE41} PROPERTIES COMPILE_FLAGS "${WARNDISABLE} -msse4.1") + set(WARNDISABLE "/wd4100") # unreferenced formal parameter + if(INTEL_CXX) + add_definitions(/Qwd111) # statement is unreachable + add_definitions(/Qwd128) # loop is unreachable + add_definitions(/Qwd177) # declared function is unused + add_definitions(/Qwd185) # dynamic initialization in unreachable code + add_definitions(/Qwd280) # conditional expression is constant + endif() + if(X64) + set_source_files_properties(${SSE3} ${SSSE3} ${SSE41} PROPERTIES COMPILE_FLAGS "${WARNDISABLE}") + else() + # x64 implies SSE4, so only add /arch:SSE2 if building for Win32 + set_source_files_properties(${SSE3} ${SSSE3} ${SSE41} PROPERTIES COMPILE_FLAGS "${WARNDISABLE} /arch:SSE2") + endif() endif() -endif() -set(VEC_PRIMITIVES vec/vec-primitives.cpp ${PRIMITIVES}) -source_group(Intrinsics FILES ${VEC_PRIMITIVES}) + if(GCC AND X86) + if(CLANG) + # llvm intrinsic headers cause shadow warnings + set(WARNDISABLE "-Wno-shadow -Wno-unused-parameter") + else() + set(WARNDISABLE "-Wno-unused-parameter") + endif() + if(INTEL_CXX OR CLANG OR (NOT CC_VERSION VERSION_LESS 4.3)) + set(PRIMITIVES ${SSE3} ${SSSE3} ${SSE41}) + set_source_files_properties(${SSE3} PROPERTIES COMPILE_FLAGS "${WARNDISABLE} -msse3") + set_source_files_properties(${SSSE3} PROPERTIES COMPILE_FLAGS "${WARNDISABLE} -mssse3") + set_source_files_properties(${SSE41} PROPERTIES COMPILE_FLAGS "${WARNDISABLE} -msse4.1") + endif() + endif() + set(VEC_PRIMITIVES vec/vec-primitives.cpp ${PRIMITIVES}) + source_group(Intrinsics FILES ${VEC_PRIMITIVES}) -if(ENABLE_ASSEMBLY) - set_source_files_properties(primitives.cpp PROPERTIES COMPILE_FLAGS -DENABLE_ASSEMBLY=1) set(C_SRCS asm-primitives.cpp pixel.h mc.h ipfilter8.h blockcopy8.h dct8.h loopfilter.h) set(A_SRCS pixel-a.asm const-a.asm cpu-a.asm ssd-a.asm mc-a.asm mc-a2.asm pixel-util8.asm blockcopy8.asm