From cd3bad525085f97985acab13ce25dc6c6cbc3dc9 Mon Sep 17 00:00:00 2001 From: Dzmitry Razmyslovich Date: Tue, 30 Mar 2021 13:49:47 +0200 Subject: [PATCH] 0032268: Introduce a MINIMAL_BUILD CMake option to be able to build a minimal algorithmic and data exchange set of libraries --- CMakeLists.txt | 343 ++++++++++++++---------- adm/MODULES_MIN | 6 + adm/cmake/occt_csf.cmake | 12 +- adm/cmake/vardescr.cmake | 2 + src/AIS/AIS_TextLabel.cxx | 7 + src/Aspect/Aspect_DisplayConnection.cxx | 6 +- src/Font/Font_FTFont.cxx | 4 + src/Font/Font_FTLibrary.cxx | 4 + src/Font/Font_FontMgr.cxx | 4 + src/Font/Font_TextFormatter.cxx | 4 + src/PrsDim/PrsDim_Dimension.cxx | 12 + src/StdPrs/StdPrs_BRepFont.cxx | 4 + src/StdPrs/StdPrs_BRepTextBuilder.cxx | 3 + src/Xw/Xw_Window.cxx | 2 +- 14 files changed, 257 insertions(+), 156 deletions(-) create mode 100644 adm/MODULES_MIN diff --git a/CMakeLists.txt b/CMakeLists.txt index abe4a8fa7d..9e69e8a618 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -396,15 +396,29 @@ else() set (USE_GLES2 OFF CACHE BOOL "${USE_GLES2_DESCR}") endif() +set (MINIMAL_BUILD OFF CACHE BOOL "${MINIMAL_BUILD_DESCR}") + # include the patched or original list of modules # list _TOOLKITS is created foreach module and contains its toolkits # list will contain all modules -OCCT_MODULES_AND_TOOLKITS (MODULES "TOOLKITS" OCCT_MODULES) +if (MINIMAL_BUILD) + OCCT_MODULES_AND_TOOLKITS (MODULES_MIN "TOOLKITS" OCCT_MODULES) + + set (INSTALL_SAMPLES OFF CACHE BOOL "${INSTALL_SAMPLES_DESCR}" FORCE) + set (BUILD_MODULE_MfcSamples OFF CACHE BOOL "${BUILD_MODULE_MfcSamples_DESCR}" FORCE) +else () + OCCT_MODULES_AND_TOOLKITS (MODULES "TOOLKITS" OCCT_MODULES) +endif () foreach (OCCT_MODULE ${OCCT_MODULES}) BUILD_MODULE (${OCCT_MODULE}) endforeach() +if (MINIMAL_BUILD AND BUILD_MODULE_Draw) + message (STATUS "Info. Draw module is turned off for the minimal configuration") + set (BUILD_MODULE_Draw OFF CACHE BOOL "${BUILD_MODULE_Draw_DESCR}" FORCE) +endif() + if (ANDROID AND BUILD_MODULE_Draw) message (STATUS "Info. Draw module is turned off due to it is not supported on Android") set (BUILD_MODULE_Draw OFF CACHE BOOL "${BUILD_MODULE_Draw_DESCR}" FORCE) @@ -456,204 +470,232 @@ set (BUILD_TOOLKITS ${RAW_BUILD_TOOLKITS}) # include the patched or original list of definitions and flags OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_defs_flags") -OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/3rdparty_macro") - -# search for TKIVtk and TKIVtkDraw in BUILD_TOOLKITS -list (FIND BUILD_TOOLKITS TKIVtk CAN_USE_VTK) -if (CAN_USE_VTK EQUAL -1) - list (FIND BUILD_TOOLKITS TKIVtkDraw CAN_USE_VTK) +if (MINIMAL_BUILD) + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DOCC_MINIMAL_BUILD") + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DOCC_MINIMAL_BUILD") endif() -if (NOT CAN_USE_VTK EQUAL -1) - if (NOT DEFINED USE_VTK) - set (USE_VTK OFF CACHE BOOL "${USE_VTK_DESCR}") - endif() -else() - OCCT_CHECK_AND_UNSET (USE_VTK) -endif() +if (NOT MINIMAL_BUILD) + OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/3rdparty_macro") -# Rebuild *.yacc and *.lex files that are contained by TKMath toolkit -list (FIND BUILD_TOOLKITS TKMath CAN_REBUILD_PDC_FOR_TKMATH) -list (FIND BUILD_TOOLKITS StepFile CAN_REBUILD_PDC_FOR_STEPFILE) + # search for TKIVtk and TKIVtkDraw in BUILD_TOOLKITS + list (FIND BUILD_TOOLKITS TKIVtk CAN_USE_VTK) + if (CAN_USE_VTK EQUAL -1) + list (FIND BUILD_TOOLKITS TKIVtkDraw CAN_USE_VTK) + endif() -if (NOT ${CAN_REBUILD_PDC_FOR_TKMATH} EQUAL -1 OR NOT ${CAN_REBUILD_PDC_FOR_STEPFILE} EQUAL -1) - set (BUILD_YACCLEX OFF CACHE BOOL "${BUILD_YACCLEX_DESCR}") -else() - OCCT_CHECK_AND_UNSET (BUILD_YACCLEX) -endif() + if (NOT CAN_USE_VTK EQUAL -1) + if (NOT DEFINED USE_VTK) + set (USE_VTK OFF CACHE BOOL "${USE_VTK_DESCR}") + endif() + else() + OCCT_CHECK_AND_UNSET (USE_VTK) + endif() -if (NOT DEFINED 3RDPARTY_DIR) - set (3RDPARTY_DIR "" CACHE PATH ${3RDPARTY_DIR_DESCR}) - get_filename_component (3RDPARTY_DIR "${3RDPARTY_DIR}" ABSOLUTE) -else() - file (TO_CMAKE_PATH "${3RDPARTY_DIR}" 3RDPARTY_DIR) - set (3RDPARTY_DIR "${3RDPARTY_DIR}" CACHE PATH "${3RDPARTY_DIR_DESCR}" FORCE) -endif() + # Rebuild *.yacc and *.lex files that are contained by TKMath toolkit + list (FIND BUILD_TOOLKITS TKMath CAN_REBUILD_PDC_FOR_TKMATH) + list (FIND BUILD_TOOLKITS StepFile CAN_REBUILD_PDC_FOR_STEPFILE) -# search for CSF variable in EXTERNLIB of each being used toolkit -OCCT_IS_PRODUCT_REQUIRED (CSF_FreeImagePlus CAN_USE_FREEIMAGE) -OCCT_IS_PRODUCT_REQUIRED (CSF_TclLibs USE_TCL) -OCCT_IS_PRODUCT_REQUIRED (CSF_FREETYPE USE_FREETYPE) -OCCT_IS_PRODUCT_REQUIRED (CSF_OpenGlLibs CAN_USE_OPENGL) -OCCT_IS_PRODUCT_REQUIRED (CSF_OpenGlesLibs CAN_USE_GLES2) -OCCT_IS_PRODUCT_REQUIRED (CSF_TBB CAN_USE_TBB) -OCCT_IS_PRODUCT_REQUIRED (CSF_EIGEN CAN_USE_EIGEN) + if (NOT ${CAN_REBUILD_PDC_FOR_TKMATH} EQUAL -1 OR NOT ${CAN_REBUILD_PDC_FOR_STEPFILE} EQUAL -1) + set (BUILD_YACCLEX OFF CACHE BOOL "${BUILD_YACCLEX_DESCR}") + else() + OCCT_CHECK_AND_UNSET (BUILD_YACCLEX) + endif() -# define CSF variable -OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_csf") + if (NOT DEFINED 3RDPARTY_DIR) + set (3RDPARTY_DIR "" CACHE PATH ${3RDPARTY_DIR_DESCR}) + get_filename_component (3RDPARTY_DIR "${3RDPARTY_DIR}" ABSOLUTE) + else() + file (TO_CMAKE_PATH "${3RDPARTY_DIR}" 3RDPARTY_DIR) + set (3RDPARTY_DIR "${3RDPARTY_DIR}" CACHE PATH "${3RDPARTY_DIR_DESCR}" FORCE) + endif() -if (USE_TCL) - message (STATUS "Info: TCL is used by OCCT") - OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/tcl") + OCCT_IS_PRODUCT_REQUIRED (CSF_TclLibs USE_TCL) + if (USE_TCL) + message (STATUS "Info: TCL is used by OCCT") + OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/tcl") - message (STATUS "Info: TK is used by OCCT") - OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/tk") -else() - OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_TCL") - OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_TK") + message (STATUS "Info: TK is used by OCCT") + OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/tk") + else() + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_TCL") + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_TK") - OCCT_CHECK_AND_UNSET ("INSTALL_TCL") - OCCT_CHECK_AND_UNSET ("INSTALL_TK") -endif() + OCCT_CHECK_AND_UNSET ("INSTALL_TCL") + OCCT_CHECK_AND_UNSET ("INSTALL_TK") + endif() -if (USE_FREETYPE) - message (STATUS "Info: Freetype is used by OCCT") - OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/freetype") -else() - OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_FREETYPE") - OCCT_CHECK_AND_UNSET ("3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2") - OCCT_CHECK_AND_UNSET ("3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build") - OCCT_CHECK_AND_UNSET ("INSTALL_FREETYPE") -endif() + OCCT_IS_PRODUCT_REQUIRED (CSF_FREETYPE USE_FREETYPE) + if (USE_FREETYPE) + message (STATUS "Info: Freetype is used by OCCT") + OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/freetype") + else() + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_FREETYPE") + OCCT_CHECK_AND_UNSET ("3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2") + OCCT_CHECK_AND_UNSET ("3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build") + OCCT_CHECK_AND_UNSET ("INSTALL_FREETYPE") + endif() -# VTK -if (USE_VTK) - add_definitions (-DHAVE_VTK) - set (OCCT_VTK_USED_TARGETS "" CACHE INTERNAL "" FORCE) - OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/vtk") -else() - OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_VTK") + # VTK + if (USE_VTK) + add_definitions (-DHAVE_VTK) + set (OCCT_VTK_USED_TARGETS "" CACHE INTERNAL "" FORCE) + OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/vtk") + else() + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_VTK") - if (NOT CAN_USE_VTK EQUAL -1) - message (STATUS "Info: TKIVtk and TKIVtkDraw toolkits excluded due to VTK usage is disabled") + if (NOT CAN_USE_VTK EQUAL -1) + message (STATUS "Info: TKIVtk and TKIVtkDraw toolkits excluded due to VTK usage is disabled") - list (REMOVE_ITEM BUILD_TOOLKITS TKIVtk) - list (REMOVE_ITEM BUILD_TOOLKITS TKIVtkDraw) + list (REMOVE_ITEM BUILD_TOOLKITS TKIVtk) + list (REMOVE_ITEM BUILD_TOOLKITS TKIVtkDraw) + endif() endif() -endif() -# GLX -if (USE_GLX) - add_definitions (-DMACOSX_USE_GLX) - OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/glx") -endif() + # GLX + if (USE_GLX) + add_definitions (-DMACOSX_USE_GLX) + OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/glx") + endif() -# FREEIMAGE -if (CAN_USE_FREEIMAGE) - set (USE_FREEIMAGE OFF CACHE BOOL "${USE_FREEIMAGE_DESCR}") + # FREEIMAGE + OCCT_IS_PRODUCT_REQUIRED (CSF_FreeImagePlus CAN_USE_FREEIMAGE) + if (CAN_USE_FREEIMAGE) + set (USE_FREEIMAGE OFF CACHE BOOL "${USE_FREEIMAGE_DESCR}") - if (USE_FREEIMAGE) - add_definitions (-DHAVE_FREEIMAGE) - OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/freeimage") + if (USE_FREEIMAGE) + add_definitions (-DHAVE_FREEIMAGE) + OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/freeimage") + else() + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_FREEIMAGE") + OCCT_CHECK_AND_UNSET ("INSTALL_FREEIMAGE") + endif() else() + OCCT_CHECK_AND_UNSET ("USE_FREEIMAGE") + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_FREEIMAGE") OCCT_CHECK_AND_UNSET ("INSTALL_FREEIMAGE") endif() -else() - OCCT_CHECK_AND_UNSET ("USE_FREEIMAGE") - - OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_FREEIMAGE") - OCCT_CHECK_AND_UNSET ("INSTALL_FREEIMAGE") -endif() -# OpenVR -# search for CSF_OpenVR variable in EXTERNLIB of each being used toolkit -OCCT_IS_PRODUCT_REQUIRED (CSF_OpenVR CAN_USE_OPENVR) -if (CAN_USE_OPENVR) - set (USE_OPENVR OFF CACHE BOOL "${USE_OPENVR_DESCR}") + # OpenVR + # search for CSF_OpenVR variable in EXTERNLIB of each being used toolkit + OCCT_IS_PRODUCT_REQUIRED (CSF_OpenVR CAN_USE_OPENVR) + if (CAN_USE_OPENVR) + set (USE_OPENVR OFF CACHE BOOL "${USE_OPENVR_DESCR}") - if (USE_OPENVR) - add_definitions (-DHAVE_OPENVR) - OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/openvr") + if (USE_OPENVR) + add_definitions (-DHAVE_OPENVR) + OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/openvr") + else() + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_OPENVR") + OCCT_CHECK_AND_UNSET ("INSTALL_OPENVR") + endif() else() + OCCT_CHECK_AND_UNSET ("USE_OPENVR") + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_OPENVR") OCCT_CHECK_AND_UNSET ("INSTALL_OPENVR") endif() -else() - OCCT_CHECK_AND_UNSET ("USE_OPENVR") - OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_OPENVR") - OCCT_CHECK_AND_UNSET ("INSTALL_OPENVR") -endif() + # FFmpeg + # search for CSF_FFmpeg variable in EXTERNLIB of each being used toolkit + OCCT_IS_PRODUCT_REQUIRED (CSF_FFmpeg CAN_USE_FFMPEG) + if (CAN_USE_FFMPEG) + set (USE_FFMPEG OFF CACHE BOOL "${USE_FFMPEG_DESCR}") -# FFmpeg -# search for CSF_FFmpeg variable in EXTERNLIB of each being used toolkit -OCCT_IS_PRODUCT_REQUIRED (CSF_FFmpeg CAN_USE_FFMPEG) - -if (CAN_USE_FFMPEG) - set (USE_FFMPEG OFF CACHE BOOL "${USE_FFMPEG_DESCR}") - - if (USE_FFMPEG) - add_definitions (-DHAVE_FFMPEG) - OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/ffmpeg") + if (USE_FFMPEG) + add_definitions (-DHAVE_FFMPEG) + OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/ffmpeg") + else() + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_FFMPEG") + OCCT_CHECK_AND_UNSET ("INSTALL_FFMPEG") + endif() else() + OCCT_CHECK_AND_UNSET ("USE_FFMPEG") + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_FFMPEG") OCCT_CHECK_AND_UNSET ("INSTALL_FFMPEG") endif() -else() - OCCT_CHECK_AND_UNSET ("USE_FFMPEG") - OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_FFMPEG") - OCCT_CHECK_AND_UNSET ("INSTALL_FFMPEG") -endif() - -# OpenGL -if (CAN_USE_OPENGL) - if (USE_OPENGL) - add_definitions (-DHAVE_OPENGL_EXT) + # OpenGL + OCCT_IS_PRODUCT_REQUIRED (CSF_OpenGlLibs CAN_USE_OPENGL) + if (CAN_USE_OPENGL) + if (USE_OPENGL) + add_definitions (-DHAVE_OPENGL_EXT) + else() + list (REMOVE_ITEM BUILD_TOOLKITS TKOpenGl) + list (REMOVE_ITEM BUILD_TOOLKITS TKOpenGlTest) + endif() else() - list (REMOVE_ITEM BUILD_TOOLKITS TKOpenGl) - list (REMOVE_ITEM BUILD_TOOLKITS TKOpenGlTest) + OCCT_CHECK_AND_UNSET ("USE_OPENGL") endif() -else() - OCCT_CHECK_AND_UNSET ("USE_OPENGL") -endif() -# OpenGL ES 2.0 -if (CAN_USE_GLES2) - if (USE_GLES2) - add_definitions (-DHAVE_GLES2_EXT) - OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/egl") - OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/gles2") + # OpenGL ES 2.0 + OCCT_IS_PRODUCT_REQUIRED (CSF_OpenGlesLibs CAN_USE_GLES2) + if (CAN_USE_GLES2) + if (USE_GLES2) + add_definitions (-DHAVE_GLES2_EXT) + OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/egl") + OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/gles2") + else() + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_EGL") + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_GLES2") + OCCT_CHECK_AND_UNSET ("INSTALL_EGL") + OCCT_CHECK_AND_UNSET ("INSTALL_GLES2") + list (REMOVE_ITEM BUILD_TOOLKITS TKOpenGles) + list (REMOVE_ITEM BUILD_TOOLKITS TKOpenGlesTest) + endif() else() + OCCT_CHECK_AND_UNSET ("USE_GLES2") + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_EGL") OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_GLES2") OCCT_CHECK_AND_UNSET ("INSTALL_EGL") OCCT_CHECK_AND_UNSET ("INSTALL_GLES2") - list (REMOVE_ITEM BUILD_TOOLKITS TKOpenGles) - list (REMOVE_ITEM BUILD_TOOLKITS TKOpenGlesTest) + endif() + + # D3D + if (USE_D3D) + add_definitions (-DHAVE_D3D) + #if(MSVC_VERSION LESS 1700) + #OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/d3d") + #endif() + else() + list (REMOVE_ITEM BUILD_TOOLKITS TKD3DHost) + list (REMOVE_ITEM BUILD_TOOLKITS TKD3DHostTest) endif() else() + OCCT_CHECK_AND_UNSET (USE_VTK) + OCCT_CHECK_AND_UNSET (BUILD_YACCLEX) + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_TCL") + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_TK") + OCCT_CHECK_AND_UNSET ("INSTALL_TCL") + OCCT_CHECK_AND_UNSET ("INSTALL_TK") + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_FREETYPE") + OCCT_CHECK_AND_UNSET ("3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2") + OCCT_CHECK_AND_UNSET ("3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build") + OCCT_CHECK_AND_UNSET ("INSTALL_FREETYPE") + OCCT_CHECK_AND_UNSET ("USE_FREEIMAGE") + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_FREEIMAGE") + OCCT_CHECK_AND_UNSET ("INSTALL_FREEIMAGE") OCCT_CHECK_AND_UNSET ("USE_GLES2") - OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_EGL") OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_GLES2") OCCT_CHECK_AND_UNSET ("INSTALL_EGL") - OCCT_CHECK_AND_UNSET ("INSTALL_GLES2") -endif() - -# D3D -if (USE_D3D) - add_definitions (-DHAVE_D3D) - #if(MSVC_VERSION LESS 1700) - #OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/d3d") - #endif() -else() - list (REMOVE_ITEM BUILD_TOOLKITS TKD3DHost) - list (REMOVE_ITEM BUILD_TOOLKITS TKD3DHostTest) + OCCT_CHECK_AND_UNSET ("INSTALL_GLES2") + OCCT_CHECK_AND_UNSET ("USE_GL2PS") + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_GL2PS") + OCCT_CHECK_AND_UNSET ("INSTALL_GL2PS") + OCCT_CHECK_AND_UNSET ("USE_FFMPEG") + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_FFMPEG") + OCCT_CHECK_AND_UNSET ("INSTALL_FFMPEG") + OCCT_CHECK_AND_UNSET ("USE_OPENVR") + OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_OPENVR") + OCCT_CHECK_AND_UNSET ("INSTALL_OPENVR") endif() # TBB +OCCT_IS_PRODUCT_REQUIRED (CSF_TBB CAN_USE_TBB) if (NOT DEFINED ANDROID AND CAN_USE_TBB) set (USE_TBB OFF CACHE BOOL "${USE_TBB_DESCR}") @@ -694,6 +736,8 @@ else() endif() # EIGEN +# search for CSF_EIGEN variable in EXTERNLIB of each being used toolkit +OCCT_IS_PRODUCT_REQUIRED (CSF_EIGEN CAN_USE_EIGEN) if (CAN_USE_EIGEN) set (USE_EIGEN OFF CACHE BOOL "${USE_EIGEN_DESCR}") @@ -711,8 +755,11 @@ else() OCCT_CHECK_AND_UNSET ("INSTALL_EIGEN") endif() +# define CSF variable +OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_csf") + # Doxygen -if (BUILD_DOC_Overview) +if (NOT MINIMAL_BUILD AND BUILD_DOC_Overview) if (NOT DEFINED INSTALL_DOC_Overview) set (INSTALL_DOC_Overview OFF CACHE BOOL "${INSTALL_DOC_Overview_DESCR}") endif() diff --git a/adm/MODULES_MIN b/adm/MODULES_MIN new file mode 100644 index 0000000000..f4161eedda --- /dev/null +++ b/adm/MODULES_MIN @@ -0,0 +1,6 @@ +FoundationClasses TKernel TKMath +ModelingData TKG2d TKG3d TKGeomBase TKBRep +ModelingAlgorithms TKGeomAlgo TKTopAlgo TKPrim TKBO TKBool TKHLR TKFillet TKOffset TKMesh TKShHealing +Visualization TKService TKV3d +ApplicationFramework TKCDF TKLCAF TKCAF TKBinL TKBin TKVCAF +DataExchange TKXSBase TKSTEPBase TKSTEPAttr TKSTEP209 TKSTEP TKIGES TKXCAF TKXDEIGES TKXDESTEP TKBinXCAF diff --git a/adm/cmake/occt_csf.cmake b/adm/cmake/occt_csf.cmake index 4d716241b0..4c022fb836 100644 --- a/adm/cmake/occt_csf.cmake +++ b/adm/cmake/occt_csf.cmake @@ -114,10 +114,14 @@ else() set (CSF_androidlog "log") elseif (UNIX) set (CSF_ThreadLibs "pthread rt stdc++") - set (CSF_OpenGlLibs "GL") - set (CSF_OpenGlesLibs "EGL GLESv2") - set (CSF_XwLibs "X11 Xext Xmu Xi") + + if (NOT MINIMAL_BUILD) + set (CSF_OpenGlLibs "GL") + set (CSF_OpenGlesLibs "EGL GLESv2") + set (CSF_XwLibs "X11 Xext Xmu Xi") + set (CSF_fontconfig "fontconfig") + endif() + set (CSF_dl "dl") - set (CSF_fontconfig "fontconfig") endif() endif() diff --git a/adm/cmake/vardescr.cmake b/adm/cmake/vardescr.cmake index 19182d8e9b..37658aa49d 100644 --- a/adm/cmake/vardescr.cmake +++ b/adm/cmake/vardescr.cmake @@ -194,6 +194,8 @@ set (USE_GLX_DESCR "Indicates whether X11 OpenGl on OSX is used or not") set (USE_D3D_DESCR "Indicates whether optional Direct3D wrapper in OCCT visualization module should be build or not") +set (MINIMAL_BUILD_DESCR "Indicates whether minimal build should be produced.") + macro (BUILD_MODULE MODULE_NAME) set (ENABLE_MODULE TRUE) set (BUILD_MODULE_${MODULE_NAME} ${ENABLE_MODULE} CACHE BOOL "${BUILD_MODULE_${MODULE_NAME}_DESCR}") diff --git a/src/AIS/AIS_TextLabel.cxx b/src/AIS/AIS_TextLabel.cxx index f20758e852..6a81a981d4 100644 --- a/src/AIS/AIS_TextLabel.cxx +++ b/src/AIS/AIS_TextLabel.cxx @@ -15,9 +15,11 @@ #include #include +#ifndef OCC_MINIMAL_BUILD #include #include #include +#endif #include #include #include @@ -404,6 +406,8 @@ Standard_Boolean AIS_TextLabel::calculateLabelParams (const gp_Pnt& thePosition, { // Get width and height of text Handle(Prs3d_TextAspect) anAsp = myDrawer->TextAspect(); + +#ifndef OCC_MINIMAL_BUILD Font_FTFontParams aFontParams; aFontParams.PointSize = (unsigned int) anAsp->Height(); aFontParams.Resolution = GetContext()->CurrentViewer()->DefaultRenderingParams().Resolution; @@ -440,6 +444,9 @@ Standard_Boolean AIS_TextLabel::calculateLabelParams (const gp_Pnt& thePosition, } return Standard_True; +#else + return Standard_False; +#endif } //======================================================================= diff --git a/src/Aspect/Aspect_DisplayConnection.cxx b/src/Aspect/Aspect_DisplayConnection.cxx index 53a7d3a161..0149fecb1c 100755 --- a/src/Aspect/Aspect_DisplayConnection.cxx +++ b/src/Aspect/Aspect_DisplayConnection.cxx @@ -24,7 +24,7 @@ IMPLEMENT_STANDARD_RTTIEXT(Aspect_DisplayConnection,Standard_Transient) // ======================================================================= Aspect_DisplayConnection::Aspect_DisplayConnection() { -#if !defined(_WIN32) && (!defined(__APPLE__) || defined(MACOSX_USE_GLX)) && !defined(__ANDROID__) && !defined(__QNX__) && !defined(__EMSCRIPTEN__) +#if !defined(_WIN32) && (!defined(__APPLE__) || defined(MACOSX_USE_GLX)) && !defined(__ANDROID__) && !defined(__QNX__) && !defined(__EMSCRIPTEN__) && !defined (OCC_MINIMAL_BUILD) myDisplay = NULL; myDefVisualInfo = NULL; myDefFBConfig = NULL; @@ -41,7 +41,7 @@ Aspect_DisplayConnection::Aspect_DisplayConnection() // ======================================================================= Aspect_DisplayConnection::~Aspect_DisplayConnection() { -#if !defined(_WIN32) && (!defined(__APPLE__) || defined(MACOSX_USE_GLX)) && !defined(__ANDROID__) && !defined(__QNX__) && !defined(__EMSCRIPTEN__) +#if !defined(_WIN32) && (!defined(__APPLE__) || defined(MACOSX_USE_GLX)) && !defined(__ANDROID__) && !defined(__QNX__) && !defined(__EMSCRIPTEN__) && !defined (OCC_MINIMAL_BUILD) if (myDefVisualInfo != NULL) { XFree (myDefVisualInfo); @@ -54,7 +54,7 @@ Aspect_DisplayConnection::~Aspect_DisplayConnection() #endif } -#if !defined(_WIN32) && (!defined(__APPLE__) || defined(MACOSX_USE_GLX)) && !defined(__ANDROID__) && !defined(__QNX__) && !defined(__EMSCRIPTEN__) +#if !defined(_WIN32) && (!defined(__APPLE__) || defined(MACOSX_USE_GLX)) && !defined(__ANDROID__) && !defined(__QNX__) && !defined(__EMSCRIPTEN__) && !defined (OCC_MINIMAL_BUILD) // ======================================================================= // function : Aspect_DisplayConnection // purpose : diff --git a/src/Font/Font_FTFont.cxx b/src/Font/Font_FTFont.cxx index 5464195e2a..5aa3c1a51e 100755 --- a/src/Font/Font_FTFont.cxx +++ b/src/Font/Font_FTFont.cxx @@ -13,6 +13,8 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. +#ifndef OCC_MINIMAL_BUILD + #include #include @@ -621,3 +623,5 @@ const FT_Outline* Font_FTFont::renderGlyphOutline (const Standard_Utf32Char theC } return &myActiveFTFace->glyph->outline; } + +#endif diff --git a/src/Font/Font_FTLibrary.cxx b/src/Font/Font_FTLibrary.cxx index 31976bffc3..856c96b4ea 100755 --- a/src/Font/Font_FTLibrary.cxx +++ b/src/Font/Font_FTLibrary.cxx @@ -13,6 +13,8 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. +#ifndef OCC_MINIMAL_BUILD + #include #include @@ -44,3 +46,5 @@ Font_FTLibrary::~Font_FTLibrary() FT_Done_FreeType (myFTLib); } } + +#endif diff --git a/src/Font/Font_FontMgr.cxx b/src/Font/Font_FontMgr.cxx index 620f841018..fb3d3308d3 100644 --- a/src/Font/Font_FontMgr.cxx +++ b/src/Font/Font_FontMgr.cxx @@ -13,6 +13,8 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. +#ifndef OCC_MINIMAL_BUILD + #include #include @@ -1158,3 +1160,5 @@ Handle(NCollection_Buffer) Font_FontMgr::EmbedFallbackFont() Font_DejavuSans_Latin_woff_size, const_cast(Font_DejavuSans_Latin_woff)); } + +#endif diff --git a/src/Font/Font_TextFormatter.cxx b/src/Font/Font_TextFormatter.cxx index c32f253f87..6bdeb40fee 100644 --- a/src/Font/Font_TextFormatter.cxx +++ b/src/Font/Font_TextFormatter.cxx @@ -13,6 +13,8 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. +#ifndef OCC_MINIMAL_BUILD + #include #include @@ -424,3 +426,5 @@ Standard_ShortReal Font_TextFormatter::LineWidth (const Standard_Integer theInde return 0; } + +#endif diff --git a/src/PrsDim/PrsDim_Dimension.cxx b/src/PrsDim/PrsDim_Dimension.cxx index eea797ce7f..966a48b034 100644 --- a/src/PrsDim/PrsDim_Dimension.cxx +++ b/src/PrsDim/PrsDim_Dimension.cxx @@ -23,8 +23,12 @@ #include #include #include + +#ifndef OCC_MINIMAL_BUILD #include #include +#endif + #include #include #include @@ -311,6 +315,7 @@ TCollection_ExtendedString PrsDim_Dimension::GetValueString (Standard_Real& theW theWidth = 0.0; +#ifndef OCC_MINIMAL_BUILD if (myDrawer->DimensionAspect()->IsText3d()) { // text width produced by BRepFont @@ -341,6 +346,7 @@ TCollection_ExtendedString PrsDim_Dimension::GetValueString (Standard_Real& theW } } } +#endif return aValueStr; } @@ -412,6 +418,9 @@ void PrsDim_Dimension::drawText (const Handle(Prs3d_Presentation)& thePresentati const Standard_Integer theLabelPosition) { Handle(Graphic3d_Group) aGroup = thePresentation->NewGroup(); + + +#ifndef OCC_MINIMAL_BUILD if (myDrawer->DimensionAspect()->IsText3d()) { // getting font parameters @@ -545,6 +554,9 @@ void PrsDim_Dimension::drawText (const Handle(Prs3d_Presentation)& thePresentati return; } +#else + (void)theLabelPosition; +#endif // generate primitives for 2D text myDrawer->DimensionAspect()->TextAspect()->Aspect()->SetDisplayType (Aspect_TODT_DIMENSION); diff --git a/src/StdPrs/StdPrs_BRepFont.cxx b/src/StdPrs/StdPrs_BRepFont.cxx index 177601b9e9..1686b996c2 100644 --- a/src/StdPrs/StdPrs_BRepFont.cxx +++ b/src/StdPrs/StdPrs_BRepFont.cxx @@ -12,6 +12,8 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. +#ifndef OCC_MINIMAL_BUILD + #include #include @@ -670,3 +672,5 @@ Standard_Boolean StdPrs_BRepFont::renderGlyph (const Standard_Utf32Char theChar, myCache.Bind (theChar, theShape); return !theShape.IsNull(); } + +#endif \ No newline at end of file diff --git a/src/StdPrs/StdPrs_BRepTextBuilder.cxx b/src/StdPrs/StdPrs_BRepTextBuilder.cxx index 9facb1d7f6..0769f31248 100644 --- a/src/StdPrs/StdPrs_BRepTextBuilder.cxx +++ b/src/StdPrs/StdPrs_BRepTextBuilder.cxx @@ -12,6 +12,7 @@ // // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. +#ifndef OCC_MINIMAL_BUILD #include @@ -75,3 +76,5 @@ TopoDS_Shape StdPrs_BRepTextBuilder::Perform (StdPrs_BRepFont& return Perform (theFont, aFormatter, thePenLoc); } + +#endif \ No newline at end of file diff --git a/src/Xw/Xw_Window.cxx b/src/Xw/Xw_Window.cxx index c3d9de7016..6ac8abccba 100644 --- a/src/Xw/Xw_Window.cxx +++ b/src/Xw/Xw_Window.cxx @@ -15,7 +15,7 @@ #include -#if !defined(_WIN32) && (!defined(__APPLE__) || defined(MACOSX_USE_GLX)) && !defined(__ANDROID__) && !defined(__QNX__) && !defined(__EMSCRIPTEN__) +#if !defined(_WIN32) && (!defined(__APPLE__) || defined(MACOSX_USE_GLX)) && !defined(__ANDROID__) && !defined(__QNX__) && !defined(__EMSCRIPTEN__) && !defined (OCC_MINIMAL_BUILD) #include #include -- 2.39.5