cmake: Externalize geometry mapping target cmake config

This commit is contained in:
Esteban DUGUEPEROUX
2025-11-30 13:33:56 +01:00
committed by Thomas Krijnen
parent 986cb905b2
commit b7a9199253
4 changed files with 41 additions and 58 deletions
+23
View File
@@ -6,3 +6,26 @@ if((BUILD_CONVERT OR BUILD_IFCPYTHON) AND WITH_OPENCASCADE)
set(IFCOPENSHELL_LIBRARIES ${IFCOPENSHELL_LIBRARIES} PARENT_SCOPE)
endif()
add_subdirectory(mapping)
# IfcGeom (schema agnostic)
file(GLOB SCHEMA_AGNOSTIC_H_FILES *.h)
file(GLOB SCHEMA_AGNOSTIC_CPP_FILES *.cpp)
set(SCHEMA_AGNOSTIC_FILES ${SCHEMA_AGNOSTIC_H_FILES} ${SCHEMA_AGNOSTIC_CPP_FILES})
add_library(IfcGeom ${SCHEMA_AGNOSTIC_FILES})
set_target_properties(IfcGeom PROPERTIES COMPILE_FLAGS -DIFC_GEOM_EXPORTS VERSION "${PROJECT_VERSION}" SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
if(UNIX)
find_package(Threads)
endif()
if(WASM_BUILD)
target_link_libraries(IfcGeom ${kernel_libraries} ${mapping_libraries} ${CMAKE_THREAD_LIBS_INIT} "Eigen3::Eigen")
else()
target_link_libraries(IfcGeom IfcParse ${kernel_libraries} ${mapping_libraries} ${CMAKE_THREAD_LIBS_INIT} "Eigen3::Eigen")
endif()
install(FILES ${SCHEMA_AGNOSTIC_H_FILES}
DESTINATION ${INCLUDEDIR}/ifcgeom
)
+2 -1
View File
@@ -1,5 +1,4 @@
add_subdirectory(schema)
set(geometry_serializer_libraries ${geometry_serializer_libraries} PARENT_SCOPE)
add_library(geometry_serializer STATIC Serialization.cpp)
set_target_properties(geometry_serializer PROPERTIES COMPILE_FLAGS "-DIFC_GEOMSERIALIZATION_EXPORTS")
@@ -13,3 +12,5 @@ install(FILES ${IFCGEOM_SERIALIZATION_H_FILE}
)
install(TARGETS geometry_serializer ${geometry_serializer_libraries})
set(geometry_serializer_libraries ${geometry_serializer_libraries} PARENT_SCOPE)
+16
View File
@@ -0,0 +1,16 @@
foreach(schema ${SCHEMA_VERSIONS})
file(GLOB IFCGEOM_I_FILES *.i)
file(GLOB IFCGEOM_H_FILES *.h)
file(GLOB IFCGEOM_CPP_FILES *.cpp)
set(IFCGEOM_FILES ${IFCGEOM_CPP_FILES} ${IFCGEOM_H_FILES} ${IFCGEOM_I_FILES})
add_library(geometry_mapping_ifc${schema} OBJECT ${IFCGEOM_FILES})
set_target_properties(geometry_mapping_ifc${schema} PROPERTIES COMPILE_FLAGS "-DIFC_GEOM_EXPORTS -DIfcSchema=Ifc${schema}")
target_link_libraries(geometry_mapping_ifc${schema} IfcParse)
list(APPEND mapping_libraries geometry_mapping_ifc${schema})
install(TARGETS geometry_mapping_ifc${schema})
endforeach()
set(mapping_libraries ${mapping_libraries} PARENT_SCOPE)