From 469da02ca651dd6f5cf71268001b14e269215ea8 Mon Sep 17 00:00:00 2001 From: Pasukhin Dmitry Date: Thu, 15 May 2025 13:04:14 +0100 Subject: [PATCH] Configuration - Fixed pathes to 3rd-party in cmake configuration (#523) Update target_link_libraries to use PUBLIC and PRIVATE visibility for dependencies. Now all 3rd-party is hidden for the external linking, no more issues to invalid path to 3rd-party --- adm/cmake/occt_macros.cmake | 15 +++++++++++---- adm/cmake/occt_toolkit.cmake | 6 +++--- src/DataExchange/TKDEIGES/CMakeLists.txt | 2 +- src/DataExchange/TKDEIGES/FILES.cmake | 1 + src/DataExchange/TKDESTEP/CMakeLists.txt | 2 +- src/DataExchange/TKDESTEP/FILES.cmake | 1 + src/DataExchange/TKXSBase/CMakeLists.txt | 2 +- src/DataExchange/TKXSBase/FILES.cmake | 1 + src/FoundationClasses/TKMath/CMakeLists.txt | 2 +- src/FoundationClasses/TKMath/FILES.cmake | 1 + src/FoundationClasses/TKernel/CMakeLists.txt | 2 +- src/FoundationClasses/TKernel/FILES.cmake | 1 + src/ModelingAlgorithms/TKMesh/CMakeLists.txt | 2 +- src/ModelingAlgorithms/TKMesh/FILES.cmake | 1 + src/ModelingData/TKBRep/CMakeLists.txt | 2 +- src/ModelingData/TKBRep/FILES.cmake | 1 + src/Visualization/TKV3d/CMakeLists.txt | 2 +- src/Visualization/TKV3d/FILES.cmake | 1 + 18 files changed, 30 insertions(+), 15 deletions(-) diff --git a/adm/cmake/occt_macros.cmake b/adm/cmake/occt_macros.cmake index d58ddf755f..21114a5567 100644 --- a/adm/cmake/occt_macros.cmake +++ b/adm/cmake/occt_macros.cmake @@ -381,6 +381,11 @@ function (COLLECT_AND_INSTALL_OCCT_HEADER_FILES THE_ROOT_TARGET_OCCT_DIR THE_OCC list (FILTER HEADER_FILES_FILTERING INCLUDE REGEX ".+[.](h|g|p|lxx|hxx|pxx|hpp|gxx)$") list (APPEND OCCT_HEADER_FILES_COMPLETE ${HEADER_FILES_FILTERING}) endforeach() + # parse root of the toolkit file + EXTRACT_PACKAGE_FILES (${THE_RELATIVE_PATH} ${OCCT_TOOLKIT} ALL_FILES _) + set (HEADER_FILES_FILTERING ${ALL_FILES}) + list (FILTER HEADER_FILES_FILTERING INCLUDE REGEX ".+[.](h|g|p|lxx|hxx|pxx|hpp|gxx)$") + list (APPEND OCCT_HEADER_FILES_COMPLETE ${HEADER_FILES_FILTERING}) endforeach() # Check that copying is done and match the include installation type. @@ -438,10 +443,12 @@ function(ADD_PRECOMPILED_HEADER INPUT_TARGET PRECOMPILED_HEADER THE_IS_PRIVATE) if (NOT BUILD_USE_PCH) return() endif() + + # Angular bracket syntax is achieved using $ for closing bracket if (${THE_IS_PRIVATE}) - target_precompile_headers(${INPUT_TARGET} PRIVATE "$<$:${PRECOMPILED_HEADER}>") + target_precompile_headers(${INPUT_TARGET} PRIVATE "$<$:<${PRECOMPILED_HEADER}$>") else() - target_precompile_headers(${INPUT_TARGET} PUBLIC "$<$:${PRECOMPILED_HEADER}>") + target_precompile_headers(${INPUT_TARGET} PUBLIC "$<$:<${PRECOMPILED_HEADER}$>") endif() endfunction() @@ -836,12 +843,12 @@ function (PROCESS_CSF_LIBRARIES CURRENT_CSF LIST_NAME TARGET_NAME) foreach (RELEASE_DIR ${FOUND_RELEASE_DIRS}) get_filename_component(RELEASE_DIR_ABS "${RELEASE_DIR}" ABSOLUTE) - target_link_directories(${TARGET_NAME} PUBLIC "$<$:${RELEASE_DIR_ABS}>;$<$:${RELEASE_DIR_ABS}>") + target_link_directories(${TARGET_NAME} PRIVATE "$<$:${RELEASE_DIR_ABS}>;$<$:${RELEASE_DIR_ABS}>") endforeach() foreach (DEBUG_DIR ${FOUND_DEBUG_DIRS}) get_filename_component(DEBUG_DIR_ABS "${DEBUG_DIR}" ABSOLUTE) - target_link_directories(${TARGET_NAME} PUBLIC "$<$:${DEBUG_DIR_ABS}>") + target_link_directories(${TARGET_NAME} PRIVATE "$<$:${DEBUG_DIR_ABS}>") endforeach() endfunction() macro(OCCT_ADD_VCPKG_FEATURE THE_FEATURE) diff --git a/adm/cmake/occt_toolkit.cmake b/adm/cmake/occt_toolkit.cmake index 378ff6928e..60516caf6e 100644 --- a/adm/cmake/occt_toolkit.cmake +++ b/adm/cmake/occt_toolkit.cmake @@ -281,14 +281,14 @@ if(IS_VTK_9XX) string (REGEX REPLACE "vtk" "VTK::" USED_TOOLKITS_BY_CURRENT_PROJECT "${USED_TOOLKITS_BY_CURRENT_PROJECT}") endif() -target_link_libraries (${PROJECT_NAME} ${USED_TOOLKITS_BY_CURRENT_PROJECT} ${USED_EXTERNAL_LIBS_BY_CURRENT_PROJECT}) +target_link_libraries (${PROJECT_NAME} PUBLIC ${USED_TOOLKITS_BY_CURRENT_PROJECT} PRIVATE ${USED_EXTERNAL_LIBS_BY_CURRENT_PROJECT}) if (USE_QT) foreach (PROJECT_LIBRARY_DEBUG ${PROJECT_LIBRARIES_DEBUG}) - target_link_libraries (${PROJECT_NAME} debug ${PROJECT_LIBRARY_DEBUG}) + target_link_libraries (${PROJECT_NAME} PRIVATE debug ${PROJECT_LIBRARY_DEBUG}) endforeach() foreach (PROJECT_LIBRARY_RELEASE ${PROJECT_LIBRARIES_RELEASE}) - target_link_libraries (${PROJECT_NAME} optimized ${PROJECT_LIBRARY_RELEASE}) + target_link_libraries (${PROJECT_NAME} PRIVATE optimized ${PROJECT_LIBRARY_RELEASE}) endforeach() endif() diff --git a/src/DataExchange/TKDEIGES/CMakeLists.txt b/src/DataExchange/TKDEIGES/CMakeLists.txt index 2ba9c60382..8b2f8b13c8 100644 --- a/src/DataExchange/TKDEIGES/CMakeLists.txt +++ b/src/DataExchange/TKDEIGES/CMakeLists.txt @@ -3,4 +3,4 @@ project(TKDEIGES) OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit) # Add the precompiled header -ADD_PRECOMPILED_HEADER(TKDEIGES "${CMAKE_CURRENT_SOURCE_DIR}/TKDEIGES_pch.hxx" TRUE) +ADD_PRECOMPILED_HEADER(TKDEIGES "TKDEIGES_pch.hxx" TRUE) diff --git a/src/DataExchange/TKDEIGES/FILES.cmake b/src/DataExchange/TKDEIGES/FILES.cmake index 43a685debc..df850f869e 100644 --- a/src/DataExchange/TKDEIGES/FILES.cmake +++ b/src/DataExchange/TKDEIGES/FILES.cmake @@ -4,4 +4,5 @@ set(OCCT_TKDEIGES_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}") set(OCCT_TKDEIGES_FILES EXTERNLIB PACKAGES + TKDEIGES_pch.hxx ) diff --git a/src/DataExchange/TKDESTEP/CMakeLists.txt b/src/DataExchange/TKDESTEP/CMakeLists.txt index 5a6b02e23e..11b29aa50f 100644 --- a/src/DataExchange/TKDESTEP/CMakeLists.txt +++ b/src/DataExchange/TKDESTEP/CMakeLists.txt @@ -3,6 +3,6 @@ project(TKDESTEP) OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit) # Add the precompiled header -ADD_PRECOMPILED_HEADER(TKDESTEP "${CMAKE_CURRENT_SOURCE_DIR}/TKDESTEP_pch.hxx" TRUE) +ADD_PRECOMPILED_HEADER(TKDESTEP "TKDESTEP_pch.hxx" TRUE) FLEX_AND_BISON_TARGET_APPLY ("StepFile" src) diff --git a/src/DataExchange/TKDESTEP/FILES.cmake b/src/DataExchange/TKDESTEP/FILES.cmake index a71352d0b4..ee212ff486 100644 --- a/src/DataExchange/TKDESTEP/FILES.cmake +++ b/src/DataExchange/TKDESTEP/FILES.cmake @@ -4,4 +4,5 @@ set(OCCT_TKDESTEP_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}") set(OCCT_TKDESTEP_FILES EXTERNLIB PACKAGES + TKDESTEP_pch.hxx ) diff --git a/src/DataExchange/TKXSBase/CMakeLists.txt b/src/DataExchange/TKXSBase/CMakeLists.txt index e8c7631d00..d3ec23710a 100644 --- a/src/DataExchange/TKXSBase/CMakeLists.txt +++ b/src/DataExchange/TKXSBase/CMakeLists.txt @@ -3,4 +3,4 @@ project(TKXSBase) OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit) # Add the precompiled header -ADD_PRECOMPILED_HEADER(TKXSBase "${CMAKE_CURRENT_SOURCE_DIR}/TKXSBase_pch.hxx" TRUE) +ADD_PRECOMPILED_HEADER(TKXSBase "TKXSBase_pch.hxx" TRUE) diff --git a/src/DataExchange/TKXSBase/FILES.cmake b/src/DataExchange/TKXSBase/FILES.cmake index ced62d23aa..17636b4b31 100644 --- a/src/DataExchange/TKXSBase/FILES.cmake +++ b/src/DataExchange/TKXSBase/FILES.cmake @@ -4,4 +4,5 @@ set(OCCT_TKXSBase_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}") set(OCCT_TKXSBase_FILES EXTERNLIB PACKAGES + TKXSBase_pch.hxx ) diff --git a/src/FoundationClasses/TKMath/CMakeLists.txt b/src/FoundationClasses/TKMath/CMakeLists.txt index 57b6486378..12e292b1f8 100644 --- a/src/FoundationClasses/TKMath/CMakeLists.txt +++ b/src/FoundationClasses/TKMath/CMakeLists.txt @@ -3,4 +3,4 @@ project(TKMath) OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit) # Add the precompiled header -ADD_PRECOMPILED_HEADER(TKMath "${CMAKE_CURRENT_SOURCE_DIR}/TKMath_pch.hxx" FALSE) +ADD_PRECOMPILED_HEADER(TKMath "TKMath_pch.hxx" FALSE) diff --git a/src/FoundationClasses/TKMath/FILES.cmake b/src/FoundationClasses/TKMath/FILES.cmake index 9b4ac17628..c3f6ddf68b 100644 --- a/src/FoundationClasses/TKMath/FILES.cmake +++ b/src/FoundationClasses/TKMath/FILES.cmake @@ -4,4 +4,5 @@ set(OCCT_TKMath_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}") set(OCCT_TKMath_FILES EXTERNLIB PACKAGES + TKMath_pch.hxx ) diff --git a/src/FoundationClasses/TKernel/CMakeLists.txt b/src/FoundationClasses/TKernel/CMakeLists.txt index ff4e72705b..5c460a8d5c 100644 --- a/src/FoundationClasses/TKernel/CMakeLists.txt +++ b/src/FoundationClasses/TKernel/CMakeLists.txt @@ -14,4 +14,4 @@ else () endif() # Add the precompiled header -ADD_PRECOMPILED_HEADER(TKernel "${CMAKE_CURRENT_SOURCE_DIR}/TKernel_pch.hxx" FALSE) +ADD_PRECOMPILED_HEADER(TKernel "TKernel_pch.hxx" FALSE) diff --git a/src/FoundationClasses/TKernel/FILES.cmake b/src/FoundationClasses/TKernel/FILES.cmake index b20e9306a1..d02957f4af 100644 --- a/src/FoundationClasses/TKernel/FILES.cmake +++ b/src/FoundationClasses/TKernel/FILES.cmake @@ -4,4 +4,5 @@ set(OCCT_TKernel_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}") set(OCCT_TKernel_FILES EXTERNLIB PACKAGES + TKernel_pch.hxx ) diff --git a/src/ModelingAlgorithms/TKMesh/CMakeLists.txt b/src/ModelingAlgorithms/TKMesh/CMakeLists.txt index d4ca239ba3..00f59a071f 100644 --- a/src/ModelingAlgorithms/TKMesh/CMakeLists.txt +++ b/src/ModelingAlgorithms/TKMesh/CMakeLists.txt @@ -3,4 +3,4 @@ project(TKMesh) OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit) # Add the precompiled header -ADD_PRECOMPILED_HEADER(TKMesh "${CMAKE_CURRENT_SOURCE_DIR}/TKMesh_pch.hxx" TRUE) +ADD_PRECOMPILED_HEADER(TKMesh "TKMesh_pch.hxx" TRUE) diff --git a/src/ModelingAlgorithms/TKMesh/FILES.cmake b/src/ModelingAlgorithms/TKMesh/FILES.cmake index bbd590879b..e8900cb236 100644 --- a/src/ModelingAlgorithms/TKMesh/FILES.cmake +++ b/src/ModelingAlgorithms/TKMesh/FILES.cmake @@ -4,4 +4,5 @@ set(OCCT_TKMesh_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}") set(OCCT_TKMesh_FILES EXTERNLIB PACKAGES + TKMesh_pch.hxx ) diff --git a/src/ModelingData/TKBRep/CMakeLists.txt b/src/ModelingData/TKBRep/CMakeLists.txt index f6622c2e74..8dbe9cbd76 100644 --- a/src/ModelingData/TKBRep/CMakeLists.txt +++ b/src/ModelingData/TKBRep/CMakeLists.txt @@ -3,4 +3,4 @@ project(TKBRep) OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit) # Add the precompiled header -ADD_PRECOMPILED_HEADER(TKBRep "${CMAKE_CURRENT_SOURCE_DIR}/TKBRep_pch.hxx" FALSE) +ADD_PRECOMPILED_HEADER(TKBRep "TKBRep_pch.hxx" FALSE) diff --git a/src/ModelingData/TKBRep/FILES.cmake b/src/ModelingData/TKBRep/FILES.cmake index b1d537d03b..967385de09 100644 --- a/src/ModelingData/TKBRep/FILES.cmake +++ b/src/ModelingData/TKBRep/FILES.cmake @@ -4,4 +4,5 @@ set(OCCT_TKBRep_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}") set(OCCT_TKBRep_FILES EXTERNLIB PACKAGES + TKBRep_pch.hxx ) diff --git a/src/Visualization/TKV3d/CMakeLists.txt b/src/Visualization/TKV3d/CMakeLists.txt index 9745c5b65e..d9113c57e5 100644 --- a/src/Visualization/TKV3d/CMakeLists.txt +++ b/src/Visualization/TKV3d/CMakeLists.txt @@ -3,4 +3,4 @@ project(TKV3d) OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit) # Add the precompiled header -ADD_PRECOMPILED_HEADER(TKV3d "${CMAKE_CURRENT_SOURCE_DIR}/TKV3d_pch.hxx" TRUE) +ADD_PRECOMPILED_HEADER(TKV3d "TKV3d_pch.hxx" TRUE) diff --git a/src/Visualization/TKV3d/FILES.cmake b/src/Visualization/TKV3d/FILES.cmake index 23a3512ee7..9a616feef3 100644 --- a/src/Visualization/TKV3d/FILES.cmake +++ b/src/Visualization/TKV3d/FILES.cmake @@ -4,4 +4,5 @@ set(OCCT_TKV3d_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}") set(OCCT_TKV3d_FILES EXTERNLIB PACKAGES + TKV3d_pch.hxx ) -- 2.39.5