diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 43aca1dbe2..f1c7e50118 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -464,12 +464,13 @@ endif() message(STATUS "IFC SCHEMA_VERSIONS that will be used for the build: ${SCHEMA_VERSIONS}.") +set(SCHEMA_DEFINITIONS "") foreach(schema ${SCHEMA_VERSIONS}) - add_definitions(-DHAS_SCHEMA_${schema}) + list(APPEND SCHEMA_DEFINITIONS "-DHAS_SCHEMA_${schema}") endforeach() string(REPLACE ";" ")(" schema_version_seq "(${SCHEMA_VERSIONS})") -add_definitions(-DSCHEMA_SEQ=${schema_version_seq}) +list(APPEND SCHEMA_DEFINITIONS "-DSCHEMA_SEQ=${schema_version_seq}") if(COMPILE_SCHEMA) # @todo, this appears to be untested at the moment diff --git a/src/examples/CMakeLists.txt b/src/examples/CMakeLists.txt index 83b546e59b..c50c899ea9 100644 --- a/src/examples/CMakeLists.txt +++ b/src/examples/CMakeLists.txt @@ -47,7 +47,6 @@ if(STANDALONE_PROJECT OR SCHEMA_VERSIONS MATCHES "2x3") target_link_libraries(IfcParseExamples ${Boost_LIBRARIES}) target_link_libraries(IfcParseExamples IfcOpenShell::IfcParse) target_compile_features(IfcParseExamples PRIVATE cxx_std_17) - target_compile_definitions(IfcParseExamples PRIVATE "SCHEMA_SEQ=(2x3)" HAS_SCHEMA_2x3) else() target_include_directories(IfcParseExamples PRIVATE "${CMAKE_SOURCE_DIR}/../src") target_link_libraries(IfcParseExamples IfcParse) @@ -73,7 +72,6 @@ if(STANDALONE_PROJECT OR SCHEMA_VERSIONS MATCHES "2x3") INTERFACE ${OpenCASCADE_LIBRARIES} RocksDB::rocksdb IfcOpenShell::IfcParse IfcOpenShell::geometry_serializer ) - target_compile_definitions(IfcHouseInterface INTERFACE "SCHEMA_SEQ=(2x3)" HAS_SCHEMA_2x3) else() target_include_directories(IfcHouseInterface INTERFACE "${CMAKE_SOURCE_DIR}/../src") target_link_libraries(IfcHouseInterface INTERFACE ${IFCOPENSHELL_LIBRARIES} ${OpenCASCADE_LIBRARIES}) @@ -93,7 +91,6 @@ if(STANDALONE_PROJECT OR SCHEMA_VERSIONS MATCHES "4x3_add2") if(STANDALONE_PROJECT) target_include_directories(IfcAlignmentInterface INTERFACE ${Boost_INCLUDE_DIRS}) - target_compile_definitions(IfcAlignmentInterface INTERFACE HAS_SCHEMA_4x3_add2) target_link_libraries(IfcAlignment PRIVATE IfcOpenShell::IfcParse) target_link_libraries(IfcSimplifiedAlignment PRIVATE IfcOpenShell::IfcParse) else() diff --git a/src/ifcparse/CMakeLists.txt b/src/ifcparse/CMakeLists.txt index d78b4bd5b5..5da3182406 100644 --- a/src/ifcparse/CMakeLists.txt +++ b/src/ifcparse/CMakeLists.txt @@ -31,6 +31,7 @@ endforeach() set(IFCPARSE_FILES ${IFCPARSE_CPP_FILES} ${IFCPARSE_H_FILES}) add_library(IfcParse ${IFCPARSE_FILES}) +target_compile_definitions(IfcParse PUBLIC ${SCHEMA_DEFINITIONS}) target_include_directories(IfcParse PUBLIC $) set_target_properties(IfcParse PROPERTIES