2
0

add-sse4.1-flag-when-using-clang-cl.patch 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. Backported from https://github.com/xiph/opus/commit/51b99f6d3c6f455ec32cb9c323ccc0ecd9d4e8c5
  2. Add sse4.1 flag when using clang-cl on MSVC targets
  3. diff --git a/CMakeLists.txt b/CMakeLists.txt
  4. index 8535ad5f..702a7ec8 100644
  5. --- a/CMakeLists.txt
  6. +++ b/CMakeLists.txt
  7. @@ -14,6 +14,14 @@ include(GNUInstallDirs)
  8. include(CMakeDependentOption)
  9. include(FeatureSummary)
  10. +# Detect clang-cl
  11. +set(MSVC_CLANG_CL false BOOL)
  12. +if (MSVC)
  13. + if("${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
  14. + set(MSVC_CLANG_CL true BOOL)
  15. + endif()
  16. +endif()
  17. +
  18. set(OPUS_BUILD_SHARED_LIBRARY_HELP_STR "build shared library.")
  19. option(OPUS_BUILD_SHARED_LIBRARY ${OPUS_BUILD_SHARED_LIBRARY_HELP_STR} OFF)
  20. if(OPUS_BUILD_SHARED_LIBRARY OR BUILD_SHARED_LIBS OR OPUS_BUILD_FRAMEWORK)
  21. @@ -484,20 +492,20 @@ if(NOT OPUS_DISABLE_INTRINSICS)
  22. add_sources_group(opus lpcnet ${dnn_sources_sse4_1})
  23. endif()
  24. target_compile_definitions(opus PRIVATE OPUS_X86_MAY_HAVE_SSE4_1)
  25. - if(NOT MSVC)
  26. + if(NOT MSVC OR MSVC_CLANG_CL)
  27. set_source_files_properties(${celt_sources_sse4_1} ${silk_sources_sse4_1} ${dnn_sources_sse4_1} PROPERTIES COMPILE_FLAGS -msse4.1)
  28. endif()
  29. if(OPUS_FIXED_POINT)
  30. add_sources_group(opus silk ${silk_sources_fixed_sse4_1})
  31. - if(NOT MSVC)
  32. + if(NOT MSVC OR MSVC_CLANG_CL)
  33. set_source_files_properties(${silk_sources_fixed_sse4_1} PROPERTIES COMPILE_FLAGS -msse4.1)
  34. endif()
  35. endif()
  36. endif()
  37. if(OPUS_X86_PRESUME_SSE4_1)
  38. target_compile_definitions(opus PRIVATE OPUS_X86_PRESUME_SSE4_1)
  39. - if(NOT MSVC)
  40. + if(NOT MSVC OR MSVC_CLANG_CL)
  41. target_compile_options(opus PRIVATE -msse4.1)
  42. endif()
  43. endif()