From 0a0f44b674afefe0e6ccd75b7233f6e1b3873f44 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sun, 22 Mar 2015 19:52:29 +0000 Subject: [PATCH] Reduce link time for MSVC release builds. Patch by ch0kee. --- src/ifcexpressparser/templates.py | 9 +++++++++ src/ifcparse/Ifc2x3-latebound.cpp | 9 +++++++++ src/ifcparse/Ifc4-latebound.cpp | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/src/ifcexpressparser/templates.py b/src/ifcexpressparser/templates.py index 5f89bde002..b01f335a75 100644 --- a/src/ifcexpressparser/templates.py +++ b/src/ifcexpressparser/templates.py @@ -179,6 +179,11 @@ enumeration_descriptor_map_t enumeration_descriptor_map; inverse_map_t inverse_map; derived_map_t derived_map; + +#ifdef _MSC_VER +# pragma optimize( "", off ) +#endif + void InitDescriptorMap() { IfcEntityDescriptor* current; %(entity_descriptors)s @@ -188,6 +193,10 @@ void InitDescriptorMap() { %(enumeration_descriptors)s } +#ifdef _MSC_VER +# pragma optimize( "", on ) +#endif + void InitInverseMap() { %(inverse_implementations)s } diff --git a/src/ifcparse/Ifc2x3-latebound.cpp b/src/ifcparse/Ifc2x3-latebound.cpp index 8f2e6ff39b..642cee8940 100644 --- a/src/ifcparse/Ifc2x3-latebound.cpp +++ b/src/ifcparse/Ifc2x3-latebound.cpp @@ -51,6 +51,11 @@ enumeration_descriptor_map_t enumeration_descriptor_map; inverse_map_t inverse_map; derived_map_t derived_map; + +#ifdef _MSC_VER +# pragma optimize( "", off ) +#endif + void InitDescriptorMap() { IfcEntityDescriptor* current; current = entity_descriptor_map[Type::IfcAbsorbedDoseMeasure] = new IfcEntityDescriptor(Type::IfcAbsorbedDoseMeasure,0); @@ -4057,6 +4062,10 @@ void InitDescriptorMap() { current_enum = enumeration_descriptor_map[Type::IfcWorkControlTypeEnum] = new IfcEnumerationDescriptor(Type::IfcWorkControlTypeEnum, values); } +#ifdef _MSC_VER +# pragma optimize( "", on ) +#endif + void InitInverseMap() { inverse_map[Type::IfcActor].insert(std::make_pair("IsActingUpon", std::make_pair(Type::IfcRelAssignsToActor, 6))); inverse_map[Type::IfcAddress].insert(std::make_pair("OfPerson", std::make_pair(Type::IfcPerson, 7))); diff --git a/src/ifcparse/Ifc4-latebound.cpp b/src/ifcparse/Ifc4-latebound.cpp index 0de361995a..3164ba51d3 100644 --- a/src/ifcparse/Ifc4-latebound.cpp +++ b/src/ifcparse/Ifc4-latebound.cpp @@ -51,6 +51,11 @@ enumeration_descriptor_map_t enumeration_descriptor_map; inverse_map_t inverse_map; derived_map_t derived_map; + +#ifdef _MSC_VER +# pragma optimize( "", off ) +#endif + void InitDescriptorMap() { IfcEntityDescriptor* current; current = entity_descriptor_map[Type::IfcAbsorbedDoseMeasure] = new IfcEntityDescriptor(Type::IfcAbsorbedDoseMeasure,0); @@ -4712,6 +4717,10 @@ void InitDescriptorMap() { current_enum = enumeration_descriptor_map[Type::IfcWorkScheduleTypeEnum] = new IfcEnumerationDescriptor(Type::IfcWorkScheduleTypeEnum, values); } +#ifdef _MSC_VER +# pragma optimize( "", on ) +#endif + void InitInverseMap() { inverse_map[Type::IfcActor].insert(std::make_pair("IsActingUpon", std::make_pair(Type::IfcRelAssignsToActor, 6))); inverse_map[Type::IfcActorRole].insert(std::make_pair("HasExternalReference", std::make_pair(Type::IfcExternalReferenceRelationship, 3)));