1
- cmake_minimum_required (VERSION 2.8 ...3.7.2 )
1
+ cmake_minimum_required (VERSION 3.6 ...3.9 )
2
2
project (IfcPlusPlus)
3
3
4
+ ADD_DEFINITIONS (-DIFCQUERY_STATIC_LIB)
5
+ ADD_DEFINITIONS (-DGLM_FORCE_CTOR_INIT)
6
+ ADD_DEFINITIONS (-DGLM_FORCE_XYZW_ONLY)
7
+ ADD_DEFINITIONS (-D_HAS_AUTO_PTR_ETC=1)
8
+ ADD_DEFINITIONS (-DUNICODE)
9
+ ADD_DEFINITIONS (-D_UNICODE)
10
+ ADD_DEFINITIONS (-DTHRUST_DEVICE_SYSTEM=THRUST_DEVICE_SYSTEM_CPP)
11
+ set (CMAKE_CXX_STANDARD 17)
12
+ set (CMAKE_CXX_STANDARD C++17)
13
+ set (CMAKE_CXX_STANDARD_REQUIRED ON )
14
+
4
15
if (WIN32 )
5
16
# for vs2017
6
17
set (VC_LIBS Bcrypt.lib)
@@ -23,32 +34,67 @@ set(IFCPP_SOURCE_FILES
23
34
src/ifcpp/model/BuildingGuid.cpp
24
35
src/ifcpp/model/BuildingModel.cpp
25
36
src/ifcpp/model/UnitConverter.cpp
26
- src/ifcpp/reader/AbstractReader.cpp
27
37
src/ifcpp/reader/ReaderSTEP.cpp
28
- src/ifcpp/reader/ReaderXML.cpp
29
38
src/ifcpp/reader/ReaderUtil.cpp
30
39
src/ifcpp/writer/WriterSTEP.cpp
31
40
src/ifcpp/writer/WriterUtil.cpp
41
+ src/external/manifold/src/boolean3.cpp
42
+ src/external/manifold/src/boolean_result.cpp
43
+ src/external/manifold/src/collider/src/collider.cpp
44
+ src/external/manifold/src/constructors.cpp
45
+ src/external/manifold/src/csg_tree.cpp
46
+ src/external/manifold/src/edge_op.cpp
47
+ src/external/manifold/src/face_op.cpp
48
+ src/external/manifold/src/impl.cpp
49
+ src/external/manifold/src/manifold.cpp
50
+ src/external/manifold/src/polygon/src/polygon.cpp
51
+ src/external/manifold/src/properties.cpp
52
+ src/external/manifold/src/smoothing.cpp
53
+ src/external/manifold/src/sort .cpp
54
+ src/external/manifold/src/third_party/graphlite/src/connected_components.cpp
55
+ src/external/manifold/src/utilities/src/detect_cuda.cpp
56
+ src/external/Carve/src/lib/aabb.cpp
57
+ src/external/Carve/src/lib/carve.cpp
58
+ src/external/Carve/src/lib/convex_hull.cpp
59
+ src/external/Carve/src/lib/csg.cpp
60
+ src/external/Carve/src/lib/csg_collector.cpp
61
+ src/external/Carve/src/lib/edge.cpp
62
+ src/external/Carve/src/lib/face.cpp
63
+ src/external/Carve/src/lib/geom.cpp
64
+ src/external/Carve/src/lib/geom2d.cpp
65
+ src/external/Carve/src/lib/geom3d.cpp
66
+ src/external/Carve/src/lib/intersect.cpp
67
+ src/external/Carve/src/lib/intersect_classify_edge.cpp
68
+ src/external/Carve/src/lib/intersect_classify_group.cpp
69
+ src/external/Carve/src/lib/intersect_debug.cpp
70
+ src/external/Carve/src/lib/intersect_face_division.cpp
71
+ src/external/Carve/src/lib/intersect_group.cpp
72
+ src/external/Carve/src/lib/intersect_half_classify_group.cpp
73
+ src/external/Carve/src/lib/intersection.cpp
74
+ src/external/Carve/src/lib/math.cpp
75
+ src/external/Carve/src/lib/mesh.cpp
76
+ src/external/Carve/src/lib/octree.cpp
77
+ src/external/Carve/src/lib/pointset.cpp
78
+ src/external/Carve/src/lib/polyhedron.cpp
79
+ src/external/Carve/src/lib/polyline.cpp
80
+ src/external/Carve/src/lib/shewchuk_predicates.cpp
81
+ src/external/Carve/src/lib/tag.cpp
82
+ src/external/Carve/src/lib/timing.cpp
83
+ src/external/Carve/src/lib/triangle_intersection.cpp
84
+ src/external/Carve/src/lib/triangulator.cpp
85
+ src/external/Carve/src/common/geometry.cpp
32
86
)
33
87
34
88
if (MSVC )
35
89
set (IFCPP_SOURCE_FILES
36
90
src/external/XUnzip.cpp # do not add src/external/XUnzip.cpp on unix platforms
37
91
${IFCPP_SOURCE_FILES} )
38
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj " )
92
+ #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj ")
93
+ set_source_files_properties (src/ifcpp/IFC4X3/EntityFactory.cpp PROPERTIES COMPILE_FLAGS /bigobj)
94
+ set_source_files_properties (src/ifcpp/IFC4X3/TypeFactory.cpp PROPERTIES COMPILE_FLAGS /bigobj)
39
95
endif ()
40
96
41
- ADD_DEFINITIONS (-DIFCQUERY_AS_DYNAMIC_LIBRARY)
42
- ADD_DEFINITIONS (-DIFCQUERY_LIB)
43
- ADD_DEFINITIONS (-DGLM_FORCE_CTOR_INIT)
44
- ADD_DEFINITIONS (-DGLM_FORCE_XYZW_ONLY)
45
- ADD_DEFINITIONS (-D_HAS_AUTO_PTR_ETC=1)
46
- ADD_DEFINITIONS (-DUNICODE)
47
- ADD_DEFINITIONS (-D_UNICODE)
48
- set (CMAKE_CXX_STANDARD 20)
49
- set (CMAKE_CXX_STANDARD_REQUIRED ON )
50
-
51
- add_library (IfcPlusPlus SHARED ${IFCPP_SOURCE_FILES} )
97
+ add_library (IfcPlusPlus STATIC ${IFCPP_SOURCE_FILES} )
52
98
53
99
if (OpenMP_CXX_FOUND)
54
100
ADD_DEFINITIONS (-DENABLE_OPENMP)
@@ -58,19 +104,38 @@ if(OpenMP_CXX_FOUND)
58
104
endif ()
59
105
60
106
61
- target_include_directories (IfcPlusPlus
62
- PUBLIC
63
- "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /src>"
64
- "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /src/external>"
65
- "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /src/ifcpp/IFC4/include>"
66
- "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /src/ifcpp/IFC4X3/include>"
67
- "$<INSTALL_INTERFACE:include>" )
107
+ TARGET_INCLUDE_DIRECTORIES (IfcPlusPlus
108
+ PRIVATE
109
+ ${CMAKE_CURRENT_SOURCE_DIR} /src
110
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src
111
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/ifcpp/IFC4X3/include
112
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/external
113
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/external/glm
114
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/external/Carve/include
115
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/external/Carve/src
116
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/external/Carve/src/include
117
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/external/Carve/src/common
118
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/external/Carve/build /src
119
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/external/glm
120
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/external/manifold/src/utilities/include
121
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/external/manifold/src/utilities
122
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/external/manifold/src/polygon/include
123
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/external/manifold/src/manifold/include
124
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/external/manifold/src
125
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/external/manifold/src/collider/include
126
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/external/manifold/src/third_party
127
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/external/manifold/src/third_party/thrust
128
+ ${IFCPP_SOURCE_DIR} /IfcPlusPlus/src/external/manifold/src/third_party/graphlite/include
129
+ )
130
+
68
131
69
132
set_target_properties (IfcPlusPlus PROPERTIES DEBUG_POSTFIX "d" )
70
- set_target_properties (IfcPlusPlus PROPERTIES CXX_STANDARD 20 )
133
+ set_target_properties (IfcPlusPlus PROPERTIES CXX_STANDARD 17 )
71
134
72
135
if (WIN32 )
73
136
set_target_properties (IfcPlusPlus PROPERTIES LINK_FLAGS_DEBUG "/debug /INCREMENTAL:NO" )
137
+ add_definitions ("/wd4018 /wd4305" )
138
+ target_compile_options (IfcPlusPlus PRIVATE /W2)
74
139
endif ()
75
140
76
141
install (
0 commit comments