cmake: fix add_apple_compiler_options() calls and OBJCXX handling
authorAlexander Alekhin <alexander.a.alekhin@gmail.com>
Sat, 13 Feb 2021 00:35:18 +0000 (00:35 +0000)
committerAlexander Alekhin <alexander.a.alekhin@gmail.com>
Sat, 13 Feb 2021 18:37:30 +0000 (18:37 +0000)
cmake/OpenCVUtils.cmake
modules/highgui/CMakeLists.txt
modules/imgcodecs/CMakeLists.txt
modules/videoio/CMakeLists.txt

index 735fa10a4c3c5c4ef152bfaf53ce13f01d5e671e..d03dc9c55191252e5fbb3b01f55aa0b769cf91ff 100644 (file)
@@ -564,7 +564,11 @@ macro(ocv_check_flag_support lang flag varname base_options)
   elseif("_${lang}_" MATCHES "_C_")
     set(_lang C)
   elseif("_${lang}_" MATCHES "_OBJCXX_")
-    set(_lang OBJCXX)
+    if(DEFINED CMAKE_OBJCXX_COMPILER)  # CMake 3.16+ and enable_language(OBJCXX) call are required
+      set(_lang OBJCXX)
+    else()
+      set(_lang CXX)
+    endif()
   else()
     set(_lang ${lang})
   endif()
@@ -573,7 +577,9 @@ macro(ocv_check_flag_support lang flag varname base_options)
   string(REGEX REPLACE "^(/|-)" "HAVE_${_lang}_" ${varname} "${${varname}}")
   string(REGEX REPLACE " -|-|=| |\\.|," "_" ${varname} "${${varname}}")
 
-  ocv_check_compiler_flag("${_lang}" "${base_options} ${flag}" ${${varname}} ${ARGN})
+  if(DEFINED CMAKE_${_lang}_COMPILER)
+    ocv_check_compiler_flag("${_lang}" "${base_options} ${flag}" ${${varname}} ${ARGN})
+  endif()
 endmacro()
 
 macro(ocv_check_runtime_flag flag result)
index bd7c8980be46f240182883f49664175184ad28bc..296f4cab2bbb265b5ebee3119f0b4483430b5d84 100644 (file)
@@ -151,7 +151,7 @@ ocv_create_module(${HIGHGUI_LIBRARIES})
 
 macro(ocv_highgui_configure_target)
 if(APPLE)
-  add_apple_compiler_options(the_module)
+  add_apple_compiler_options(${the_module})
 endif()
 
 if(MSVC)
index 1b832eaa3a01c227f62d557c53f8f2e066524801..2498b5ae8341c2244b46030e06d69b5af5f5caed 100644 (file)
@@ -131,7 +131,7 @@ ocv_create_module(${GRFMT_LIBS} ${IMGCODECS_LIBRARIES})
 
 macro(ocv_imgcodecs_configure_target)
 if(APPLE)
-  add_apple_compiler_options(the_module)
+  add_apple_compiler_options(${the_module})
 endif()
 
 if(MSVC)
index 3dac3e816c8d3899be2162438067f86bd38f9f65..cc0c5eb1c5d496750a8e9a7c5e524d6da096a1e9 100644 (file)
@@ -253,7 +253,7 @@ ocv_create_module(${VIDEOIO_LIBRARIES})
 
 macro(ocv_videoio_configure_target)
 if(APPLE)
-  add_apple_compiler_options(the_module)
+  add_apple_compiler_options(${the_module})
 endif()
 
 if(MSVC)