11cmake_minimum_required (VERSION 2.6 )
22project (IfcOpenShell)
33
4- FIND_PACKAGE (Boost REQUIRED )
4+ FIND_PACKAGE (Boost REQUIRED COMPONENTS program_options )
55MESSAGE (STATUS "Boost include files found in ${Boost_INCLUDE_DIRS} " )
66MESSAGE (STATUS "Boost libraries found in ${Boost_LIBRARY_DIRS} " )
77
@@ -54,10 +54,39 @@ ENDIF()
5454FIND_LIBRARY (icu "icuuc" /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64 ${ICU_LIBRARY_DIR} )
5555
5656IF (icu)
57- MESSAGE (STATUS "ICU libraries found" )
57+ MESSAGE (STATUS "ICU libraries found" )
5858 ADD_DEFINITIONS (-DHAVE_ICU )
5959ELSE ()
60- MESSAGE (STATUS "Unable to find ICU library files, continuing" )
60+ MESSAGE (STATUS "Unable to find ICU library files, continuing" )
61+ ENDIF ()
62+
63+ IF ("$ENV{OPENCOLLADA_INCLUDE_DIR} " STREQUAL "" )
64+ MESSAGE (STATUS "No OpenCOLLADA include directory specified" )
65+ SET (OPENCOLLADA_INCLUDE_DIR "/usr/local/include/opencollada" CACHE FILEPATH "OpenCOLLADA header files" )
66+ ElSE ()
67+ SET (OPENCOLLADA_INCLUDE_DIR "$ENV{OPENCOLLADA_INCLUDE_DIR} " CACHE FILEPATH "OpenCOLLADA header files" )
68+ ENDIF ()
69+
70+ IF ("$ENV{OPENCOLLADA_LIBRARY_DIR} " STREQUAL "" )
71+ MESSAGE (STATUS "No OpenCOLLADA library directory specified" )
72+ SET (OPENCOLLADA_LIBRARY_DIR "/usr/local/lib/opencollada" CACHE FILEPATH "OpenCOLLADA library files" )
73+ ElSE ()
74+ SET (OPENCOLLADA_LIBRARY_DIR "$ENV{OPENCOLLADA_LIBRARY_DIR} " CACHE FILEPATH "OpenCOLLADA library files" )
75+ ENDIF ()
76+
77+ SET (OPENCOLLADA_INCLUDE_DIRS "${OPENCOLLADA_INCLUDE_DIR} /COLLADABaseUtils" "${OPENCOLLADA_INCLUDE_DIR} /COLLADAStreamWriter" )
78+
79+ FIND_FILE (COLLADASWStreamWriter_h "COLLADASWStreamWriter.h" ${OPENCOLLADA_INCLUDE_DIRS} )
80+ IF (COLLADASWStreamWriter_h)
81+ MESSAGE (STATUS "OpenCOLLADA header files found" )
82+ ADD_DEFINITIONS (-DWITH_OPENCOLLADA )
83+ SET (OPENCOLLADA_LIBRARIES
84+ GeneratedSaxParser MathMLSolver OpenCOLLADABaseUtils
85+ OpenCOLLADAFramework OpenCOLLADASaxFrameworkLoader
86+ OpenCOLLADAStreamWriter UTF buffer ftoa pcre
87+ )
88+ ELSE ()
89+ MESSAGE (STATUS "OpenCOLLADA header files not found, continuing without COLLADA support" )
6190ENDIF ()
6291
6392INCLUDE (CheckIncludeFileCXX )
@@ -92,17 +121,23 @@ ElSE(MSVC)
92121 ADD_DEFINITIONS (-fPIC -Wno-non-virtual-dtor )
93122ENDIF (MSVC )
94123
95- INCLUDE_DIRECTORIES (${INCLUDE_DIRECTORIES} ${OCC_INCLUDE_DIR} /usr/inc /usr/local/inc /usr/local/include/oce ${ICU_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} )
124+ INCLUDE_DIRECTORIES (${INCLUDE_DIRECTORIES} ${OCC_INCLUDE_DIR} ${OPENCOLLADA_INCLUDE_DIRS} /usr/inc /usr/local/inc /usr/local/include/oce ${ICU_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} )
96125
97126ADD_LIBRARY (IfcParse STATIC
98- ../src/ifcparse/Ifc2x3-rt.cpp
99127 ../src/ifcparse/Ifc2x3.cpp
128+ ../src/ifcparse/Ifc4.cpp
129+ ../src/ifcparse/IfcUtil.cpp
130+ ../src/ifcparse/IfcParse.cpp
100131 ../src/ifcparse/IfcCharacterDecoder.cpp
132+
133+ ../src/ifcparse/IfcWrite.cpp
101134 ../src/ifcparse/IfcGuidHelper.cpp
102- ../src/ifcparse/IfcParse.cpp
135+
136+ ../src/ifcparse/IfcHierarchyHelper.cpp
137+
138+ ../src/ifcparse/Ifc2x3-rt.cpp
139+ ../src/ifcparse/Ifc4-rt.cpp
103140 ../src/ifcparse/IfcUntypedEntity.cpp
104- ../src/ifcparse/IfcUtil.cpp
105- ../src/ifcparse/IfcWrite.cpp
106141)
107142
108143ADD_LIBRARY (IfcGeom STATIC
@@ -111,6 +146,7 @@ ADD_LIBRARY(IfcGeom STATIC
111146 ../src/ifcgeom/IfcGeomFunctions.cpp
112147 ../src/ifcgeom/IfcGeomHelpers.cpp
113148 ../src/ifcgeom/IfcGeomObjects.cpp
149+ ../src/ifcgeom/IfcGeomRenderStyles.cpp
114150 ../src/ifcgeom/IfcGeomShapes.cpp
115151 ../src/ifcgeom/IfcGeomWires.cpp
116152 ../src/ifcgeom/IfcRegister.cpp
@@ -122,19 +158,24 @@ ENDIF()
122158
123159TARGET_LINK_LIBRARIES (IfcGeom IfcParse )
124160
125- LINK_DIRECTORIES (${LINK_DIRECTORIES} ${IfcOpenShell_BINARY_DIR} ${OCC_LIBRARY_DIR} /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64 ${ICU_LIBRARY_DIR} ${Boost_LIBRARY_DIRS} )
161+ LINK_DIRECTORIES (${LINK_DIRECTORIES} ${IfcOpenShell_BINARY_DIR} ${OCC_LIBRARY_DIR} ${OPENCOLLADA_LIBRARY_DIR} /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64 ${ICU_LIBRARY_DIR} ${Boost_LIBRARY_DIRS} )
126162
127- ADD_EXECUTABLE (IfcObj ../src/ifcobj/IfcObj.cpp )
163+ ADD_EXECUTABLE (IfcConvert
164+ ../src/ifcconvert/ColladaSerializer.cpp
165+ ../src/ifcconvert/IfcConvert.cpp
166+ ../src/ifcconvert/OpenCascadeBasedSerializer.cpp
167+ ../src/ifcconvert/WavefrontObjSerializer.cpp
168+ )
128169
129- TARGET_LINK_LIBRARIES (IfcObj IfcParse IfcGeom TKernel TKMath TKBRep TKGeomBase TKGeomAlgo TKG3d TKG2d TKShHealing TKTopAlgo TKMesh TKPrim TKBool TKBO TKFillet )
170+ TARGET_LINK_LIBRARIES (IfcConvert IfcParse IfcGeom TKernel TKMath TKBRep TKGeomBase TKGeomAlgo TKG3d TKG2d TKShHealing TKTopAlgo TKMesh TKPrim TKBool TKBO TKFillet TKSTEP TKSTEPBase TKSTEPAttr TKXSBase TKSTEP209 TKIGES ${Boost_LIBRARIES} ${OPENCOLLADA_LIBRARIES} )
130171
131172# Build python wrapper using separate CMakeLists.txt
132173ADD_SUBDIRECTORY (../src/ifcwrap ifcwrap )
133174
134175# Build IfcParseExamples using separate CMakeLists.txt
135176ADD_SUBDIRECTORY (../src/examples examples )
136177
137- ADD_SUBDIRECTORY (../src/qtviewer qtviewer )
178+ # ADD_SUBDIRECTORY(../src/qtviewer qtviewer)
138179
139180# CMake installation targets
140181SET (include_files_geom
@@ -152,25 +193,31 @@ SET(include_files_geom
152193 ../src/ifcgeom/IfcRegisterIsShapeCollection.h
153194 ../src/ifcgeom/IfcRegisterPurgeCache.h
154195 ../src/ifcgeom/IfcRegisterUndef.h
155- ../src/ifcgeom/IfcShapeList.h
196+ ../src/ifcgeom/IfcGeomRenderStyles.h
197+ ../src/ifcgeom/IfcRepresentationShapeItem.h
156198)
157199SET (include_files_parse
158- ../src/ifcparse/ArgumentType.h
159- ../src/ifcparse/Ifc2x3-rt.h
160200 ../src/ifcparse/Ifc2x3.h
161201 ../src/ifcparse/Ifc2x3enum.h
202+ ../src/ifcparse/Ifc4.h
203+ ../src/ifcparse/Ifc4enum.h
162204 ../src/ifcparse/IfcCharacterDecoder.h
163205 ../src/ifcparse/IfcException.h
164206 ../src/ifcparse/IfcFile.h
207+ ../src/ifcparse/IfcHierarchyHelper.h
165208 ../src/ifcparse/IfcParse.h
166- ../src/ifcparse/IfcSpfStream.h
167- ../src/ifcparse/IfcUntypedEntity.h
168209 ../src/ifcparse/IfcUtil.h
210+ ../src/ifcparse/SharedPointer.h
211+
169212 ../src/ifcparse/IfcWrite.h
170- ../src/ifcparse/IfcWritableEntity.h
171- ../src/ifcparse/SharedPointer.h
213+ ../src/ifcparse/IfcWritableEntity.h
214+
215+ ../src/ifcparse/Ifc2x3-rt.h
216+ ../src/ifcparse/Ifc4-rt.h
217+ ../src/ifcparse/IfcUntypedEntity.h
218+ ../src/ifcparse/IfcEntityDescriptor.h
172219)
173220INSTALL (FILES ${include_files_geom} DESTINATION include/ifcgeom)
174221INSTALL (FILES ${include_files_parse} DESTINATION include/ifcparse)
175- INSTALL (TARGETS IfcObj DESTINATION bin)
222+ INSTALL (TARGETS IfcConvert DESTINATION bin)
176223INSTALL (TARGETS IfcParse IfcGeom DESTINATION lib)
0 commit comments