2011-05-08 11:04:32 +00:00
|
|
|
cmake_minimum_required (VERSION 2.6)
|
|
|
|
|
project (IfcOpenShell)
|
|
|
|
|
|
2014-02-22 11:38:03 +01:00
|
|
|
FIND_PACKAGE(Boost REQUIRED COMPONENTS program_options)
|
2012-11-04 11:04:55 +00:00
|
|
|
MESSAGE(STATUS "Boost include files found in ${Boost_INCLUDE_DIRS}")
|
|
|
|
|
MESSAGE(STATUS "Boost libraries found in ${Boost_LIBRARY_DIRS}")
|
|
|
|
|
|
2011-05-08 11:04:32 +00:00
|
|
|
# Find Open CASCADE header files
|
|
|
|
|
IF("$ENV{OCC_INCLUDE_DIR}" STREQUAL "")
|
|
|
|
|
SET(OCC_INCLUDE_DIR "/usr/include/opencascade/" CACHE FILEPATH "Open CASCADE header files")
|
|
|
|
|
MESSAGE(STATUS "Looking for opencascade include files in: ${OCC_INCLUDE_DIR}")
|
|
|
|
|
MESSAGE(STATUS "Use OCC_INCLUDE_DIR to specify another directory")
|
|
|
|
|
ELSE()
|
|
|
|
|
SET(OCC_INCLUDE_DIR $ENV{OCC_INCLUDE_DIR} CACHE FILEPATH "Open CASCADE header files")
|
|
|
|
|
MESSAGE(STATUS "Looking for opencascade include files in: ${OCC_INCLUDE_DIR}")
|
|
|
|
|
ENDIF()
|
|
|
|
|
|
2012-01-11 13:57:00 +00:00
|
|
|
FIND_FILE(gp_Pnt_hxx "gp_Pnt.hxx" ${OCC_INCLUDE_DIR} /usr/inc /usr/local/inc /usr/local/include/oce)
|
2011-05-08 11:04:32 +00:00
|
|
|
IF(gp_Pnt_hxx)
|
|
|
|
|
MESSAGE(STATUS "Header files found")
|
|
|
|
|
ELSE()
|
|
|
|
|
MESSAGE(FATAL_ERROR "Unable to find header files, aborting")
|
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
|
|
# Find Open CASCADE library files
|
|
|
|
|
IF("$ENV{OCC_LIBRARY_DIR}" STREQUAL "")
|
|
|
|
|
SET(OCC_LIBRARY_DIR "/usr/lib/" CACHE FILEPATH "Open CASCADE library files")
|
|
|
|
|
MESSAGE(STATUS "Looking for opencascade library files in: ${OCC_LIBRARY_DIR}")
|
|
|
|
|
MESSAGE(STATUS "Use OCC_LIBRARY_DIR to specify another directory")
|
|
|
|
|
ELSE()
|
|
|
|
|
SET(OCC_LIBRARY_DIR $ENV{OCC_LIBRARY_DIR} CACHE FILEPATH "Open CASCADE library files")
|
|
|
|
|
MESSAGE(STATUS "Looking for opencascade library files in: ${OCC_LIBRARY_DIR}")
|
|
|
|
|
ENDIF()
|
|
|
|
|
|
2011-08-30 15:49:08 +00:00
|
|
|
FIND_LIBRARY(libTKernel "TKernel" ${OCC_LIBRARY_DIR} /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64)
|
2011-05-08 11:04:32 +00:00
|
|
|
IF(libTKernel)
|
|
|
|
|
MESSAGE(STATUS "Library files found")
|
|
|
|
|
ELSE()
|
|
|
|
|
MESSAGE(FATAL_ERROR "Unable to find library files, aborting")
|
|
|
|
|
ENDIF()
|
|
|
|
|
|
2012-06-12 10:36:34 +00:00
|
|
|
IF("$ENV{ICU_INCLUDE_DIR}" STREQUAL "")
|
|
|
|
|
MESSAGE(STATUS "No ICU include directory specified")
|
|
|
|
|
ElSE()
|
|
|
|
|
SET(ICU_INCLUDE_DIR CACHE FILEPATH "ICU header files")
|
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
|
|
IF("$ENV{ICU_LIBRARY_DIR}" STREQUAL "")
|
|
|
|
|
MESSAGE(STATUS "No ICU library directory specified")
|
|
|
|
|
ElSE()
|
|
|
|
|
SET(ICU_LIBRARY_DIR CACHE FILEPATH "ICU library files")
|
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
|
|
FIND_LIBRARY(icu "icuuc" /usr/lib /usr/lib64 /usr/local/lib /usr/local/lib64 ${ICU_LIBRARY_DIR})
|
2011-09-25 09:53:22 +00:00
|
|
|
|
|
|
|
|
IF(icu)
|
2014-02-22 11:38:03 +01:00
|
|
|
MESSAGE(STATUS "ICU libraries found")
|
2012-01-31 08:53:53 +00:00
|
|
|
ADD_DEFINITIONS(-DHAVE_ICU)
|
2011-09-25 09:53:22 +00:00
|
|
|
ELSE()
|
2014-02-22 11:38:03 +01:00
|
|
|
MESSAGE(STATUS "Unable to find ICU library files, continuing")
|
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
|
|
IF("$ENV{OPENCOLLADA_INCLUDE_DIR}" STREQUAL "")
|
|
|
|
|
MESSAGE(STATUS "No OpenCOLLADA include directory specified")
|
|
|
|
|
SET(OPENCOLLADA_INCLUDE_DIR "/usr/local/include/opencollada" CACHE FILEPATH "OpenCOLLADA header files")
|
|
|
|
|
ElSE()
|
|
|
|
|
SET(OPENCOLLADA_INCLUDE_DIR "$ENV{OPENCOLLADA_INCLUDE_DIR}" CACHE FILEPATH "OpenCOLLADA header files")
|
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
|
|
IF("$ENV{OPENCOLLADA_LIBRARY_DIR}" STREQUAL "")
|
|
|
|
|
MESSAGE(STATUS "No OpenCOLLADA library directory specified")
|
|
|
|
|
SET(OPENCOLLADA_LIBRARY_DIR "/usr/local/lib/opencollada" CACHE FILEPATH "OpenCOLLADA library files")
|
|
|
|
|
ElSE()
|
|
|
|
|
SET(OPENCOLLADA_LIBRARY_DIR "$ENV{OPENCOLLADA_LIBRARY_DIR}" CACHE FILEPATH "OpenCOLLADA library files")
|
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
|
|
SET(OPENCOLLADA_INCLUDE_DIRS "${OPENCOLLADA_INCLUDE_DIR}/COLLADABaseUtils" "${OPENCOLLADA_INCLUDE_DIR}/COLLADAStreamWriter")
|
|
|
|
|
|
|
|
|
|
FIND_FILE(COLLADASWStreamWriter_h "COLLADASWStreamWriter.h" ${OPENCOLLADA_INCLUDE_DIRS})
|
|
|
|
|
IF(COLLADASWStreamWriter_h)
|
|
|
|
|
MESSAGE(STATUS "OpenCOLLADA header files found")
|
|
|
|
|
ADD_DEFINITIONS(-DWITH_OPENCOLLADA)
|
|
|
|
|
SET(OPENCOLLADA_LIBRARIES
|
|
|
|
|
GeneratedSaxParser MathMLSolver OpenCOLLADABaseUtils
|
|
|
|
|
OpenCOLLADAFramework OpenCOLLADASaxFrameworkLoader
|
|
|
|
|
OpenCOLLADAStreamWriter UTF buffer ftoa pcre
|
|
|
|
|
)
|
|
|
|
|
ELSE()
|
|
|
|
|
MESSAGE(STATUS "OpenCOLLADA header files not found, continuing without COLLADA support")
|
2011-09-25 09:53:22 +00:00
|
|
|
ENDIF()
|
|
|
|
|
|
2011-06-23 17:23:53 +00:00
|
|
|
INCLUDE(CheckIncludeFileCXX)
|
|
|
|
|
|
|
|
|
|
MACRO(CHECK_ADD_OCE_OCC_DEF INCLUDE)
|
|
|
|
|
STRING(REPLACE . _ STR ${INCLUDE})
|
|
|
|
|
STRING(TOUPPER ${STR} STR)
|
|
|
|
|
CHECK_INCLUDE_FILE_CXX("${INCLUDE}" FOUND_${STR})
|
|
|
|
|
IF(FOUND_${STR})
|
|
|
|
|
ADD_DEFINITIONS(-DOCE_HAVE_${STR})
|
|
|
|
|
ADD_DEFINITIONS(-DHAVE_${STR})
|
|
|
|
|
ENDIF(FOUND_${STR})
|
|
|
|
|
ENDMACRO(CHECK_ADD_OCE_OCC_DEF)
|
|
|
|
|
|
|
|
|
|
CHECK_ADD_OCE_OCC_DEF(limits)
|
|
|
|
|
CHECK_ADD_OCE_OCC_DEF(climits)
|
|
|
|
|
CHECK_ADD_OCE_OCC_DEF(limits.h)
|
|
|
|
|
CHECK_ADD_OCE_OCC_DEF(fstream)
|
|
|
|
|
CHECK_ADD_OCE_OCC_DEF(fstream.h)
|
|
|
|
|
CHECK_ADD_OCE_OCC_DEF(iomanip)
|
|
|
|
|
CHECK_ADD_OCE_OCC_DEF(iomanip.h)
|
|
|
|
|
CHECK_ADD_OCE_OCC_DEF(iostream)
|
|
|
|
|
CHECK_ADD_OCE_OCC_DEF(iostream.h)
|
|
|
|
|
|
2011-08-20 09:08:56 +00:00
|
|
|
IF(NOT CMAKE_BUILD_TYPE)
|
|
|
|
|
SET(CMAKE_BUILD_TYPE "Release")
|
|
|
|
|
ENDIF(NOT CMAKE_BUILD_TYPE)
|
2012-06-12 10:21:32 +00:00
|
|
|
|
2012-06-12 10:36:34 +00:00
|
|
|
IF(MSVC)
|
|
|
|
|
ADD_DEFINITIONS(-D_UNICODE)
|
|
|
|
|
ElSE(MSVC)
|
2012-06-12 10:21:32 +00:00
|
|
|
ADD_DEFINITIONS(-fPIC -Wno-non-virtual-dtor)
|
2012-06-12 10:36:34 +00:00
|
|
|
ENDIF(MSVC)
|
|
|
|
|
|
2014-02-22 11:38:03 +01:00
|
|
|
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})
|
2011-05-08 11:04:32 +00:00
|
|
|
|
2011-07-25 14:56:40 +00:00
|
|
|
ADD_LIBRARY(IfcParse STATIC
|
|
|
|
|
../src/ifcparse/Ifc2x3.cpp
|
2014-02-22 11:38:03 +01:00
|
|
|
../src/ifcparse/Ifc4.cpp
|
|
|
|
|
../src/ifcparse/IfcUtil.cpp
|
|
|
|
|
../src/ifcparse/IfcParse.cpp
|
2011-09-25 09:53:22 +00:00
|
|
|
../src/ifcparse/IfcCharacterDecoder.cpp
|
2014-02-22 11:38:03 +01:00
|
|
|
|
|
|
|
|
../src/ifcparse/IfcWrite.cpp
|
2012-07-18 19:32:58 +00:00
|
|
|
../src/ifcparse/IfcGuidHelper.cpp
|
2014-02-22 11:38:03 +01:00
|
|
|
|
|
|
|
|
../src/ifcparse/IfcHierarchyHelper.cpp
|
|
|
|
|
|
|
|
|
|
../src/ifcparse/Ifc2x3-rt.cpp
|
|
|
|
|
../src/ifcparse/Ifc4-rt.cpp
|
2012-10-21 17:54:09 +02:00
|
|
|
../src/ifcparse/IfcUntypedEntity.cpp
|
2011-07-25 14:56:40 +00:00
|
|
|
)
|
2011-05-08 11:04:32 +00:00
|
|
|
|
2011-08-24 12:21:07 +00:00
|
|
|
ADD_LIBRARY(IfcGeom STATIC
|
|
|
|
|
../src/ifcgeom/IfcGeomCurves.cpp
|
|
|
|
|
../src/ifcgeom/IfcGeomFaces.cpp
|
|
|
|
|
../src/ifcgeom/IfcGeomFunctions.cpp
|
|
|
|
|
../src/ifcgeom/IfcGeomHelpers.cpp
|
|
|
|
|
../src/ifcgeom/IfcGeomObjects.cpp
|
2014-02-22 11:38:03 +01:00
|
|
|
../src/ifcgeom/IfcGeomRenderStyles.cpp
|
2011-08-24 12:21:07 +00:00
|
|
|
../src/ifcgeom/IfcGeomShapes.cpp
|
|
|
|
|
../src/ifcgeom/IfcGeomWires.cpp
|
|
|
|
|
../src/ifcgeom/IfcRegister.cpp
|
|
|
|
|
)
|
|
|
|
|
|
2012-01-11 13:57:00 +00:00
|
|
|
IF(icu)
|
|
|
|
|
TARGET_LINK_LIBRARIES(IfcParse icuuc)
|
|
|
|
|
ENDIF()
|
|
|
|
|
|
2011-08-24 12:53:05 +00:00
|
|
|
TARGET_LINK_LIBRARIES(IfcGeom IfcParse)
|
|
|
|
|
|
2014-02-22 11:38:03 +01:00
|
|
|
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})
|
2012-06-12 10:36:34 +00:00
|
|
|
|
2014-02-22 11:38:03 +01:00
|
|
|
ADD_EXECUTABLE(IfcConvert
|
|
|
|
|
../src/ifcconvert/ColladaSerializer.cpp
|
|
|
|
|
../src/ifcconvert/IfcConvert.cpp
|
|
|
|
|
../src/ifcconvert/OpenCascadeBasedSerializer.cpp
|
|
|
|
|
../src/ifcconvert/WavefrontObjSerializer.cpp
|
|
|
|
|
)
|
2012-06-12 10:21:32 +00:00
|
|
|
|
2014-03-19 09:47:24 +00:00
|
|
|
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 TKOffset ${Boost_LIBRARIES} ${OPENCOLLADA_LIBRARIES})
|
2011-05-08 11:04:32 +00:00
|
|
|
|
2014-04-06 11:16:20 +00:00
|
|
|
ADD_EXECUTABLE(IfcGeomServer
|
|
|
|
|
../src/ifcgeomserver/IfcGeomServer.cpp
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
TARGET_LINK_LIBRARIES (IfcGeomServer IfcParse IfcGeom TKernel TKMath TKBRep TKGeomBase TKGeomAlgo TKG3d TKG2d TKShHealing TKTopAlgo TKMesh TKPrim TKBool TKBO TKFillet TKSTEP TKSTEPBase TKSTEPAttr TKXSBase TKSTEP209 TKIGES TKOffset)
|
|
|
|
|
|
2011-05-08 11:04:32 +00:00
|
|
|
# Build python wrapper using separate CMakeLists.txt
|
2011-08-07 10:21:22 +00:00
|
|
|
ADD_SUBDIRECTORY(../src/ifcwrap ifcwrap)
|
2011-08-24 12:21:07 +00:00
|
|
|
|
|
|
|
|
# Build IfcParseExamples using separate CMakeLists.txt
|
|
|
|
|
ADD_SUBDIRECTORY(../src/examples examples)
|
2012-01-11 13:57:00 +00:00
|
|
|
|
2014-02-22 11:38:03 +01:00
|
|
|
# ADD_SUBDIRECTORY(../src/qtviewer qtviewer)
|
2012-06-22 12:28:34 +00:00
|
|
|
|
2012-01-11 13:57:00 +00:00
|
|
|
# CMake installation targets
|
|
|
|
|
SET(include_files_geom
|
|
|
|
|
../src/ifcgeom/IfcGeom.h
|
|
|
|
|
../src/ifcgeom/IfcGeomObjects.h
|
2014-03-22 09:22:27 +00:00
|
|
|
../src/ifcgeom/IfcGeomRenderStyles.h
|
2012-01-11 13:57:00 +00:00
|
|
|
../src/ifcgeom/IfcRegister.h
|
|
|
|
|
../src/ifcgeom/IfcRegisterConvertCurve.h
|
|
|
|
|
../src/ifcgeom/IfcRegisterConvertFace.h
|
|
|
|
|
../src/ifcgeom/IfcRegisterConvertShape.h
|
|
|
|
|
../src/ifcgeom/IfcRegisterConvertShapes.h
|
|
|
|
|
../src/ifcgeom/IfcRegisterConvertWire.h
|
|
|
|
|
../src/ifcgeom/IfcRegisterCreateCache.h
|
|
|
|
|
../src/ifcgeom/IfcRegisterDef.h
|
|
|
|
|
../src/ifcgeom/IfcRegisterGeomHeader.h
|
|
|
|
|
../src/ifcgeom/IfcRegisterIsShapeCollection.h
|
|
|
|
|
../src/ifcgeom/IfcRegisterPurgeCache.h
|
|
|
|
|
../src/ifcgeom/IfcRegisterUndef.h
|
2014-02-22 11:38:03 +01:00
|
|
|
../src/ifcgeom/IfcGeomRenderStyles.h
|
|
|
|
|
../src/ifcgeom/IfcRepresentationShapeItem.h
|
2012-01-11 13:57:00 +00:00
|
|
|
)
|
|
|
|
|
SET(include_files_parse
|
|
|
|
|
../src/ifcparse/Ifc2x3.h
|
|
|
|
|
../src/ifcparse/Ifc2x3enum.h
|
2014-02-22 11:38:03 +01:00
|
|
|
../src/ifcparse/Ifc4.h
|
|
|
|
|
../src/ifcparse/Ifc4enum.h
|
2012-01-11 13:57:00 +00:00
|
|
|
../src/ifcparse/IfcCharacterDecoder.h
|
|
|
|
|
../src/ifcparse/IfcException.h
|
|
|
|
|
../src/ifcparse/IfcFile.h
|
2014-02-22 11:38:03 +01:00
|
|
|
../src/ifcparse/IfcHierarchyHelper.h
|
2012-01-11 13:57:00 +00:00
|
|
|
../src/ifcparse/IfcParse.h
|
|
|
|
|
../src/ifcparse/IfcUtil.h
|
2014-02-22 11:38:03 +01:00
|
|
|
../src/ifcparse/SharedPointer.h
|
|
|
|
|
|
2012-07-18 19:32:58 +00:00
|
|
|
../src/ifcparse/IfcWrite.h
|
2014-02-22 11:38:03 +01:00
|
|
|
../src/ifcparse/IfcWritableEntity.h
|
|
|
|
|
|
|
|
|
|
../src/ifcparse/Ifc2x3-rt.h
|
|
|
|
|
../src/ifcparse/Ifc4-rt.h
|
|
|
|
|
../src/ifcparse/IfcUntypedEntity.h
|
|
|
|
|
../src/ifcparse/IfcEntityDescriptor.h
|
2012-01-11 13:57:00 +00:00
|
|
|
)
|
|
|
|
|
INSTALL(FILES ${include_files_geom} DESTINATION include/ifcgeom)
|
|
|
|
|
INSTALL(FILES ${include_files_parse} DESTINATION include/ifcparse)
|
2014-02-22 11:38:03 +01:00
|
|
|
INSTALL(TARGETS IfcConvert DESTINATION bin)
|
2012-01-11 13:57:00 +00:00
|
|
|
INSTALL(TARGETS IfcParse IfcGeom DESTINATION lib)
|