file(GLOB IFCPARSE_H_FILES_ALL *.h) file(GLOB IFCPARSE_CPP_FILES_ALL *.cpp) foreach(file ${IFCPARSE_H_FILES_ALL}) get_filename_component(filename "${file}" NAME) list(APPEND IFCPARSE_H_FILES "${file}") endforeach() foreach(file ${IFCPARSE_CPP_FILES_ALL}) get_filename_component(filename "${file}" NAME) list(APPEND IFCPARSE_CPP_FILES "${file}") endforeach() message(STATUS "SCHEMA_VERSIONS from ifcparse: ${SCHEMA_VERSIONS}") foreach(schema ${SCHEMA_VERSIONS}) list(APPEND IFCPARSE_H_FILES schemas/Ifc${schema}.h schemas/Ifc${schema}-definitions.h ) list(APPEND IFCPARSE_CPP_FILES schemas/Ifc${schema}.cpp schemas/Ifc${schema}-schema.cpp ) endforeach() list(APPEND IFCPARSE_H_FILES schemas/Header_section_schema.h ) list(APPEND IFCPARSE_CPP_FILES schemas/Header_section_schema.cpp schemas/Header_section_schema-schema.cpp ) set(IFCPARSE_FILES ${IFCPARSE_CPP_FILES} ${IFCPARSE_H_FILES}) add_library(IfcParse ${IFCPARSE_FILES}) add_library(parse ALIAS IfcParse) target_compile_definitions(IfcParse PUBLIC ${SCHEMA_DEFINITIONS}) if(USE_MMAP) target_compile_definitions(IfcParse PUBLIC USE_MMAP) endif() if(WITH_ROCKSDB) target_compile_definitions(IfcParse PUBLIC IFOPSH_WITH_ROCKSDB) set(SWIG_DEFINES ${SWIG_DEFINES} -DIFOPSH_WITH_ROCKSDB PARENT_SCOPE) endif() set_target_properties(IfcParse PROPERTIES COMPILE_FLAGS -DIFC_PARSE_EXPORTS) if (NOT CREATE_BUNDLE) set_target_properties(IfcParse PROPERTIES VERSION "${PROJECT_VERSION}" SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}") endif() if(WASM_BUILD) target_link_libraries(IfcParse plugin ${BCRYPT_LIBRARIES}) else() target_link_libraries(IfcParse plugin ${Boost_LIBRARIES} ${BCRYPT_LIBRARIES}) endif() if(WITH_ROCKSDB) target_link_libraries(IfcParse RocksDB::rocksdb) if(WITH_ZSTD) target_link_libraries(IfcParse zstd::libzstd_static) endif() endif() # CMake installation targets install(FILES ${IFCPARSE_H_FILES} DESTINATION ${INCLUDEDIR}/ifcparse ) install(TARGETS IfcParse)