1
1
cmake_minimum_required (VERSION 2.8...3.7.2)
2
+ project (IfcPlusPlus)
2
3
3
4
if (WIN32 )
4
5
# for vs2017
@@ -16,67 +17,57 @@ else(WIN32)
16
17
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR} /${CMAKE_BUILD_TYPE} )
17
18
endif (WIN32 )
18
19
19
- file (GLOB ifc4_source "src/ifcpp/IFC4/lib/*.cpp" )
20
-
21
- if (UNIX )
22
- # do not add src/external/XUnzip.cpp on unix platforms
23
- set (IFCPP_SOURCE_FILES
24
- src/ifcpp/IFC4/EntityFactory.cpp
25
- src/ifcpp/IFC4/TypeFactory.cpp
26
- src/ifcpp/model/BuildingGuid.cpp
27
- src/ifcpp/model/BuildingModel.cpp
28
- src/ifcpp/model/UnitConverter.cpp
29
- src/ifcpp/reader/AbstractReader.cpp
30
- src/ifcpp/reader/ReaderSTEP.cpp
31
- src/ifcpp/reader/ReaderXML.cpp
32
- src/ifcpp/reader/ReaderUtil.cpp
33
- src/ifcpp/writer/WriterSTEP.cpp
34
- src/ifcpp/writer/WriterUtil.cpp
35
-
36
- ${ifc4_source}
37
- )
38
- else (UNIX )
39
- set (IFCPP_SOURCE_FILES
40
- src/ifcpp/IFC4/EntityFactory.cpp
41
- src/ifcpp/IFC4/TypeFactory.cpp
42
- src/ifcpp/model/BuildingGuid.cpp
43
- src/ifcpp/model/BuildingModel.cpp
44
- src/ifcpp/model/UnitConverter.cpp
45
- src/ifcpp/reader/AbstractReader.cpp
46
- src/ifcpp/reader/ReaderSTEP.cpp
47
- src/ifcpp/reader/ReaderXML.cpp
48
- src/ifcpp/reader/ReaderUtil.cpp
49
- src/ifcpp/writer/WriterSTEP.cpp
50
- src/ifcpp/writer/WriterUtil.cpp
51
- src/external/XUnzip.cpp
52
-
53
- ${ifc4_source}
54
- )
55
- endif (UNIX )
56
-
20
+ set (IFCPP_SOURCE_FILES
21
+ src/ifcpp/IFC4X3/EntityFactory.cpp
22
+ src/ifcpp/IFC4X3/TypeFactory.cpp
23
+ src/ifcpp/model/BuildingGuid.cpp
24
+ src/ifcpp/model/BuildingModel.cpp
25
+ src/ifcpp/model/UnitConverter.cpp
26
+ src/ifcpp/reader/AbstractReader.cpp
27
+ src/ifcpp/reader/ReaderSTEP.cpp
28
+ src/ifcpp/reader/ReaderXML.cpp
29
+ src/ifcpp/reader/ReaderUtil.cpp
30
+ src/ifcpp/writer/WriterSTEP.cpp
31
+ src/ifcpp/writer/WriterUtil.cpp
32
+ )
57
33
58
34
if (MSVC )
35
+ set (IFCPP_SOURCE_FILES
36
+ src/external/XUnzip.cpp # do not add src/external/XUnzip.cpp on unix platforms
37
+ ${IFCPP_SOURCE_FILES} )
59
38
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj " )
60
39
endif ()
61
40
62
- add_definitions (-DIFCQUERY_AS_DYNAMIC_LIBRARY)
63
- add_definitions (-DIFCQUERY_LIB)
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
+
64
51
add_library (IfcPlusPlus SHARED ${IFCPP_SOURCE_FILES} )
65
52
66
- link_directories ( ${CMAKE_BINARY_DIR} /IfcPlusPlus/ ${CMAKE_BUILD_TYPE} )
67
- link_directories ( ${CMAKE_BINARY_DIR} /external/Carve/ ${CMAKE_BUILD_TYPE} )
68
- target_link_libraries (IfcPlusPlus
69
- PUBLIC
70
- carve
71
- ${VC_LIBS}
72
- )
53
+ if (OpenMP_CXX_FOUND )
54
+ ADD_DEFINITIONS (-DENABLE_OPENMP )
55
+ TARGET_LINK_LIBRARIES (IfcPlusPlus
56
+ optimized OpenMP::OpenMP_CXX
57
+ ${VC_LIBS} )
58
+ endif ()
59
+
73
60
74
61
target_include_directories (IfcPlusPlus
75
62
PUBLIC
76
- "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /src>"
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>"
77
67
"$<INSTALL_INTERFACE:include>" )
78
68
79
69
set_target_properties (IfcPlusPlus PROPERTIES DEBUG_POSTFIX "d" )
70
+ set_target_properties (IfcPlusPlus PROPERTIES CXX_STANDARD 20)
80
71
81
72
if (WIN32 )
82
73
set_target_properties (IfcPlusPlus PROPERTIES LINK_FLAGS_DEBUG "/debug /INCREMENTAL:NO" )
0 commit comments