From 4d52480cbe4a9553dbaa8e253e15f80b561d878a Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Thu, 18 Dec 2025 18:11:04 +0500 Subject: [PATCH] cmake - find dependencies from exported config file --- cmake/IfcOpenShellConfig.cmake.in | 35 +++++++++++++++++++++++++++++++ src/examples/CMakeLists.txt | 19 ----------------- 2 files changed, 35 insertions(+), 19 deletions(-) diff --git a/cmake/IfcOpenShellConfig.cmake.in b/cmake/IfcOpenShellConfig.cmake.in index afdfe838bc..414066668d 100644 --- a/cmake/IfcOpenShellConfig.cmake.in +++ b/cmake/IfcOpenShellConfig.cmake.in @@ -4,7 +4,42 @@ set(IFCOPENSHELL_SCHEMA_VERSIONS @SCHEMA_VERSIONS@) set(IFCOPENSHELL_WITH_OPENCASCADE @WITH_OPENCASCADE@) +set(IFCOPENSHELL_WITH_CGAL @WITH_CGAL@) +set(IFCOPENSHELL_IFCXML @IFCXML_SUPPORT@) +set(IFCOPENSHELL_WITH_ROCKSDB @WITH_ROCKSDB@) +include(CMakeFindDependencyMacro) + +set(Boost_USE_STATIC_LIBS ON) +set(Boost_USE_STATIC_RUNTIME OFF) +set(Boost_USE_MULTITHREADED ON) +set(Boost_COMPONENTS system program_options regex thread date_time iostreams) +find_dependency(Boost CONFIG COMPONENTS ${Boost_COMPONENTS}) +find_dependency(Eigen3 CONFIG) + +if(IFCOPENSHELL_WITH_ROCKSDB) + find_dependency(zstd CONFIG) + find_dependency(RocksDB CONFIG) +endif() + +if(IFCOPENSHELL_IFCXML) + find_dependency(LibXml2 CONFIG) +endif() + + +if(IFCOPENSHELL_WITH_CGAL) + find_dependency(CGAL CONFIG) +endif() + +if(IFCOPENSHELL_WITH_OPENCASCADE) + find_dependency(OpenCASCADE CONFIG) + if(OpenCASCADE_VERSION VERSION_LESS "7.7.0") + # cmake configs < 7.7.0 were not adding include directories to targets automatically. + set_target_properties(TKernel PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${OpenCASCADE_INCLUDE_DIR}" + ) + endif() +endif() include("${CMAKE_CURRENT_LIST_DIR}/@CONFIG_TARGETS_FILENAME@") diff --git a/src/examples/CMakeLists.txt b/src/examples/CMakeLists.txt index be3a3e42d9..9e1e911cda 100644 --- a/src/examples/CMakeLists.txt +++ b/src/examples/CMakeLists.txt @@ -28,14 +28,6 @@ if(STANDALONE_PROJECT) project(IfcOpenShellExamples) set(CMAKE_CXX_STANDARD 17) - set(Boost_USE_STATIC_LIBS ON) - set(Boost_USE_STATIC_RUNTIME OFF) - set(Boost_USE_MULTITHREADED ON) - set(Boost_COMPONENTS system program_options regex thread date_time iostreams) - find_package(Boost CONFIG REQUIRED COMPONENTS ${Boost_COMPONENTS}) - find_package(zstd CONFIG REQUIRED) - find_package(RocksDB CONFIG REQUIRED) - find_package(LibXml2 CONFIG REQUIRED) find_package(IfcOpenShell CONFIG REQUIRED) set(SCHEMA_VERSIONS ${IFCOPENSHELL_SCHEMA_VERSIONS}) set(WITH_OPENCASCADE ${IFCOPENSHELL_WITH_OPENCASCADE}) @@ -61,17 +53,6 @@ if(SCHEMA_VERSIONS MATCHES "2x3") add_library(IfcHouseInterface INTERFACE) if (STANDALONE_PROJECT) - find_package(Eigen3 CONFIG REQUIRED) - find_package(CGAL CONFIG REQUIRED) - find_package(OpenCASCADE CONFIG REQUIRED) - - if(OpenCASCADE_VERSION VERSION_LESS "7.7.0") - # cmake configs < 7.7.0 were not adding include directories to targets automatically. - set_target_properties(TKernel PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${OpenCASCADE_INCLUDE_DIR}" - ) - endif() - target_link_libraries(IfcHouseInterface INTERFACE IfcOpenShell::IfcParse IfcOpenShell::geometry_serializer) else() target_link_libraries(IfcHouseInterface INTERFACE IfcParse geometry_serializer)