diff --git a/CMakeLists.txt b/CMakeLists.txt index e3acb35995..9269469869 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,10 +44,6 @@ else() cmake_minimum_required(VERSION 2.8.12.2) endif() -if(POLICY CMP0022) - cmake_policy(SET CMP0022 OLD) -endif() - if(POLICY CMP0026) # silence cmake 3.0+ warnings about reading LOCATION attribute cmake_policy(SET CMP0026 OLD) diff --git a/cmake/FindCUDA.cmake b/cmake/FindCUDA.cmake index 34a7e9446d..963fcdec81 100644 --- a/cmake/FindCUDA.cmake +++ b/cmake/FindCUDA.cmake @@ -1553,7 +1553,7 @@ macro(CUDA_ADD_LIBRARY cuda_target) # variable will have been defined. CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS("${link_file}" ${cuda_target} "${_options}" "${${cuda_target}_SEPARABLE_COMPILATION_OBJECTS}") - target_link_libraries(${cuda_target} + target_link_libraries(${cuda_target} LINK_PRIVATE ${CUDA_LIBRARIES} ) @@ -1597,7 +1597,7 @@ macro(CUDA_ADD_EXECUTABLE cuda_target) # variable will have been defined. CUDA_LINK_SEPARABLE_COMPILATION_OBJECTS("${link_file}" ${cuda_target} "${_options}" "${${cuda_target}_SEPARABLE_COMPILATION_OBJECTS}") - target_link_libraries(${cuda_target} + target_link_libraries(${cuda_target} LINK_PRIVATE ${CUDA_LIBRARIES} ) @@ -1672,9 +1672,9 @@ endmacro() ############################################################################### macro(CUDA_ADD_CUFFT_TO_TARGET target) if (CUDA_BUILD_EMULATION) - target_link_libraries(${target} ${CUDA_cufftemu_LIBRARY}) + target_link_libraries(${target} LINK_PRIVATE ${CUDA_cufftemu_LIBRARY}) else() - target_link_libraries(${target} ${CUDA_cufft_LIBRARY}) + target_link_libraries(${target} LINK_PRIVATE ${CUDA_cufft_LIBRARY}) endif() endmacro() @@ -1685,9 +1685,9 @@ endmacro() ############################################################################### macro(CUDA_ADD_CUBLAS_TO_TARGET target) if (CUDA_BUILD_EMULATION) - target_link_libraries(${target} ${CUDA_cublasemu_LIBRARY}) + target_link_libraries(${target} LINK_PRIVATE ${CUDA_cublasemu_LIBRARY}) else() - target_link_libraries(${target} ${CUDA_cublas_LIBRARY}) + target_link_libraries(${target} LINK_PRIVATE ${CUDA_cublas_LIBRARY}) endif() endmacro() diff --git a/cmake/OpenCVDetectAndroidSDK.cmake b/cmake/OpenCVDetectAndroidSDK.cmake index 4f26a78ece..7a7053b381 100644 --- a/cmake/OpenCVDetectAndroidSDK.cmake +++ b/cmake/OpenCVDetectAndroidSDK.cmake @@ -302,7 +302,7 @@ macro(add_android_project target path) endif() add_library(${JNI_LIB_NAME} SHARED ${android_proj_jni_files}) - target_link_libraries(${JNI_LIB_NAME} ${OPENCV_LINKER_LIBS} ${android_proj_NATIVE_DEPS}) + target_link_libraries(${JNI_LIB_NAME} LINK_PRIVATE ${OPENCV_LINKER_LIBS} ${android_proj_NATIVE_DEPS}) set_target_properties(${JNI_LIB_NAME} PROPERTIES OUTPUT_NAME "${JNI_LIB_NAME}" diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake index dc92a049e1..6f9fb0bd27 100644 --- a/cmake/OpenCVModule.cmake +++ b/cmake/OpenCVModule.cmake @@ -578,12 +578,12 @@ macro(ocv_create_module) ${${the_module}_pch}) if(NOT "${ARGN}" STREQUAL "SKIP_LINK") - target_link_libraries(${the_module} ${OPENCV_MODULE_${the_module}_DEPS}) - target_link_libraries(${the_module} LINK_INTERFACE_LIBRARIES ${OPENCV_MODULE_${the_module}_DEPS}) + target_link_libraries(${the_module} LINK_PUBLIC ${OPENCV_MODULE_${the_module}_DEPS}) + target_link_libraries(${the_module} LINK_PUBLIC ${OPENCV_MODULE_${the_module}_DEPS}) set(extra_deps ${OPENCV_MODULE_${the_module}_DEPS_EXT} ${OPENCV_LINKER_LIBS} ${IPP_LIBS} ${ARGN}) ocv_extract_simple_libs(extra_deps _simple_deps _other_deps) - target_link_libraries(${the_module} LINK_INTERFACE_LIBRARIES ${_simple_deps}) # this list goes to "export" - target_link_libraries(${the_module} ${extra_deps}) + target_link_libraries(${the_module} LINK_PRIVATE ${_simple_deps}) # this list goes to "export" + target_link_libraries(${the_module} LINK_PRIVATE ${extra_deps}) endif() add_dependencies(opencv_modules ${the_module}) diff --git a/modules/highgui/CMakeLists.txt b/modules/highgui/CMakeLists.txt index 2946bf1430..dc6f777a0e 100644 --- a/modules/highgui/CMakeLists.txt +++ b/modules/highgui/CMakeLists.txt @@ -293,9 +293,6 @@ if(MSVC) set_target_properties(${the_module} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:atlthunk.lib /NODEFAULTLIB:atlsd.lib /NODEFAULTLIB:libcmt.lib /DEBUG") endif() -#stop automatic dependencies propagation for this module -set_target_properties(${the_module} PROPERTIES LINK_INTERFACE_LIBRARIES "") - ocv_add_precompiled_headers(${the_module}) ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-deprecated-declarations -Wno-clobbered) diff --git a/modules/java/CMakeLists.txt b/modules/java/CMakeLists.txt index f82bdcd32f..f336c94f90 100644 --- a/modules/java/CMakeLists.txt +++ b/modules/java/CMakeLists.txt @@ -314,18 +314,20 @@ if(BUILD_FAT_JAVA_LIB) endif() if(APPLE) foreach(_dep ${__deps}) - target_link_libraries(${the_module} -Wl,-force_load "${_dep}") + target_link_libraries(${the_module} LINK_PRIVATE -Wl,-force_load "${_dep}") endforeach() else() - target_link_libraries(${the_module} -Wl,-whole-archive ${__deps} -Wl,-no-whole-archive) + target_link_libraries(${the_module} LINK_PRIVATE -Wl,-whole-archive ${__deps} -Wl,-no-whole-archive) endif() - target_link_libraries(${the_module} ${__extradeps} ${OPENCV_LINKER_LIBS}) + target_link_libraries(${the_module} LINK_PRIVATE ${__extradeps} ${OPENCV_LINKER_LIBS}) else() - target_link_libraries(${the_module} ${OPENCV_MODULE_${the_module}_DEPS} ${OPENCV_LINKER_LIBS}) + target_link_libraries(${the_module} LINK_PRIVATE ${OPENCV_MODULE_${the_module}_DEPS} ${OPENCV_LINKER_LIBS}) endif() if(ANDROID) - target_link_libraries(${the_module} jnigraphics) # for Mat <=> Bitmap converters + target_link_libraries(${the_module} LINK_PUBLIC jnigraphics) # for Mat <=> Bitmap converters + target_link_libraries(${the_module} LINK_PUBLIC log dl z) + target_link_libraries(${the_module} LINK_PRIVATE ${OPENCV_LINKER_LIBS}) # force strip library after the build command # because samples and tests will make a copy of the library before install @@ -343,7 +345,6 @@ set_target_properties(${the_module} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH} RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH} INSTALL_NAME_DIR ${OPENCV_LIB_INSTALL_PATH} - LINK_INTERFACE_LIBRARIES "" ) if(WIN32) diff --git a/modules/viz/CMakeLists.txt b/modules/viz/CMakeLists.txt index d839491c1b..f6ae507e92 100644 --- a/modules/viz/CMakeLists.txt +++ b/modules/viz/CMakeLists.txt @@ -7,7 +7,7 @@ set(the_description "Viz") ocv_define_module(viz opencv_core ${VTK_LIBRARIES}) if(APPLE AND BUILD_opencv_viz) - target_link_libraries(opencv_viz "-framework Cocoa") + target_link_libraries(opencv_viz LINK_PRIVATE "-framework Cocoa") endif() if(TARGET opencv_test_viz)