1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-21 19:33:03 +04:00

Clean up CMake version checks

This commit is contained in:
Gold856
2026-06-05 15:52:49 -04:00
parent 47eefa5abf
commit 6fd1b687a1
8 changed files with 35 additions and 66 deletions
+2 -2
View File
@@ -377,7 +377,7 @@ if(NOT OPENCV_SKIP_LINK_AS_NEEDED)
if(UNIX)
set(_option "-Wl,--as-needed")
set(_saved_CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${_option}") # requires CMake 3.2+ and CMP0056
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${_option}")
ocv_check_compiler_flag(CXX "" HAVE_LINK_AS_NEEDED)
set(CMAKE_EXE_LINKER_FLAGS "${_saved_CMAKE_EXE_LINKER_FLAGS}")
if(HAVE_LINK_AS_NEEDED)
@@ -393,7 +393,7 @@ if(NOT OPENCV_SKIP_LINK_NO_UNDEFINED)
if(UNIX AND (NOT CMAKE_SYSTEM_NAME MATCHES "OpenBSD"))
set(_option "-Wl,--no-undefined")
set(_saved_CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${_option}") # requires CMake 3.2+ and CMP0056
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${_option}")
ocv_check_compiler_flag(CXX "" HAVE_LINK_NO_UNDEFINED)
set(CMAKE_EXE_LINKER_FLAGS "${_saved_CMAKE_EXE_LINKER_FLAGS}")
if(HAVE_LINK_NO_UNDEFINED)
-3
View File
@@ -1944,9 +1944,6 @@ macro(ocv_get_smart_file_name output_var fpath)
unset(__subir)
endmacro()
# Needed by install(DIRECTORY ...)
set(compatible_MESSAGE_NEVER MESSAGE_NEVER)
macro(ocv_git_describe var_name path)
if(GIT_FOUND)
execute_process(COMMAND "${GIT_EXECUTABLE}" describe --tags --exact-match --dirty
+26 -46
View File
@@ -54,8 +54,7 @@ SET(OpenCV_VERSION_STATUS "@OPENCV_VERSION_STATUS@")
include(FindPackageHandleStandardArgs)
if(NOT CMAKE_VERSION VERSION_LESS 2.8.8
AND OpenCV_FIND_COMPONENTS # prevent excessive output
if(OpenCV_FIND_COMPONENTS # prevent excessive output
)
# HANDLE_COMPONENTS was introduced in CMake 2.8.8
list(APPEND _OpenCV_FPHSA_ARGS HANDLE_COMPONENTS)
@@ -67,13 +66,6 @@ else()
set(_OpenCV_HANDLE_COMPONENTS_MANUALLY TRUE)
endif()
# Extract directory name from full path of the file currently being processed.
# Note that CMake 2.8.3 introduced CMAKE_CURRENT_LIST_DIR. We reimplement it
# for older versions of CMake to support these as well.
if(CMAKE_VERSION VERSION_LESS "2.8.3")
get_filename_component(CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
endif()
# Extract the directory where *this* file has been installed (determined at cmake run-time)
# Get the absolute path with no ../.. relative marks, to eliminate implicit linker warnings
get_filename_component(OpenCV_CONFIG_PATH "${CMAKE_CURRENT_LIST_DIR}" REALPATH)
@@ -128,19 +120,15 @@ if(NOT TARGET opencv_core)
include(${CMAKE_CURRENT_LIST_DIR}/OpenCVModules${OpenCV_MODULES_SUFFIX}.cmake)
endif()
if(NOT CMAKE_VERSION VERSION_LESS "2.8.11")
# Target property INTERFACE_INCLUDE_DIRECTORIES available since 2.8.11:
# * http://www.cmake.org/cmake/help/v2.8.11/cmake.html#prop_tgt:INTERFACE_INCLUDE_DIRECTORIES
foreach(__component ${OpenCV_LIB_COMPONENTS})
if(TARGET ${__component})
set_target_properties(
${__component}
PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${OpenCV_INCLUDE_DIRS}"
)
endif()
endforeach()
endif()
foreach(__component ${OpenCV_LIB_COMPONENTS})
if(TARGET ${__component})
set_target_properties(
${__component}
PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${OpenCV_INCLUDE_DIRS}"
)
endif()
endforeach()
if(NOT DEFINED OPENCV_MAP_IMPORTED_CONFIG)
@@ -275,31 +263,23 @@ endif()
# ==============================================================
set(OpenCV_LIBRARIES ${OpenCV_LIBS})
# Require C++11 features for OpenCV modules
if(CMAKE_VERSION VERSION_LESS "3.1")
if(NOT OpenCV_FIND_QUIETLY AND NOT OPENCV_HIDE_WARNING_COMPILE_FEATURES)
message(STATUS "OpenCV: CMake version is low (${CMAKE_VERSION}, required 3.1+). Can't enable C++11 features: https://github.com/opencv/opencv/issues/13000")
endif()
else()
set(__target opencv_core)
if(TARGET opencv_world)
set(__target opencv_world)
endif()
set(__compile_features cxx_std_11) # CMake 3.8+
if(DEFINED OPENCV_COMPILE_FEATURES)
set(__compile_features ${OPENCV_COMPILE_FEATURES}) # custom override
elseif(CMAKE_VERSION VERSION_LESS "3.8")
set(__compile_features cxx_auto_type cxx_rvalue_references cxx_lambdas)
endif()
if(__compile_features)
# Simulate exported result of target_compile_features(opencv_core PUBLIC ...)
set_target_properties(${__target} PROPERTIES
INTERFACE_COMPILE_FEATURES "${__compile_features}"
)
endif()
unset(__target)
unset(__compile_features)
# Require C++17 features for OpenCV modules
set(__target opencv_core)
if(TARGET opencv_world)
set(__target opencv_world)
endif()
set(__compile_features cxx_std_17)
if(DEFINED OPENCV_COMPILE_FEATURES)
set(__compile_features ${OPENCV_COMPILE_FEATURES}) # custom override
endif()
if(__compile_features)
# Simulate exported result of target_compile_features(opencv_core PUBLIC ...)
set_target_properties(${__target} PROPERTIES
INTERFACE_COMPILE_FEATURES "${__compile_features}"
)
endif()
unset(__target)
unset(__compile_features)
#
# Some macros for samples
@@ -28,13 +28,6 @@
#
# ===================================================================================
# Extract directory name from full path of the file currently being processed.
# Note that CMake 2.8.3 introduced CMAKE_CURRENT_LIST_DIR. We reimplement it
# for older versions of CMake to support these as well.
if(CMAKE_VERSION VERSION_LESS "2.8.3")
get_filename_component(CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
endif()
if(NOT DEFINED OpenCV_CONFIG_SUBDIR)
set(OpenCV_CONFIG_SUBDIR "/abi-${ANDROID_NDK_ABI_NAME}")
endif()
@@ -34,11 +34,9 @@
# - OpenCV_STATIC
# - OpenCV_CUDA
if(CMAKE_VERSION VERSION_GREATER 2.6)
get_property(OpenCV_LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES)
if(NOT ";${OpenCV_LANGUAGES};" MATCHES ";CXX;")
enable_language(CXX)
endif()
get_property(OpenCV_LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES)
if(NOT ";${OpenCV_LANGUAGES};" MATCHES ";CXX;")
enable_language(CXX)
endif()
if(NOT DEFINED OpenCV_STATIC)
+1 -1
View File
@@ -309,6 +309,6 @@ if(DOXYGEN_FOUND)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/doxygen/html
DESTINATION "${OPENCV_DOC_INSTALL_PATH}"
COMPONENT "docs" OPTIONAL
${compatible_MESSAGE_NEVER}
MESSAGE_NEVER
)
endif()
+2 -2
View File
@@ -101,7 +101,7 @@ if(BUILD_DOCS)
install(DIRECTORY ${OpenCV_BINARY_DIR}/doc/doxygen/html/javadoc
DESTINATION "${OPENCV_DOC_INSTALL_PATH}/html"
COMPONENT "docs" OPTIONAL
${compatible_MESSAGE_NEVER}
MESSAGE_NEVER
)
elseif(OPENCV_JAVA_SDK_BUILD_TYPE STREQUAL "JAVA")
set(Java_JAVADOC_EXECUTABLE ${Java_JAVADOC_EXECUTABLE} -encoding utf-8)
@@ -121,7 +121,7 @@ if(BUILD_DOCS)
install(DIRECTORY ${OpenCV_BINARY_DIR}/doc/doxygen/html/javadoc/${the_module}/
DESTINATION "${OPENCV_DOC_INSTALL_PATH}/html/javadoc"
COMPONENT "docs" OPTIONAL
${compatible_MESSAGE_NEVER}
MESSAGE_NEVER
)
else()
ocv_assert(0)
+1
View File
@@ -1,6 +1,7 @@
if(OPENCV_SKIP_SAMPLES_SYCL)
return()
endif()
cmake_minimum_required(VERSION 3.13)
ocv_install_example_src(sycl *.cpp *.hpp CMakeLists.txt)