Minimal Build Setting for given Application

Hello, I have a working OCCT installation, and I would like to make the build as small as possible to reduce compilation time. Currently, I have two modules disabled (-DBUILD_MODULE_Draw=FALSE, -DBUILD_MODULE_DETools=FALSE) because I lack requirements and don't need their functionality anyway.

My first question is: are modules the only way to make the build smaller, or are there other things that can be deactivated through CMake to achieve a smaller build? I am aware of these options; are there more?

BUILD_MODULE_ApplicationFramework:BOOL=TRUE
BUILD_MODULE_DETools:BOOL=FALSE
BUILD_MODULE_DataExchange:BOOL=TRUE
BUILD_MODULE_Draw:BOOL=FALSE
BUILD_MODULE_FoundationClasses:BOOL=TRUE
BUILD_MODULE_ModelingAlgorithms:BOOL=TRUE
BUILD_MODULE_ModelingData:BOOL=TRUE
BUILD_MODULE_Visualization:BOOL=TRUE

The second question is: for the following include statements, how do I figure out which modules I can safely deactivate?

#include <STEPControl_Reader.hxx>
#include <IGESControl_Reader.hxx>
#include <IFSelect_ReturnStatus.hxx>
#include <TopoDS.hxx>
#include <Bnd_Box.hxx>
#include <BRepBndLib.hxx>
#include <TopExp_Explorer.hxx>
#include <TopAbs_ShapeEnum.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <gp_XYZ.hxx>
#include <gp_Pnt.hxx>
#include <BRepTools.hxx>
#include <BRepBuilderAPI_MakeVertex.hxx>
#include <BRepClass3d_SolidClassifier.hxx>
#include <BRepMesh_IncrementalMesh.hxx>
#include <Poly_CoherentTriangulation.hxx>
#include <GeomAPI_ProjectPointOnSurf.hxx>
#include <Geom_Surface.hxx>
#include <BRep_Builder.hxx>
#include <BRepBndLib.hxx>
#include <BVH_PrimitiveSet.hxx>
#include <Poly_Triangulation.hxx>
#include <Precision.hxx>
#include <TopExp.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Face.hxx>

Thanks to anyone for advice.

Dmitrii Pasukhin's picture

Hello, there are available to disable nothing more on normal way. For now CMake has no so target specification. Needs to update some code directly.

In 7.7 or lower you can disable Application framework module and visualization. On 7.8 it is not possible. On 7.9 this option will return, but it will be later.

Best regards, Dmitrii.