From 96fe1018edf63337c4deb7f8fc501cc3701f1fe2 Mon Sep 17 00:00:00 2001 From: Dmitry Sedov Date: Thu, 10 Feb 2022 11:11:49 +0300 Subject: [PATCH] implemented the minimal build version --- cmake/CMakeLists.txt | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index fea3a0b9b8..527a7446f0 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -38,7 +38,7 @@ MESSAGE(STATUS "Autodesk 3ds Max SDK found at ${max_sdk}") set(HAS_MAX TRUE) endif() endforeach() - +OPTION(MINIMAL_BUILD "The build is to make a minimal version of IFC converter from OCCT into IFC." ON) OPTION(COLLADA_SUPPORT "Build IfcConvert with COLLADA support (requires OpenCOLLADA)." ON) OPTION(IFCXML_SUPPORT "Build IfcParse with ifcXML support (requires libxml2)." ON) OPTION(ENABLE_BUILD_OPTIMIZATIONS "Enable certain compiler and linker optimizations on RelWithDebInfo and Release builds." OFF) @@ -121,6 +121,7 @@ ENDMACRO() UNIFY_ENVVARS_AND_CACHE(OCC_INCLUDE_DIR) UNIFY_ENVVARS_AND_CACHE(OCC_LIBRARY_DIR) +if (NOT MINIMAL_BUILD) UNIFY_ENVVARS_AND_CACHE(OPENCOLLADA_INCLUDE_DIR) UNIFY_ENVVARS_AND_CACHE(OPENCOLLADA_LIBRARY_DIR) UNIFY_ENVVARS_AND_CACHE(LIBXML2_INCLUDE_DIR) @@ -130,17 +131,20 @@ UNIFY_ENVVARS_AND_CACHE(PYTHON_EXECUTABLE) UNIFY_ENVVARS_AND_CACHE(HDF5_INCLUDE_DIR) UNIFY_ENVVARS_AND_CACHE(HDF5_LIBRARY_DIR) UNIFY_ENVVARS_AND_CACHE(HDF5_LIBRARIES) +endif() UNIFY_ENVVARS_AND_CACHE(BOOST_ROOT) UNIFY_ENVVARS_AND_CACHE(BOOST_LIBRARYDIR) +if (NOT MINIMAL_BUILD) UNIFY_ENVVARS_AND_CACHE(CGAL_INCLUDE_DIR) UNIFY_ENVVARS_AND_CACHE(CGAL_LIBRARY_DIR) UNIFY_ENVVARS_AND_CACHE(GMP_INCLUDE_DIR) UNIFY_ENVVARS_AND_CACHE(GMP_LIBRARY_DIR) UNIFY_ENVVARS_AND_CACHE(MPFR_INCLUDE_DIR) UNIFY_ENVVARS_AND_CACHE(MPFR_LIBRARY_DIR) +endif() -if (GLTF_SUPPORT AND BUILD_CONVERT) +if (NOT MINIMAL_BUILD AND GLTF_SUPPORT AND BUILD_CONVERT) UNIFY_ENVVARS_AND_CACHE(JSON_INCLUDE_DIR) FIND_FILE(json_hpp "json.hpp" ${JSON_INCLUDE_DIR}/nlohmann) IF(json_hpp) @@ -201,10 +205,12 @@ if(USE_MMAP) add_definitions(-DUSE_MMAP) endif() +if (NOT MINIMAL_BUILD) # libxml2 is required for IFCXML (optional) and SVGFILL (mandatory) -find_package(LibXml2 REQUIRED) + find_package(LibXml2 REQUIRED) +endif() -if (IFCXML_SUPPORT) +if (NOT MINIMAL_BUILD AND IFCXML_SUPPORT) add_definitions(-DWITH_IFCXML) set(SWIG_DEFINES ${SWIG_DEFINES} -DWITH_IFCXML) endif() @@ -346,7 +352,7 @@ endif() endif(BUILD_IFCGEOM) -IF(COLLADA_SUPPORT) +IF(NOT MINIMAL_BUILD AND COLLADA_SUPPORT) # Find OpenCOLLADA IF("${OPENCOLLADA_INCLUDE_DIR}" STREQUAL "") MESSAGE(STATUS "No OpenCOLLADA include directory specified") @@ -426,7 +432,7 @@ IF(COLLADA_SUPPORT) ENDIF() ENDIF() -if(HDF5_SUPPORT) +if(NOT MINIMAL_BUILD AND HDF5_SUPPORT) IF("${HDF5_INCLUDE_DIR}" STREQUAL "") MESSAGE(STATUS "No HDF5 include directory specified") ElSE() @@ -774,7 +780,7 @@ INSTALL(TARGETS IfcConvert endif(BUILD_CONVERT) # IfcGeomServer -if(BUILD_GEOMSERVER) +if(NOT MINIMAL_BUILD AND BUILD_GEOMSERVER) file(GLOB CPP_FILES ../src/ifcgeomserver/*.cpp) file(GLOB H_FILES ../src/ifcgeomserver/*.h) @@ -828,7 +834,7 @@ IF(BUILD_DOCUMENTATION) ADD_SUBDIRECTORY(../docs docs) ENDIF() -IF(BUILD_IFCPYTHON) +IF(NOT MINIMAL_BUILD AND BUILD_IFCPYTHON) ADD_SUBDIRECTORY(../src/ifcwrap ifcwrap) ENDIF() @@ -836,11 +842,12 @@ IF(BUILD_EXAMPLES) ADD_SUBDIRECTORY(../src/examples examples) ENDIF() -IF(BUILD_IFCMAX) +IF(NOT MINIMAL_BUILD AND BUILD_IFCMAX) ADD_SUBDIRECTORY(../src/ifcmax ifcmax) ENDIF() - +if (NOT MINIMAL_BUILD) ADD_SUBDIRECTORY(../src/svgfill svgfill) +endif() # CMake installation targets INSTALL(FILES ${IFCPARSE_H_FILES}