]> OCCT Git - occt.git/commitdiff
Configuration - Fixed pathes to 3rd-party in cmake configuration (#523)
authorPasukhin Dmitry <dpasukhi@opencascade.com>
Thu, 15 May 2025 12:04:14 +0000 (13:04 +0100)
committerGitHub <noreply@github.com>
Thu, 15 May 2025 12:04:14 +0000 (13:04 +0100)
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

18 files changed:
adm/cmake/occt_macros.cmake
adm/cmake/occt_toolkit.cmake
src/DataExchange/TKDEIGES/CMakeLists.txt
src/DataExchange/TKDEIGES/FILES.cmake
src/DataExchange/TKDESTEP/CMakeLists.txt
src/DataExchange/TKDESTEP/FILES.cmake
src/DataExchange/TKXSBase/CMakeLists.txt
src/DataExchange/TKXSBase/FILES.cmake
src/FoundationClasses/TKMath/CMakeLists.txt
src/FoundationClasses/TKMath/FILES.cmake
src/FoundationClasses/TKernel/CMakeLists.txt
src/FoundationClasses/TKernel/FILES.cmake
src/ModelingAlgorithms/TKMesh/CMakeLists.txt
src/ModelingAlgorithms/TKMesh/FILES.cmake
src/ModelingData/TKBRep/CMakeLists.txt
src/ModelingData/TKBRep/FILES.cmake
src/Visualization/TKV3d/CMakeLists.txt
src/Visualization/TKV3d/FILES.cmake

index d58ddf755ffdff48a53432275c6a84cc0f6a5b99..21114a55670484051b30f978ed8c2b1f54aa2204 100644 (file)
@@ -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 $<ANGLE-R> for closing bracket
   if (${THE_IS_PRIVATE})
-    target_precompile_headers(${INPUT_TARGET} PRIVATE "$<$<COMPILE_LANGUAGE:CXX>:${PRECOMPILED_HEADER}>")
+    target_precompile_headers(${INPUT_TARGET} PRIVATE "$<$<COMPILE_LANGUAGE:CXX>:<${PRECOMPILED_HEADER}$<ANGLE-R>>")
   else()
-    target_precompile_headers(${INPUT_TARGET} PUBLIC "$<$<COMPILE_LANGUAGE:CXX>:${PRECOMPILED_HEADER}>")
+    target_precompile_headers(${INPUT_TARGET} PUBLIC "$<$<COMPILE_LANGUAGE:CXX>:<${PRECOMPILED_HEADER}$<ANGLE-R>>")
   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 "$<$<CONFIG:RELEASE>:${RELEASE_DIR_ABS}>;$<$<CONFIG:RELWITHDEBINFO>:${RELEASE_DIR_ABS}>")
+    target_link_directories(${TARGET_NAME} PRIVATE "$<$<CONFIG:RELEASE>:${RELEASE_DIR_ABS}>;$<$<CONFIG:RELWITHDEBINFO>:${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 "$<$<CONFIG:DEBUG>:${DEBUG_DIR_ABS}>")
+    target_link_directories(${TARGET_NAME} PRIVATE "$<$<CONFIG:DEBUG>:${DEBUG_DIR_ABS}>")
   endforeach()
 endfunction()
 macro(OCCT_ADD_VCPKG_FEATURE THE_FEATURE)
index 378ff6928e007c4f37800d3a90f2618907640b58..60516caf6eee89ec395a7c9f63c9b45e08f2e158 100644 (file)
@@ -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()
 
index 2ba9c603828a4800aaea212de53bdb394ac00dbc..8b2f8b13c8c62e489e43aa30110d3b600ac68b2a 100644 (file)
@@ -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)
index 43a685debce1fe56adbd40992568c46a451dd6f5..df850f869eeaf42a92b35b539496fb2d59c9576b 100644 (file)
@@ -4,4 +4,5 @@ set(OCCT_TKDEIGES_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
 set(OCCT_TKDEIGES_FILES
   EXTERNLIB
   PACKAGES
+  TKDEIGES_pch.hxx
 )
index 5a6b02e23e03cd6b3f5818e5b1d3388b419d22f3..11b29aa50ff09d8a3b79146b55543b352fd7845c 100644 (file)
@@ -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)
index a71352d0b4d5f31cf09704dab419b38aea6a7de2..ee212ff486a436e6723e7bc8e569eb4f89e28715 100644 (file)
@@ -4,4 +4,5 @@ set(OCCT_TKDESTEP_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
 set(OCCT_TKDESTEP_FILES
   EXTERNLIB
   PACKAGES
+  TKDESTEP_pch.hxx
 )
index e8c7631d001e6c67121027add89307c5079c9bad..d3ec23710a896e26ac8e04996516eb9a74cb3b84 100644 (file)
@@ -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)
index ced62d23aa6fa7fd9b89dfc0aa76d3fd65cc61a1..17636b4b31cf0409c523f1561c262e9458e54ad5 100644 (file)
@@ -4,4 +4,5 @@ set(OCCT_TKXSBase_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
 set(OCCT_TKXSBase_FILES
   EXTERNLIB
   PACKAGES
+  TKXSBase_pch.hxx
 )
index 57b6486378d1c8c69b5ab84ceae0e7cd4ba0a619..12e292b1f885050d76731f7dd78472c34bbb17d5 100644 (file)
@@ -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)
index 9b4ac17628a20b264f488205980a9d370bf2ec67..c3f6ddf68bfa322533d3d072760795e2e34592b1 100644 (file)
@@ -4,4 +4,5 @@ set(OCCT_TKMath_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
 set(OCCT_TKMath_FILES
   EXTERNLIB
   PACKAGES
+  TKMath_pch.hxx
 )
index ff4e72705ba06c19b7f785de39ea39fcf5136d81..5c460a8d5cab3e0ca73a473d73abaa79549c3377 100644 (file)
@@ -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)
index b20e9306a1af3678299dbd03ea21445e938646a6..d02957f4af6df86cb5c6ddc2f9fdd8aa8468f201 100644 (file)
@@ -4,4 +4,5 @@ set(OCCT_TKernel_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
 set(OCCT_TKernel_FILES
   EXTERNLIB
   PACKAGES
+  TKernel_pch.hxx
 )
index d4ca239ba361572e48caf9f92127f817cfc87782..00f59a071fbc44bfa9f021b4c369adb68d80b9f1 100644 (file)
@@ -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)
index bbd590879b373b7a0b9b5872b904c2d3be5eac0c..e8900cb236d67aaaaec70d81bcd43cdd72d9b291 100644 (file)
@@ -4,4 +4,5 @@ set(OCCT_TKMesh_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
 set(OCCT_TKMesh_FILES
   EXTERNLIB
   PACKAGES
+  TKMesh_pch.hxx
 )
index f6622c2e748e3eb76b97c8c67554cfd6ec81c16a..8dbe9cbd7609423f1e1e342c9fef8d22884acaba 100644 (file)
@@ -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)
index b1d537d03b60db0af0905d1ee3e1929431842a92..967385de097f9e73c5dbca1f7d7219b2a3f5dcf1 100644 (file)
@@ -4,4 +4,5 @@ set(OCCT_TKBRep_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
 set(OCCT_TKBRep_FILES
   EXTERNLIB
   PACKAGES
+  TKBRep_pch.hxx
 )
index 9745c5b65eade3210055a834f85d29a987cde36f..d9113c57e597541edaebd3ddfd6a4ad45a509f9d 100644 (file)
@@ -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)
index 23a3512ee743c81caa78c94529cdd3f5e99592db..9a616feef3ff1cca9f89aeece65080952c824d75 100644 (file)
@@ -4,4 +4,5 @@ set(OCCT_TKV3d_FILES_LOCATION "${CMAKE_CURRENT_LIST_DIR}")
 set(OCCT_TKV3d_FILES
   EXTERNLIB
   PACKAGES
+  TKV3d_pch.hxx
 )