Skip to content

Commit 0a0f44b

Browse files
committed
Reduce link time for MSVC release builds. Patch by ch0kee.
1 parent 9f9a0ea commit 0a0f44b

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

src/ifcexpressparser/templates.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,11 @@
179179
inverse_map_t inverse_map;
180180
derived_map_t derived_map;
181181
182+
183+
#ifdef _MSC_VER
184+
# pragma optimize( "", off )
185+
#endif
186+
182187
void InitDescriptorMap() {
183188
IfcEntityDescriptor* current;
184189
%(entity_descriptors)s
@@ -188,6 +193,10 @@
188193
%(enumeration_descriptors)s
189194
}
190195
196+
#ifdef _MSC_VER
197+
# pragma optimize( "", on )
198+
#endif
199+
191200
void InitInverseMap() {
192201
%(inverse_implementations)s
193202
}

src/ifcparse/Ifc2x3-latebound.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@ enumeration_descriptor_map_t enumeration_descriptor_map;
5151
inverse_map_t inverse_map;
5252
derived_map_t derived_map;
5353

54+
55+
#ifdef _MSC_VER
56+
# pragma optimize( "", off )
57+
#endif
58+
5459
void InitDescriptorMap() {
5560
IfcEntityDescriptor* current;
5661
current = entity_descriptor_map[Type::IfcAbsorbedDoseMeasure] = new IfcEntityDescriptor(Type::IfcAbsorbedDoseMeasure,0);
@@ -4057,6 +4062,10 @@ void InitDescriptorMap() {
40574062
current_enum = enumeration_descriptor_map[Type::IfcWorkControlTypeEnum] = new IfcEnumerationDescriptor(Type::IfcWorkControlTypeEnum, values);
40584063
}
40594064

4065+
#ifdef _MSC_VER
4066+
# pragma optimize( "", on )
4067+
#endif
4068+
40604069
void InitInverseMap() {
40614070
inverse_map[Type::IfcActor].insert(std::make_pair("IsActingUpon", std::make_pair(Type::IfcRelAssignsToActor, 6)));
40624071
inverse_map[Type::IfcAddress].insert(std::make_pair("OfPerson", std::make_pair(Type::IfcPerson, 7)));

src/ifcparse/Ifc4-latebound.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@ enumeration_descriptor_map_t enumeration_descriptor_map;
5151
inverse_map_t inverse_map;
5252
derived_map_t derived_map;
5353

54+
55+
#ifdef _MSC_VER
56+
# pragma optimize( "", off )
57+
#endif
58+
5459
void InitDescriptorMap() {
5560
IfcEntityDescriptor* current;
5661
current = entity_descriptor_map[Type::IfcAbsorbedDoseMeasure] = new IfcEntityDescriptor(Type::IfcAbsorbedDoseMeasure,0);
@@ -4712,6 +4717,10 @@ void InitDescriptorMap() {
47124717
current_enum = enumeration_descriptor_map[Type::IfcWorkScheduleTypeEnum] = new IfcEnumerationDescriptor(Type::IfcWorkScheduleTypeEnum, values);
47134718
}
47144719

4720+
#ifdef _MSC_VER
4721+
# pragma optimize( "", on )
4722+
#endif
4723+
47154724
void InitInverseMap() {
47164725
inverse_map[Type::IfcActor].insert(std::make_pair("IsActingUpon", std::make_pair(Type::IfcRelAssignsToActor, 6)));
47174726
inverse_map[Type::IfcActorRole].insert(std::make_pair("HasExternalReference", std::make_pair(Type::IfcExternalReferenceRelationship, 3)));

0 commit comments

Comments
 (0)