diff --git a/docs/source/development/cmake.rst b/docs/source/development/cmake.rst index e965f46e4e..477b4f3b35 100644 --- a/docs/source/development/cmake.rst +++ b/docs/source/development/cmake.rst @@ -12,7 +12,7 @@ the CMake configuration which comes with the library. Typical usage is: find_package(PROJ) - target_link_libraries(MyApp ${PROJ_LIBRARIES}) + target_link_libraries(MyApp PRIVATE ${PROJ_LIBRARIES}) By adding the imported library target ``${PROJ_LIBRARIES}`` to the target link libraries, CMake will also pass the include directories to @@ -36,7 +36,7 @@ package to work with pre-7.0 versions of PROJ, you will need to use .. code:: find_package(PROJ4) - target_link_libraries(MyApp ${PROJ4_LIBRARIES}) + target_link_libraries(MyApp PRIVATE ${PROJ4_LIBRARIES}) include_directories(${PROJ4_INCLUDE_DIRS}) This will also find version 7.0. This use of the PROJ4 name will be diff --git a/src/bin_cct.cmake b/src/bin_cct.cmake index 9e9bb7ec96..b36f60de73 100644 --- a/src/bin_cct.cmake +++ b/src/bin_cct.cmake @@ -8,7 +8,7 @@ set(CCT_INCLUDE apps/optargpm.h) source_group("Source Files\\Bin" FILES ${CCT_SRC}) add_executable(cct ${CCT_SRC} ${CCT_INCLUDE}) -target_link_libraries(cct ${PROJ_LIBRARIES}) +target_link_libraries(cct PRIVATE ${PROJ_LIBRARIES}) target_compile_options(cct PRIVATE ${PROJ_CXX_WARN_FLAGS}) install(TARGETS cct diff --git a/src/bin_cs2cs.cmake b/src/bin_cs2cs.cmake index 48fc802bfe..e3d35871d5 100644 --- a/src/bin_cs2cs.cmake +++ b/src/bin_cs2cs.cmake @@ -7,7 +7,7 @@ set(CS2CS_SRC source_group("Source Files\\Bin" FILES ${CS2CS_SRC}) add_executable(cs2cs ${CS2CS_SRC} ${CS2CS_INCLUDE}) -target_link_libraries(cs2cs ${PROJ_LIBRARIES}) +target_link_libraries(cs2cs PRIVATE ${PROJ_LIBRARIES}) target_compile_options(cs2cs PRIVATE ${PROJ_CXX_WARN_FLAGS}) install(TARGETS cs2cs diff --git a/src/bin_geod.cmake b/src/bin_geod.cmake index c3df5e7a29..98dbc4ee04 100644 --- a/src/bin_geod.cmake +++ b/src/bin_geod.cmake @@ -9,7 +9,7 @@ set(GEOD_INCLUDE apps/geod_interface.h) source_group("Source Files\\Bin" FILES ${GEOD_SRC} ${GEOD_INCLUDE}) add_executable(geod ${GEOD_SRC} ${GEOD_INCLUDE}) -target_link_libraries(geod ${PROJ_LIBRARIES}) +target_link_libraries(geod PRIVATE ${PROJ_LIBRARIES}) target_compile_options(geod PRIVATE ${PROJ_CXX_WARN_FLAGS}) install(TARGETS geod diff --git a/src/bin_geodtest.cmake b/src/bin_geodtest.cmake index cc155672b7..ab366144c7 100644 --- a/src/bin_geodtest.cmake +++ b/src/bin_geodtest.cmake @@ -4,7 +4,7 @@ set(GEODTEST_INCLUDE) source_group("Source Files\\Bin" FILES ${GEODTEST_SRC} ${GEODTEST_INCLUDE}) add_executable(geodtest ${GEODTEST_SRC} ${GEODTEST_INCLUDE}) -target_link_libraries(geodtest ${PROJ_LIBRARIES}) +target_link_libraries(geodtest PRIVATE ${PROJ_LIBRARIES}) target_compile_options(geodtest PRIVATE ${PROJ_CXX_WARN_FLAGS}) # Do not install, instead run as a test diff --git a/src/bin_gie.cmake b/src/bin_gie.cmake index 94a7cea54b..5cf9d86dc5 100644 --- a/src/bin_gie.cmake +++ b/src/bin_gie.cmake @@ -8,7 +8,7 @@ set(GIE_INCLUDE apps/optargpm.h) source_group("Source Files\\Bin" FILES ${GIE_SRC}) add_executable(gie ${GIE_SRC} ${GIE_INCLUDE}) -target_link_libraries(gie ${PROJ_LIBRARIES}) +target_link_libraries(gie PRIVATE ${PROJ_LIBRARIES}) target_compile_options(gie PRIVATE ${PROJ_CXX_WARN_FLAGS}) install(TARGETS gie diff --git a/src/bin_proj.cmake b/src/bin_proj.cmake index 89fd3ff9e7..d251338641 100644 --- a/src/bin_proj.cmake +++ b/src/bin_proj.cmake @@ -10,7 +10,7 @@ add_executable(binproj ${PROJ_SRC}) set_target_properties(binproj PROPERTIES RUNTIME_OUTPUT_NAME proj) -target_link_libraries(binproj ${PROJ_LIBRARIES}) +target_link_libraries(binproj PRIVATE ${PROJ_LIBRARIES}) target_compile_options(binproj PRIVATE ${PROJ_CXX_WARN_FLAGS}) install(TARGETS binproj diff --git a/src/bin_projinfo.cmake b/src/bin_projinfo.cmake index 8610a3a7eb..1b8ed63706 100644 --- a/src/bin_projinfo.cmake +++ b/src/bin_projinfo.cmake @@ -6,7 +6,7 @@ add_executable(binprojinfo ${PROJINFO_SRC}) set_target_properties(binprojinfo PROPERTIES OUTPUT_NAME projinfo) -target_link_libraries(binprojinfo ${PROJ_LIBRARIES}) +target_link_libraries(binprojinfo PRIVATE ${PROJ_LIBRARIES}) target_compile_options(binprojinfo PRIVATE ${PROJ_CXX_WARN_FLAGS}) install(TARGETS binprojinfo diff --git a/src/bin_projsync.cmake b/src/bin_projsync.cmake index 0e71044fa1..e18eebd970 100644 --- a/src/bin_projsync.cmake +++ b/src/bin_projsync.cmake @@ -6,7 +6,7 @@ add_executable(bin_projsync ${PROJSYNC_SRC}) set_target_properties(bin_projsync PROPERTIES OUTPUT_NAME projsync) -target_link_libraries(bin_projsync ${PROJ_LIBRARIES}) +target_link_libraries(bin_projsync PRIVATE ${PROJ_LIBRARIES}) target_compile_options(bin_projsync PRIVATE ${PROJ_CXX_WARN_FLAGS}) install(TARGETS bin_projsync RUNTIME DESTINATION ${BINDIR}) diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake index 367ff97690..2a248a7065 100644 --- a/src/lib_proj.cmake +++ b/src/lib_proj.cmake @@ -386,30 +386,30 @@ set(PROJ_LIBRARIES ${PROJ_LIBRARIES} PARENT_SCOPE) if(UNIX) find_library(M_LIB m) if(M_LIB) - target_link_libraries(${PROJ_CORE_TARGET} -lm) + target_link_libraries(${PROJ_CORE_TARGET} PRIVATE -lm) endif() find_library(DL_LIB dl) if(M_LIB) - target_link_libraries(${PROJ_CORE_TARGET} -ldl) + target_link_libraries(${PROJ_CORE_TARGET} PRIVATE -ldl) endif() endif() if(USE_THREAD AND Threads_FOUND AND CMAKE_USE_PTHREADS_INIT) - target_link_libraries(${PROJ_CORE_TARGET} ${CMAKE_THREAD_LIBS_INIT}) + target_link_libraries(${PROJ_CORE_TARGET} PRIVATE ${CMAKE_THREAD_LIBS_INIT}) endif() target_include_directories(${PROJ_CORE_TARGET} PRIVATE ${SQLITE3_INCLUDE_DIR}) -target_link_libraries(${PROJ_CORE_TARGET} ${SQLITE3_LIBRARY}) +target_link_libraries(${PROJ_CORE_TARGET} PRIVATE ${SQLITE3_LIBRARY}) if(TIFF_ENABLED) target_compile_definitions(${PROJ_CORE_TARGET} PRIVATE -DTIFF_ENABLED) target_include_directories(${PROJ_CORE_TARGET} PRIVATE ${TIFF_INCLUDE_DIR}) - target_link_libraries(${PROJ_CORE_TARGET} ${TIFF_LIBRARY}) + target_link_libraries(${PROJ_CORE_TARGET} PRIVATE ${TIFF_LIBRARY}) endif() if(CURL_ENABLED) target_compile_definitions(${PROJ_CORE_TARGET} PRIVATE -DCURL_ENABLED) target_include_directories(${PROJ_CORE_TARGET} PRIVATE ${CURL_INCLUDE_DIR}) - target_link_libraries(${PROJ_CORE_TARGET} ${CURL_LIBRARY}) + target_link_libraries(${PROJ_CORE_TARGET} PRIVATE ${CURL_LIBRARY}) endif() if(MSVC AND BUILD_SHARED_LIBS) diff --git a/test/postinstall/testappprojinfo/CMakeLists.txt b/test/postinstall/testappprojinfo/CMakeLists.txt index 2405bc8cb4..beac54ff3f 100644 --- a/test/postinstall/testappprojinfo/CMakeLists.txt +++ b/test/postinstall/testappprojinfo/CMakeLists.txt @@ -17,7 +17,7 @@ foreach(_variableName ${_variableNames}) endforeach() add_executable(testappprojinfo testappprojinfo.c) -target_link_libraries(testappprojinfo ${${USE_PROJ_NAME}_LIBRARIES}) +target_link_libraries(testappprojinfo PRIVATE ${${USE_PROJ_NAME}_LIBRARIES}) include(CTest) diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index 7c4c124a85..b9efd9265d 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -73,8 +73,8 @@ add_executable(proj_errno_string_test main.cpp proj_errno_string_test.cpp) target_link_libraries(proj_errno_string_test - GTest::gtest - ${PROJ_LIBRARIES}) + PRIVATE GTest::gtest + PRIVATE ${PROJ_LIBRARIES}) add_test(NAME proj_errno_string_test COMMAND proj_errno_string_test) set_property(TEST proj_errno_string_test PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT}) @@ -83,8 +83,8 @@ add_executable(proj_angular_io_test main.cpp proj_angular_io_test.cpp) target_link_libraries(proj_angular_io_test - GTest::gtest - ${PROJ_LIBRARIES}) + PRIVATE GTest::gtest + PRIVATE ${PROJ_LIBRARIES}) add_test(NAME proj_angular_io_test COMMAND proj_angular_io_test) set_property(TEST proj_angular_io_test PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT}) @@ -93,8 +93,8 @@ add_executable(proj_context_test main.cpp proj_context_test.cpp) target_link_libraries(proj_context_test - GTest::gtest - ${PROJ_LIBRARIES}) + PRIVATE GTest::gtest + PRIVATE ${PROJ_LIBRARIES}) add_test(NAME proj_context_test COMMAND proj_context_test) set_property(TEST proj_context_test PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT}) @@ -106,8 +106,8 @@ else() main.cpp pj_phi2_test.cpp) target_link_libraries(pj_phi2_test - GTest::gtest - ${PROJ_LIBRARIES}) + PRIVATE GTest::gtest + PRIVATE ${PROJ_LIBRARIES}) add_test(NAME pj_phi2_test COMMAND pj_phi2_test) set_property(TEST pj_phi2_test PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT}) @@ -127,20 +127,19 @@ add_executable(proj_test_cpp_api test_c_api.cpp test_grids.cpp) target_link_libraries(proj_test_cpp_api - GTest::gtest - ${PROJ_LIBRARIES} - ${SQLITE3_LIBRARY}) + PRIVATE GTest::gtest + PRIVATE ${PROJ_LIBRARIES} + PRIVATE ${SQLITE3_LIBRARY}) add_test(NAME proj_test_cpp_api COMMAND proj_test_cpp_api) set_property(TEST proj_test_cpp_api PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT}) - add_executable(gie_self_tests main.cpp gie_self_tests.cpp) target_link_libraries(gie_self_tests - GTest::gtest - ${PROJ_LIBRARIES}) + PRIVATE GTest::gtest + PRIVATE ${PROJ_LIBRARIES}) add_test(NAME gie_self_tests COMMAND gie_self_tests) set_property(TEST gie_self_tests PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT}) @@ -151,34 +150,32 @@ add_executable(test_network if(CURL_ENABLED) include_directories(${CURL_INCLUDE_DIR}) target_compile_definitions(test_network PRIVATE -DCURL_ENABLED) - target_link_libraries(test_network ${CURL_LIBRARY}) + target_link_libraries(test_network PRIVATE ${CURL_LIBRARY}) endif() target_link_libraries(test_network - GTest::gtest - ${PROJ_LIBRARIES} - ${SQLITE3_LIBRARY}) + PRIVATE GTest::gtest + PRIVATE ${PROJ_LIBRARIES} + PRIVATE ${SQLITE3_LIBRARY}) add_test(NAME test_network COMMAND test_network) set_property(TEST test_network PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT}) - add_executable(test_defmodel main.cpp test_defmodel.cpp) target_link_libraries(test_defmodel - GTest::gtest - ${PROJ_LIBRARIES}) + PRIVATE GTest::gtest + PRIVATE ${PROJ_LIBRARIES}) add_test(NAME test_defmodel COMMAND test_defmodel) set_property(TEST test_defmodel PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT}) - add_executable(test_tinshift main.cpp test_tinshift.cpp) target_link_libraries(test_tinshift - GTest::gtest - ${PROJ_LIBRARIES}) + PRIVATE GTest::gtest + PRIVATE ${PROJ_LIBRARIES}) add_test(NAME test_tinshift COMMAND test_tinshift) set_property(TEST test_tinshift PROPERTY ENVIRONMENT ${PROJ_TEST_ENVIRONMENT})