Skip to content

Commit f548d66

Browse files
authored
Merge pull request opencv#9432 from alalek:cmake_deprecated_policies_2.4
(2.4) cmake deprecated policies (backport 9415)
2 parents f7d99f3 + e575b5f commit f548d66

13 files changed

+51
-114
lines changed

3rdparty/tbb/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ if (HAVE_LIBPTHREAD)
187187
add_definitions(-DUSE_PTHREAD) #required for Unix
188188
endif()
189189

190-
if (CMAKE_COMPILER_IS_GNUCXX)
190+
if(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_COMPILER_IS_CLANGCXX)
191191
add_definitions(-DTBB_USE_GCC_BUILTINS=1) #required for ARM GCC
192192
endif()
193193

CMakeLists.txt

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -37,24 +37,15 @@ endif(NOT CMAKE_TOOLCHAIN_FILE)
3737
# Top level OpenCV project
3838
# --------------------------------------------------------------
3939
if(CMAKE_GENERATOR MATCHES Xcode AND XCODE_VERSION VERSION_GREATER 4.3)
40-
cmake_minimum_required(VERSION 2.8.8)
40+
cmake_minimum_required(VERSION 3.0)
4141
elseif(IOS)
42-
cmake_minimum_required(VERSION 2.8.0)
42+
cmake_minimum_required(VERSION 3.0)
4343
else()
44-
cmake_minimum_required(VERSION 2.6.3)
45-
endif()
46-
47-
if(POLICY CMP0017)
48-
cmake_policy(SET CMP0017 NEW)
49-
endif()
50-
51-
if(POLICY CMP0022)
52-
cmake_policy(SET CMP0022 OLD)
44+
cmake_minimum_required(VERSION 2.8.12.2)
5345
endif()
5446

5547
if(POLICY CMP0026)
56-
# silence cmake 3.0+ warnings about reading LOCATION attribute
57-
cmake_policy(SET CMP0026 OLD)
48+
cmake_policy(SET CMP0026 NEW)
5849
endif()
5950

6051
if (POLICY CMP0042)
@@ -712,10 +703,6 @@ endif()
712703
# ========================== C/C++ options ==========================
713704
if(CMAKE_CXX_COMPILER_VERSION)
714705
set(OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} (ver ${CMAKE_CXX_COMPILER_VERSION})")
715-
elseif(CMAKE_COMPILER_IS_CLANGCXX)
716-
set(OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} (ver ${CMAKE_CLANG_REGEX_VERSION})")
717-
elseif(CMAKE_COMPILER_IS_GNUCXX)
718-
set(OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} (ver ${CMAKE_GCC_REGEX_VERSION})")
719706
else()
720707
set(OPENCV_COMPILER_STR "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1}")
721708
endif()
@@ -1029,7 +1016,7 @@ if(HAVE_OPENCL)
10291016
set(__libs "")
10301017
foreach(l ${OPENCL_LIBRARIES})
10311018
if(TARGET ${l})
1032-
get_target_property(p ${l} LOCATION)
1019+
get_target_property(p ${l} IMPORTED_LOCATION)
10331020
if(p MATCHES NOTFOUND)
10341021
list(APPEND __libs "${l}")
10351022
else()

cmake/FindCUDA.cmake

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1553,7 +1553,7 @@ macro(CUDA_ADD_LIBRARY cuda_target)
15531553
# variable will have been defined.
15541554
CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS("${link_file}" ${cuda_target} "${_options}" "${${cuda_target}_SEPARABLE_COMPILATION_OBJECTS}")
15551555

1556-
target_link_libraries(${cuda_target}
1556+
target_link_libraries(${cuda_target} LINK_PRIVATE
15571557
${CUDA_LIBRARIES}
15581558
)
15591559

@@ -1597,7 +1597,7 @@ macro(CUDA_ADD_EXECUTABLE cuda_target)
15971597
# variable will have been defined.
15981598
CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS("${link_file}" ${cuda_target} "${_options}" "${${cuda_target}_SEPARABLE_COMPILATION_OBJECTS}")
15991599

1600-
target_link_libraries(${cuda_target}
1600+
target_link_libraries(${cuda_target} LINK_PRIVATE
16011601
${CUDA_LIBRARIES}
16021602
)
16031603

@@ -1672,9 +1672,9 @@ endmacro()
16721672
###############################################################################
16731673
macro(CUDA_ADD_CUFFT_TO_TARGET target)
16741674
if (CUDA_BUILD_EMULATION)
1675-
target_link_libraries(${target} ${CUDA_cufftemu_LIBRARY})
1675+
target_link_libraries(${target} LINK_PRIVATE ${CUDA_cufftemu_LIBRARY})
16761676
else()
1677-
target_link_libraries(${target} ${CUDA_cufft_LIBRARY})
1677+
target_link_libraries(${target} LINK_PRIVATE ${CUDA_cufft_LIBRARY})
16781678
endif()
16791679
endmacro()
16801680

@@ -1685,9 +1685,9 @@ endmacro()
16851685
###############################################################################
16861686
macro(CUDA_ADD_CUBLAS_TO_TARGET target)
16871687
if (CUDA_BUILD_EMULATION)
1688-
target_link_libraries(${target} ${CUDA_cublasemu_LIBRARY})
1688+
target_link_libraries(${target} LINK_PRIVATE ${CUDA_cublasemu_LIBRARY})
16891689
else()
1690-
target_link_libraries(${target} ${CUDA_cublas_LIBRARY})
1690+
target_link_libraries(${target} LINK_PRIVATE ${CUDA_cublas_LIBRARY})
16911691
endif()
16921692
endmacro()
16931693

cmake/OpenCVDetectAndroidSDK.cmake

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -302,16 +302,15 @@ macro(add_android_project target path)
302302
endif()
303303

304304
add_library(${JNI_LIB_NAME} SHARED ${android_proj_jni_files})
305-
target_link_libraries(${JNI_LIB_NAME} ${OPENCV_LINKER_LIBS} ${android_proj_NATIVE_DEPS})
305+
target_link_libraries(${JNI_LIB_NAME} LINK_PRIVATE ${OPENCV_LINKER_LIBS} ${android_proj_NATIVE_DEPS})
306306

307307
set_target_properties(${JNI_LIB_NAME} PROPERTIES
308308
OUTPUT_NAME "${JNI_LIB_NAME}"
309309
LIBRARY_OUTPUT_DIRECTORY "${android_proj_bin_dir}/libs/${ANDROID_NDK_ABI_NAME}"
310310
)
311311

312-
get_target_property(android_proj_jni_location "${JNI_LIB_NAME}" LOCATION)
313312
if (NOT (CMAKE_BUILD_TYPE MATCHES "debug"))
314-
add_custom_command(TARGET ${JNI_LIB_NAME} POST_BUILD COMMAND ${CMAKE_STRIP} --strip-unneeded "${android_proj_jni_location}")
313+
add_custom_command(TARGET ${JNI_LIB_NAME} POST_BUILD COMMAND ${CMAKE_STRIP} --strip-unneeded "$<TARGET_FILE:${JNI_LIB_NAME}>")
315314
endif()
316315
endif()
317316

cmake/OpenCVDetectCUDA.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ if(CUDA_FOUND)
212212
endif()
213213

214214
# disabled because of multiple warnings during building nvcc auto generated files
215-
if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_GCC_REGEX_VERSION VERSION_GREATER "4.6.0")
215+
if(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "4.6.0")
216216
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wunused-but-set-variable)
217217
endif()
218218

cmake/OpenCVDetectCXXCompiler.cmake

Lines changed: 4 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -42,49 +42,11 @@ if(MSVC AND CMAKE_C_COMPILER MATCHES "icc|icl")
4242
set(CV_ICC __INTEL_COMPILER_FOR_WINDOWS)
4343
endif()
4444

45-
# ----------------------------------------------------------------------------
46-
# Detect GNU version:
47-
# ----------------------------------------------------------------------------
48-
if(CMAKE_COMPILER_IS_CLANGCXX)
49-
set(CMAKE_GCC_REGEX_VERSION "4.2.1")
50-
set(CMAKE_OPENCV_GCC_VERSION_MAJOR 4)
51-
set(CMAKE_OPENCV_GCC_VERSION_MINOR 2)
52-
set(CMAKE_OPENCV_GCC_VERSION 42)
53-
set(CMAKE_OPENCV_GCC_VERSION_NUM 402)
54-
55-
execute_process(COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} -v
56-
ERROR_VARIABLE CMAKE_OPENCV_CLANG_VERSION_FULL
57-
ERROR_STRIP_TRAILING_WHITESPACE)
58-
59-
string(REGEX MATCH "version.*$" CMAKE_OPENCV_CLANG_VERSION_FULL "${CMAKE_OPENCV_CLANG_VERSION_FULL}")
60-
string(REGEX MATCH "[0-9]+\\.[0-9]+" CMAKE_CLANG_REGEX_VERSION "${CMAKE_OPENCV_CLANG_VERSION_FULL}")
61-
62-
elseif(CMAKE_COMPILER_IS_GNUCXX)
63-
execute_process(COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} -dumpversion
64-
OUTPUT_VARIABLE CMAKE_OPENCV_GCC_VERSION_FULL
65-
OUTPUT_STRIP_TRAILING_WHITESPACE)
66-
67-
execute_process(COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} -v
68-
ERROR_VARIABLE CMAKE_OPENCV_GCC_INFO_FULL
69-
OUTPUT_STRIP_TRAILING_WHITESPACE)
70-
71-
# Typical output in CMAKE_OPENCV_GCC_VERSION_FULL: "c+//0 (whatever) 4.2.3 (...)"
72-
# Look for the version number
73-
string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" CMAKE_GCC_REGEX_VERSION "${CMAKE_OPENCV_GCC_VERSION_FULL}")
74-
if(NOT CMAKE_GCC_REGEX_VERSION)
75-
string(REGEX MATCH "[0-9]+\\.[0-9]+" CMAKE_GCC_REGEX_VERSION "${CMAKE_OPENCV_GCC_VERSION_FULL}")
76-
endif()
77-
78-
# Split the three parts:
79-
string(REGEX MATCHALL "[0-9]+" CMAKE_OPENCV_GCC_VERSIONS "${CMAKE_GCC_REGEX_VERSION}")
80-
81-
list(GET CMAKE_OPENCV_GCC_VERSIONS 0 CMAKE_OPENCV_GCC_VERSION_MAJOR)
82-
list(GET CMAKE_OPENCV_GCC_VERSIONS 1 CMAKE_OPENCV_GCC_VERSION_MINOR)
83-
84-
set(CMAKE_OPENCV_GCC_VERSION ${CMAKE_OPENCV_GCC_VERSION_MAJOR}${CMAKE_OPENCV_GCC_VERSION_MINOR})
85-
math(EXPR CMAKE_OPENCV_GCC_VERSION_NUM "${CMAKE_OPENCV_GCC_VERSION_MAJOR}*100 + ${CMAKE_OPENCV_GCC_VERSION_MINOR}")
86-
message(STATUS "Detected version of GNU GCC: ${CMAKE_OPENCV_GCC_VERSION} (${CMAKE_OPENCV_GCC_VERSION_NUM})")
45+
if(NOT DEFINED CMAKE_CXX_COMPILER_VERSION)
46+
message(WARNING "Compiler version is not available: CMAKE_CXX_COMPILER_VERSION is not set")
47+
endif()
8748

49+
if(CMAKE_COMPILER_IS_GNUCXX)
8850
if(WIN32)
8951
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpmachine
9052
OUTPUT_VARIABLE OPENCV_GCC_TARGET_MACHINE

cmake/OpenCVFindLibsVideo.cmake

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -84,23 +84,16 @@ if(WITH_PVAPI)
8484
set(PVAPI_SDK_SUBDIR arm)
8585
endif()
8686

87-
get_filename_component(_PVAPI_LIBRARY "${PVAPI_INCLUDE_PATH}/../lib-pc" ABSOLUTE)
88-
if(PVAPI_SDK_SUBDIR)
89-
set(_PVAPI_LIBRARY "${_PVAPI_LIBRARY}/${PVAPI_SDK_SUBDIR}")
90-
endif()
91-
if(NOT WIN32 AND CMAKE_COMPILER_IS_GNUCXX)
92-
set(_PVAPI_LIBRARY "${_PVAPI_LIBRARY}/${CMAKE_OPENCV_GCC_VERSION_MAJOR}.${CMAKE_OPENCV_GCC_VERSION_MINOR}")
93-
endif()
87+
get_filename_component(_PVAPI_LIBRARY_HINT "${PVAPI_INCLUDE_PATH}/../lib-pc" ABSOLUTE)
9488

95-
if(WIN32)
96-
if(MINGW)
97-
set(PVAPI_DEFINITIONS "-DPVDECL=__stdcall")
98-
endif(MINGW)
99-
set(PVAPI_LIBRARY "${_PVAPI_LIBRARY}/PvAPI.lib" CACHE PATH "The PvAPI library")
100-
else(WIN32)
101-
set(PVAPI_LIBRARY "${_PVAPI_LIBRARY}/${CMAKE_STATIC_LIBRARY_PREFIX}PvAPI${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE PATH "The PvAPI library")
102-
endif(WIN32)
103-
if(EXISTS "${PVAPI_LIBRARY}")
89+
find_library(PVAPI_LIBRARY NAMES "PvAPI" PATHS "${_PVAPI_LIBRARY_HINT}")
90+
91+
if(PVAPI_LIBRARY)
92+
if(WIN32)
93+
if(MINGW)
94+
set(PVAPI_DEFINITIONS "-DPVDECL=__stdcall")
95+
endif(MINGW)
96+
endif()
10497
set(HAVE_PVAPI TRUE)
10598
endif()
10699
endif(PVAPI_INCLUDE_PATH)

cmake/OpenCVGenPkgconfig.cmake

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,16 @@ endif()
4646
set(OpenCV_LIB_COMPONENTS_)
4747
foreach(CVLib ${OpenCV_LIB_COMPONENTS})
4848

49-
get_target_property(libloc ${CVLib} LOCATION_${CMAKE_BUILD_TYPE})
50-
if(libloc MATCHES "3rdparty")
51-
set(libpath "\${exec_prefix}/share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH}")
52-
else()
53-
set(libpath "\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}")
49+
get_target_property(libname ${CVLib} OUTPUT_NAME_${CMAKE_BUILD_TYPE})
50+
if(NOT libname)
51+
get_target_property(libname ${CVLib} OUTPUT_NAME)
52+
endif()
53+
if(NOT libname)
54+
set(libname "${CVLib}")
5455
endif()
55-
list(APPEND OpenCV_LIB_COMPONENTS_ "-L${libpath}")
5656

57-
get_filename_component(libname ${CVLib} NAME_WE)
58-
string(REGEX REPLACE "^lib" "" libname "${libname}")
57+
set(libpath "\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}")
58+
list(APPEND OpenCV_LIB_COMPONENTS_ "-L${libpath}")
5959
list(APPEND OpenCV_LIB_COMPONENTS_ "-l${libname}")
6060

6161
endforeach()
@@ -66,7 +66,7 @@ if(OpenCV_EXTRA_COMPONENTS)
6666
if(TARGET "${extra_component}")
6767
get_target_property(extra_component_is_imported "${extra_component}" IMPORTED)
6868
if(extra_component_is_imported)
69-
get_target_property(extra_component "${extra_component}" LOCATION)
69+
get_target_property(extra_component "${extra_component}" IMPORTED_LOCATION)
7070
endif()
7171
endif()
7272

cmake/OpenCVModule.cmake

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -578,12 +578,12 @@ macro(ocv_create_module)
578578
${${the_module}_pch})
579579

580580
if(NOT "${ARGN}" STREQUAL "SKIP_LINK")
581-
target_link_libraries(${the_module} ${OPENCV_MODULE_${the_module}_DEPS})
582-
target_link_libraries(${the_module} LINK_INTERFACE_LIBRARIES ${OPENCV_MODULE_${the_module}_DEPS})
581+
target_link_libraries(${the_module} LINK_PUBLIC ${OPENCV_MODULE_${the_module}_DEPS})
582+
target_link_libraries(${the_module} LINK_PUBLIC ${OPENCV_MODULE_${the_module}_DEPS})
583583
set(extra_deps ${OPENCV_MODULE_${the_module}_DEPS_EXT} ${OPENCV_LINKER_LIBS} ${IPP_LIBS} ${ARGN})
584584
ocv_extract_simple_libs(extra_deps _simple_deps _other_deps)
585-
target_link_libraries(${the_module} LINK_INTERFACE_LIBRARIES ${_simple_deps}) # this list goes to "export"
586-
target_link_libraries(${the_module} ${extra_deps})
585+
target_link_libraries(${the_module} LINK_PRIVATE ${_simple_deps}) # this list goes to "export"
586+
target_link_libraries(${the_module} LINK_PRIVATE ${extra_deps})
587587
endif()
588588

589589
add_dependencies(opencv_modules ${the_module})

cmake/OpenCVPackaging.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ set(STD_OPENCV_DEV libopencv-dev)
124124

125125
set(ABI_VERSION_SUFFIX "")
126126
if(CMAKE_COMPILER_IS_GNUCXX)
127-
if(${CMAKE_OPENCV_GCC_VERSION_MAJOR} EQUAL 5)
127+
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5 AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6)
128128
set(ABI_VERSION_SUFFIX "v5")
129129
endif()
130130
endif()

0 commit comments

Comments
 (0)