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:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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()
|
||||
|
||||
@@ -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,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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user