ref: 51b99f6d3c6f455ec32cb9c323ccc0ecd9d4e8c5
parent: b3ec9761b2f3d4c7d4e63255462aa98bb329c70f
author: DoumanAsh <douman@gmx.se>
date: Sat May 11 12:54:02 EDT 2024
Add sse4.1 flag when using clang-cl on MSVC targets Signed-off-by: Jean-Marc Valin <jeanmarcv@google.com>
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,6 +14,14 @@
include(CMakeDependentOption)
include(FeatureSummary)
+# Detect clang-cl
+set(MSVC_CLANG_CL false BOOL)
+if (MSVC)
+ if("${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
+ set(MSVC_CLANG_CL true BOOL)
+ endif()
+endif()
+
set(OPUS_BUILD_SHARED_LIBRARY_HELP_STR "build shared library.")
option(OPUS_BUILD_SHARED_LIBRARY ${OPUS_BUILD_SHARED_LIBRARY_HELP_STR} OFF)
if(OPUS_BUILD_SHARED_LIBRARY OR BUILD_SHARED_LIBS OR OPUS_BUILD_FRAMEWORK)
@@ -484,13 +492,13 @@
add_sources_group(opus lpcnet ${dnn_sources_sse4_1})
endif()
target_compile_definitions(opus PRIVATE OPUS_X86_MAY_HAVE_SSE4_1)
- if(NOT MSVC)
+ if(NOT MSVC OR MSVC_CLANG_CL)
set_source_files_properties(${celt_sources_sse4_1} ${silk_sources_sse4_1} ${dnn_sources_sse4_1} PROPERTIES COMPILE_FLAGS -msse4.1)
endif()
if(OPUS_FIXED_POINT)
add_sources_group(opus silk ${silk_sources_fixed_sse4_1})
- if(NOT MSVC)
+ if(NOT MSVC OR MSVC_CLANG_CL)
set_source_files_properties(${silk_sources_fixed_sse4_1} PROPERTIES COMPILE_FLAGS -msse4.1)
endif()
endif()
@@ -497,7 +505,7 @@
endif()
if(OPUS_X86_PRESUME_SSE4_1)
target_compile_definitions(opus PRIVATE OPUS_X86_PRESUME_SSE4_1)
- if(NOT MSVC)
+ if(NOT MSVC OR MSVC_CLANG_CL)
target_compile_options(opus PRIVATE -msse4.1)
endif()
endif()
--
⑨