mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 17:31:45 +00:00
cmake: Externalize geometry mapping target cmake config
This commit is contained in:
committed by
Thomas Krijnen
parent
986cb905b2
commit
b7a9199253
@@ -205,9 +205,6 @@ if(WITH_CGAL)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_OPENCASCADE)
|
if(WITH_OPENCASCADE)
|
||||||
find_package(OpenCASCADE REQUIRED)
|
|
||||||
# Map OpenCASCADE_LIBRARIES variable from OpenCASCADEConfig.cmake to OPENCASCADE_LIBRARIES used by kernel generic cmake file
|
|
||||||
set(OPENCASCADE_LIBRARIES ${OpenCASCADE_LIBRARIES})
|
|
||||||
find_package(OpenCASCADE REQUIRED)
|
find_package(OpenCASCADE REQUIRED)
|
||||||
# Map OpenCASCADE_LIBRARIES variable from OpenCASCADEConfig.cmake to OPENCASCADE_LIBRARIES used by kernel generic cmake file
|
# Map OpenCASCADE_LIBRARIES variable from OpenCASCADEConfig.cmake to OPENCASCADE_LIBRARIES used by kernel generic cmake file
|
||||||
set(OPENCASCADE_LIBRARIES ${OpenCASCADE_LIBRARIES})
|
set(OPENCASCADE_LIBRARIES ${OpenCASCADE_LIBRARIES})
|
||||||
@@ -330,25 +327,6 @@ find_package(Boost REQUIRED COMPONENTS ${BOOST_COMPONENTS})
|
|||||||
message(STATUS "Boost include files found in ${Boost_INCLUDE_DIRS}")
|
message(STATUS "Boost include files found in ${Boost_INCLUDE_DIRS}")
|
||||||
message(STATUS "Boost libraries found in ${Boost_LIBRARY_DIRS}")
|
message(STATUS "Boost libraries found in ${Boost_LIBRARY_DIRS}")
|
||||||
|
|
||||||
if(NOT MINIMAL_BUILD)
|
|
||||||
# libxml2 is required for IFCXML (optional) and SVGFILL (mandatory)
|
|
||||||
if(IFCXML_SUPPORT)
|
|
||||||
find_package(LibXml2 REQUIRED)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(IFCXML_SUPPORT)
|
|
||||||
add_definitions(-DWITH_IFCXML)
|
|
||||||
set(SWIG_DEFINES ${SWIG_DEFINES} -DWITH_IFCXML)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(BUILD_IFCGEOM)
|
|
||||||
# Open CASCADE
|
|
||||||
if(WITH_OPENCASCADE)
|
|
||||||
find_package(OpenCASCADE REQUIRED)
|
|
||||||
endif(WITH_OPENCASCADE)
|
|
||||||
endif(BUILD_IFCGEOM)
|
|
||||||
|
|
||||||
if(COLLADA_SUPPORT)
|
if(COLLADA_SUPPORT)
|
||||||
find_package(OpenCOLLADA REQUIRED)
|
find_package(OpenCOLLADA REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
@@ -568,13 +546,6 @@ endif()
|
|||||||
add_subdirectory(../src/ifcparse ifcparse)
|
add_subdirectory(../src/ifcparse ifcparse)
|
||||||
set(IFCOPENSHELL_LIBRARIES IfcParse)
|
set(IFCOPENSHELL_LIBRARIES IfcParse)
|
||||||
|
|
||||||
if(BUILD_IFCGEOM)
|
|
||||||
foreach(schema ${SCHEMA_VERSIONS})
|
|
||||||
set(IFCGEOM_SCHEMA_LIBRARIES ${IFCGEOM_SCHEMA_LIBRARIES} geometry_mapping_ifc${schema})
|
|
||||||
endforeach()
|
|
||||||
set(IFCOPENSHELL_LIBRARIES ${IFCOPENSHELL_LIBRARIES} IfcGeom ${IFCGEOM_SCHEMA_LIBRARIES})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(BUILD_IFCGEOM)
|
if(BUILD_IFCGEOM)
|
||||||
# CGAL::CGAL target already has dependencies resolved.
|
# CGAL::CGAL target already has dependencies resolved.
|
||||||
if(WITH_CGAL AND CGAL_DIR)
|
if(WITH_CGAL AND CGAL_DIR)
|
||||||
@@ -595,34 +566,6 @@ if(BUILD_IFCGEOM)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_subdirectory(../src/ifcgeom ifcgeom)
|
add_subdirectory(../src/ifcgeom ifcgeom)
|
||||||
|
|
||||||
# IfcGeom
|
|
||||||
foreach(schema ${SCHEMA_VERSIONS})
|
|
||||||
file(GLOB IFCGEOM_I_FILES ../src/ifcgeom/mapping/*.i)
|
|
||||||
file(GLOB IFCGEOM_H_FILES ../src/ifcgeom/mapping/*.h)
|
|
||||||
file(GLOB IFCGEOM_CPP_FILES ../src/ifcgeom/mapping/*.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})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
# IfcGeom (schema agnostic)
|
|
||||||
file(GLOB SCHEMA_AGNOSTIC_H_FILES ../src/ifcgeom/*.h)
|
|
||||||
file(GLOB SCHEMA_AGNOSTIC_CPP_FILES ../src/ifcgeom/*.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()
|
|
||||||
|
|
||||||
target_link_libraries(IfcGeom IfcParse ${mapping_libraries} ${CMAKE_THREAD_LIBS_INIT} ${OpenCASCADE_LIBRARIES})
|
|
||||||
|
|
||||||
endif(BUILD_IFCGEOM)
|
endif(BUILD_IFCGEOM)
|
||||||
|
|
||||||
if(BUILD_CONVERT OR BUILD_IFCPYTHON)
|
if(BUILD_CONVERT OR BUILD_IFCPYTHON)
|
||||||
|
|||||||
@@ -6,3 +6,26 @@ if((BUILD_CONVERT OR BUILD_IFCPYTHON) AND WITH_OPENCASCADE)
|
|||||||
set(IFCOPENSHELL_LIBRARIES ${IFCOPENSHELL_LIBRARIES} PARENT_SCOPE)
|
set(IFCOPENSHELL_LIBRARIES ${IFCOPENSHELL_LIBRARIES} PARENT_SCOPE)
|
||||||
endif()
|
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
|
||||||
|
)
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
add_subdirectory(schema)
|
add_subdirectory(schema)
|
||||||
set(geometry_serializer_libraries ${geometry_serializer_libraries} PARENT_SCOPE)
|
|
||||||
|
|
||||||
add_library(geometry_serializer STATIC Serialization.cpp)
|
add_library(geometry_serializer STATIC Serialization.cpp)
|
||||||
set_target_properties(geometry_serializer PROPERTIES COMPILE_FLAGS "-DIFC_GEOMSERIALIZATION_EXPORTS")
|
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})
|
install(TARGETS geometry_serializer ${geometry_serializer_libraries})
|
||||||
|
|
||||||
|
set(geometry_serializer_libraries ${geometry_serializer_libraries} PARENT_SCOPE)
|
||||||
|
|||||||
@@ -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)
|
||||||
Reference in New Issue
Block a user