diff --git a/common/cmake/dpcpp.cmake b/common/cmake/dpcpp.cmake index a15c179ab9..fac8c77199 100644 --- a/common/cmake/dpcpp.cmake +++ b/common/cmake/dpcpp.cmake @@ -7,11 +7,28 @@ MACRO(_SET_IF_EMPTY VAR VALUE) ENDIF() ENDMACRO() -_SET_IF_EMPTY(FLAGS_SSE2 "-msse2") -_SET_IF_EMPTY(FLAGS_SSE42 "-msse4.2") -_SET_IF_EMPTY(FLAGS_AVX "-mavx") -_SET_IF_EMPTY(FLAGS_AVX2 "-mf16c -mavx2 -mfma -mlzcnt -mbmi -mbmi2") -_SET_IF_EMPTY(FLAGS_AVX512 "-march=skx") +IF (EMBREE_ARM) + IF ("x86_64" IN_LIST CMAKE_OSX_ARCHITECTURES) + # set ARM an x86 flags for macOS universal binary build + SET(FLAGS_SSE2 "-D__SSE__ -D__SSE2__ -msse -msse2 -mno-sse4.2") + SET(FLAGS_SSE42 "-D__SSE4_2__ -D__SSE4_1__ -msse4.2") + SET(FLAGS_AVX "-D__AVX__ -D__SSE4_2__ -D__SSE4_1__ -D__BMI__ -D__BMI2__ -D__LZCNT__ -mavx") + SET(FLAGS_AVX2 "-D__AVX2__ -D__AVX__ -D__SSE4_2__ -D__SSE4_1__ -D__BMI__ -D__BMI2__ -D__LZCNT__ -mf16c -mavx2 -mfma -mlzcnt -mbmi -mbmi2") + _SET_IF_EMPTY(FLAGS_AVX512 "-march=skx") + ELSE () + SET(FLAGS_SSE2 "-D__SSE__ -D__SSE2__") + SET(FLAGS_SSE42 "-D__SSE4_2__ -D__SSE4_1__") + SET(FLAGS_AVX "-D__AVX__ -D__SSE4_2__ -D__SSE4_1__ -D__BMI__ -D__BMI2__ -D__LZCNT__") + SET(FLAGS_AVX2 "-D__AVX2__ -D__AVX__ -D__SSE4_2__ -D__SSE4_1__ -D__BMI__ -D__BMI2__ -D__LZCNT__") + ENDIF () +ELSE () + # for `thread` keyword + _SET_IF_EMPTY(FLAGS_SSE2 "-msse -msse2 -mno-sse4.2") + _SET_IF_EMPTY(FLAGS_SSE42 "-msse4.2") + _SET_IF_EMPTY(FLAGS_AVX "-mavx") + _SET_IF_EMPTY(FLAGS_AVX2 "-mf16c -mavx2 -mfma -mlzcnt -mbmi -mbmi2") + _SET_IF_EMPTY(FLAGS_AVX512 "-march=skx") +ENDIF () IF (NOT WIN32) OPTION(EMBREE_IGNORE_CMAKE_CXX_FLAGS "When enabled Embree ignores default CMAKE_CXX_FLAGS." ON)