cmake - export IfcOpenShellConfig.cmake

This commit is contained in:
Andrej730
2025-12-11 19:22:49 +05:00
parent f5b1d7695a
commit 2627052b55
11 changed files with 72 additions and 8 deletions
+4
View File
@@ -170,6 +170,8 @@ if(NOT IS_ABSOLUTE ${INCLUDEDIR})
endif()
message(STATUS "INCLUDEDIR: ${INCLUDEDIR}")
set(IFCOPENSHELL_EXPORT_TARGETS "${PROJECT_NAME}Targets")
if(BUILD_SHARED_LIBS)
add_definitions(-DIFC_SHARED_BUILD)
if(MSVC)
@@ -681,3 +683,5 @@ set(CPACK_DEBIAN_ARCHITECTURE "${CMAKE_SYSTEM_PROCESSOR}")
# set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_SOURCE_DIR}/cmake/debian/postinst")
include(CPack)
include(package_export.cmake)
+5
View File
@@ -0,0 +1,5 @@
@PACKAGE_INIT@
include("${CMAKE_CURRENT_LIST_DIR}/@CONFIG_TARGETS_FILENAME@")
check_required_components("@PROJECT_NAME@")
+35
View File
@@ -0,0 +1,35 @@
set(CONFIG_PACKAGE_LOCATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
set(CONFIG_NAMESPACE "${PROJECT_NAME}")
set(CONFIG_TARGETS_FILENAME ${PROJECT_NAME}Targets.cmake)
set(CONFIG_VERSION_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake")
set(CONFIG_PACKAGE_INPUT "${PROJECT_SOURCE_DIR}/${PROJECT_NAME}Config.cmake.in")
set(CONFIG_PACKAGE_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake")
# Allow linking against build directory.
export(
EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}
FILE ${CONFIG_TARGETS_FILENAME}
NAMESPACE ${CONFIG_NAMESPACE}::
)
install(
EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}
NAMESPACE ${CONFIG_NAMESPACE}::
DESTINATION "${CONFIG_PACKAGE_LOCATION}"
)
include(CMakePackageConfigHelpers)
write_basic_package_version_file(${CONFIG_VERSION_OUTPUT}
COMPATIBILITY ExactVersion)
configure_package_config_file(${CONFIG_PACKAGE_INPUT}
${CONFIG_PACKAGE_OUTPUT}
INSTALL_DESTINATION ${CONFIG_PACKAGE_LOCATION}
)
install(FILES
"${CONFIG_PACKAGE_OUTPUT}"
"${CONFIG_VERSION_OUTPUT}"
DESTINATION ${CONFIG_PACKAGE_LOCATION}
)
+3 -1
View File
@@ -16,4 +16,6 @@ target_link_libraries(IfcConvert
${CGAL_LIBRARIES} ${GLTF_LIBRARIES}
)
install(TARGETS IfcConvert)
install(TARGETS IfcConvert
EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}
)
+4 -3
View File
@@ -31,8 +31,9 @@ if(NOT WASM_BUILD)
target_link_libraries(IfcGeom IfcParse)
endif()
install(TARGETS IfcGeom)
install(TARGETS IfcGeom
EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}
)
install(FILES ${SCHEMA_AGNOSTIC_H_FILES}
DESTINATION ${INCLUDEDIR}/ifcgeom
)
)
+3 -1
View File
@@ -11,6 +11,8 @@ install(FILES ${IFCGEOM_SERIALIZATION_H_FILE}
DESTINATION ${INCLUDEDIR}/ifcgeom/Serialization
)
install(TARGETS geometry_serializer ${geometry_serializer_libraries})
install(TARGETS geometry_serializer ${geometry_serializer_libraries}
EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}
)
set(geometry_serializer_libraries ${geometry_serializer_libraries} PARENT_SCOPE)
+6
View File
@@ -12,6 +12,9 @@ foreach(kernel ${GEOMETRY_KERNELS})
set_property(TARGET ${KERNEL_TARGET} APPEND PROPERTY COMPILE_FLAGS "-DIFC_GEOM_EXPORTS")
list(APPEND kernel_libraries ${KERNEL_TARGET})
target_link_libraries(${KERNEL_TARGET} ${${KERNEL_UPPER}_LIBRARIES} Eigen3::Eigen)
install(TARGETS ${KERNEL_TARGET}
EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}
)
if(${kernel} STREQUAL "cgal")
find_package(CGAL REQUIRED)
@@ -24,6 +27,9 @@ foreach(kernel ${GEOMETRY_KERNELS})
list(APPEND kernel_libraries ${KERNEL_TARGET_SIMPLE})
target_link_libraries(${KERNEL_TARGET_SIMPLE} ${${KERNEL_UPPER}_LIBRARIES} Eigen3::Eigen)
target_link_libraries(${KERNEL_TARGET_SIMPLE} CGAL::CGAL_INTERFACE)
install(TARGETS ${KERNEL_TARGET_SIMPLE}
EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}
)
elseif(${kernel} STREQUAL "opencascade")
target_link_libraries(${KERNEL_TARGET} ${OpenCASCADE_LIBRARIES})
endif()
+3
View File
@@ -11,6 +11,9 @@ foreach(schema ${SCHEMA_VERSIONS})
target_link_libraries(geometry_mapping_ifc${schema} IfcParse Eigen3::Eigen)
list(APPEND mapping_libraries geometry_mapping_ifc${schema})
install(TARGETS geometry_mapping_ifc${schema}
EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}
)
endforeach()
set(mapping_libraries ${mapping_libraries} PARENT_SCOPE)
+3 -1
View File
@@ -5,4 +5,6 @@ set(SOURCE_FILES ${CPP_FILES})
add_executable(IfcGeomServer ${SOURCE_FILES})
target_link_libraries(IfcGeomServer IfcGeom ${kernel_libraries} ${OpenCASCADE_LIBRARIES})
install(TARGETS IfcGeomServer)
install(TARGETS IfcGeomServer
EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}
)
+3 -1
View File
@@ -53,4 +53,6 @@ install(FILES ${IFCPARSE_H_FILES}
DESTINATION ${INCLUDEDIR}/ifcparse
)
install(TARGETS IfcParse)
install(TARGETS IfcParse
EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}
)
+3 -1
View File
@@ -72,5 +72,7 @@ if(WIN32)
target_link_options(svgfill_exe PRIVATE "/NOIMPLIB")
endif()
install(TARGETS svgfill_exe svgfill)
install(TARGETS svgfill_exe svgfill
EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}
)
install(FILES ${LIB_H_FILES} DESTINATION ${INCLUDEDIR})