Skip to content

Commit 34a4617

Browse files
committed
integrate carve source into main library
1 parent a2ec0a7 commit 34a4617

File tree

1,100 files changed

+159419
-12473
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,100 files changed

+159419
-12473
lines changed

.gitignore

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ examples/SimpleViewerExampleMFC/dump_mesh_debug.txt
3636
examples/SimpleViewerExampleMFC/x64/
3737
examples/SimpleViewerExampleMFC/.vs/IfcQueryViewer/v15/.suo
3838
examples/SimpleViewerExampleMFC/.vs/SimpleViewerExampleMFC/v15/.suo
39-
examples/CreateWallAndWriteFile/CreateWallAndWriteFile/x64/
40-
examples/CreateWallAndWriteFile/CreateWallAndWriteFile/SimpleWall.ifc
41-
examples/CreateWallAndWriteFile/SimpleWall.ifc
39+
examples/CreateIfcWallAndWriteFile/CreateIfcWallAndWriteFile/x64/
40+
examples/CreateIfcWallAndWriteFile/CreateIfcWallAndWriteFile/SimpleWall.ifc
41+
examples/CreateIfcWallAndWriteFile/SimpleWall.ifc
4242
examples/LoadFileExampleNoGUI/LoadFileExampleNoGUI/x64/
4343
external/Carve/build/
44-
examples/CreateWallAndWriteFile/x64/
44+
examples/CreateIfcWallAndWriteFile/x64/
4545
examples/LoadFileWithGeometryExampleConsole/dump_mesh_debug.txt
4646
IfcPlusPlus-*
4747
IfcPlusPlus/src/ifcpp/geometry/Carve - Copy/

CMakeLists.txt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CMAKE_MINIMUM_REQUIRED (VERSION 3.7.2)
1+
CMAKE_MINIMUM_REQUIRED (VERSION 3.6)
22
project(IfcPlusPlus)
33

44
# Set a default build type if none was specified https://blog.kitware.com/cmake-and-the-default-build-type/
@@ -24,7 +24,6 @@ else(NOT WIN32)
2424
option(BUILD_VIEWER_APPLICATION "Build the viewer example application" OFF)
2525
endif()
2626
option(USE_OSG_DEBUG "Use openscenegraph debug library" OFF)
27-
option(BUILD_STATIC_LIBRARY "Build static library" OFF)
2827

2928
IF(NOT WIN32)
3029
IF("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
@@ -46,10 +45,7 @@ if (OPENMP_FOUND)
4645
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
4746
endif()
4847

49-
set(CARVE_SOURCE_DIR ${IFCPP_SOURCE_DIR}/external/Carve)
50-
set(CARVE_BINARY_DIR ${IFCPP_BINARY_DIR})
5148
set(IFCPP_CONFIG_DIR "share/IFCPP/cmake")
52-
ADD_SUBDIRECTORY (external/Carve)
5349
ADD_SUBDIRECTORY (IfcPlusPlus)
5450

5551
# Install configuration file
@@ -67,9 +63,9 @@ INSTALL(
6763
DESTINATION ${IFCPP_CONFIG_DIR})
6864

6965
IF(BUILD_CONSOLE_APPLICATION)
70-
ADD_SUBDIRECTORY (examples/CreateWallAndWriteFile)
71-
ADD_SUBDIRECTORY (examples/LoadFileExampleConsole)
72-
ADD_SUBDIRECTORY (examples/LoadFileWithGeometryExampleConsole)
66+
ADD_SUBDIRECTORY (examples/CreateIfcWallAndWriteFile)
67+
ADD_SUBDIRECTORY (examples/LoadFileExample)
68+
ADD_SUBDIRECTORY (examples/LoadFileWithGeometryExample)
7369
ENDIF()
7470
IF(BUILD_VIEWER_APPLICATION)
7571
ADD_SUBDIRECTORY (examples/SimpleViewerExampleQt)

IfcPlusPlus/CMakeLists.txt

Lines changed: 88 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,17 @@
1-
cmake_minimum_required (VERSION 2.8...3.7.2)
1+
cmake_minimum_required (VERSION 3.6...3.9)
22
project(IfcPlusPlus)
33

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+
415
if(WIN32)
516
# for vs2017
617
set(VC_LIBS Bcrypt.lib)
@@ -23,32 +34,67 @@ set(IFCPP_SOURCE_FILES
2334
src/ifcpp/model/BuildingGuid.cpp
2435
src/ifcpp/model/BuildingModel.cpp
2536
src/ifcpp/model/UnitConverter.cpp
26-
src/ifcpp/reader/AbstractReader.cpp
2737
src/ifcpp/reader/ReaderSTEP.cpp
28-
src/ifcpp/reader/ReaderXML.cpp
2938
src/ifcpp/reader/ReaderUtil.cpp
3039
src/ifcpp/writer/WriterSTEP.cpp
3140
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
3286
)
3387

3488
if (MSVC)
3589
set(IFCPP_SOURCE_FILES
3690
src/external/XUnzip.cpp # do not add src/external/XUnzip.cpp on unix platforms
3791
${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)
3995
endif()
4096

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})
5298

5399
if(OpenMP_CXX_FOUND)
54100
ADD_DEFINITIONS(-DENABLE_OPENMP)
@@ -58,19 +104,38 @@ if(OpenMP_CXX_FOUND)
58104
endif()
59105

60106

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+
68131

69132
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)
71134

72135
if(WIN32)
73136
set_target_properties(IfcPlusPlus PROPERTIES LINK_FLAGS_DEBUG "/debug /INCREMENTAL:NO")
137+
add_definitions("/wd4018 /wd4305")
138+
target_compile_options(IfcPlusPlus PRIVATE /W2)
74139
endif()
75140

76141
install(

0 commit comments

Comments
 (0)