mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 09:21:46 +00:00
cmake - export IfcOpenShellConfig.cmake
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
@PACKAGE_INIT@
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/@CONFIG_TARGETS_FILENAME@")
|
||||
|
||||
check_required_components("@PROJECT_NAME@")
|
||||
@@ -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}
|
||||
)
|
||||
@@ -16,4 +16,6 @@ target_link_libraries(IfcConvert
|
||||
${CGAL_LIBRARIES} ${GLTF_LIBRARIES}
|
||||
)
|
||||
|
||||
install(TARGETS IfcConvert)
|
||||
install(TARGETS IfcConvert
|
||||
EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}
|
||||
)
|
||||
|
||||
@@ -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
|
||||
)
|
||||
)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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}
|
||||
)
|
||||
|
||||
@@ -53,4 +53,6 @@ install(FILES ${IFCPARSE_H_FILES}
|
||||
DESTINATION ${INCLUDEDIR}/ifcparse
|
||||
)
|
||||
|
||||
install(TARGETS IfcParse)
|
||||
install(TARGETS IfcParse
|
||||
EXPORT ${IFCOPENSHELL_EXPORT_TARGETS}
|
||||
)
|
||||
|
||||
@@ -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})
|
||||
|
||||
Reference in New Issue
Block a user