From ff6ce6cd0173793d095e52b338f2f8ed6060ea78 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Mon, 23 Apr 2018 19:42:49 +0300 Subject: [PATCH 1/2] cmake: change CPU_BASELINE=DETECT for MacOSX --- cmake/OpenCVCompilerOptimizations.cmake | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cmake/OpenCVCompilerOptimizations.cmake b/cmake/OpenCVCompilerOptimizations.cmake index 98b6f5a090..9190222afc 100644 --- a/cmake/OpenCVCompilerOptimizations.cmake +++ b/cmake/OpenCVCompilerOptimizations.cmake @@ -258,7 +258,10 @@ if(X86 OR X86_64) endif() if(NOT DEFINED CPU_BASELINE) - if(X86_64) + if(APPLE) + # MacOS X has limited set of possible supported H/W, so compiler is configured well + set(CPU_BASELINE "DETECT" CACHE STRING "${HELP_CPU_BASELINE}") + elseif(X86_64) set(CPU_BASELINE "SSE3" CACHE STRING "${HELP_CPU_BASELINE}") else() set(CPU_BASELINE "SSE2" CACHE STRING "${HELP_CPU_BASELINE}") From a2d6fc7ac040c6ef94a36515f9ea24428f8f1ecc Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Tue, 24 Apr 2018 12:40:25 +0300 Subject: [PATCH 2/2] cmake: fix popcnt detection via GCC/Clang __POPCNT__ define --- cmake/checks/cpu_popcnt.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmake/checks/cpu_popcnt.cpp b/cmake/checks/cpu_popcnt.cpp index 16e5575108..44c7deda05 100644 --- a/cmake/checks/cpu_popcnt.cpp +++ b/cmake/checks/cpu_popcnt.cpp @@ -4,12 +4,14 @@ # define CV_POPCNT_U64 _mm_popcnt_u64 # endif # define CV_POPCNT_U32 _mm_popcnt_u32 -#else +#elif defined(__POPCNT__) # include # if defined(__x86_64__) # define CV_POPCNT_U64 __builtin_popcountll # endif # define CV_POPCNT_U32 __builtin_popcount +#else +# error "__POPCNT__ is not defined by compiler" #endif int main()