occt: master 896faa72

Author Committer Branch Timestamp Parent
abv bugmaster master 2017-06-29 17:17:39 master a07cff69
Affected Issues  0028417: Using PRECOMPILED HEADER to speed up compilation time
Changeset 0028417: Using PRECOMPILED HEADER to speed up compilation time

Use of Cotire tool is introduced for acceleration of CMake builds, by usage of precompiled headers.
CMake option BUILD_USE_PCH is added to enable / disable use of precompiled headers

When precompiled headers are used, additional compiler macros are defined globally in the build system to avoid problems due to different order of included files:
- NOMINMAX is defined on Windows to prevent defining "min" and "max" as macros by windows.h
- STRSAFE_NO_DEPRECATE and _SCL_SECURE_NO_WARNINGS are defined on Windows to prevent declaring functions of standard C library as deprecated by #pragma, and other warnings in system headers
- GL_GLEXT_LEGACY and GLX_GLEXT_LEGACY are defined to ensure that only OCCT's own glext.h is used
- __STDC_FORMAT_MACROS is defined to have standard C print format macros always defined

Code is corrected to avoid conflicts with system headers and in case of compiling together as unity builds (partially):
- Some locally defined variables in TKV3d, TKHLR are renamed to be unique
- Duplicated definitions of macros and global functions are eliminated in TKSTEP
- Useless header WNT_UInt.hxx is removed
- Usage of local variables conflicting with X11 macro is avoided in Draw_Viewer.cxx
- Local variables in AIS_ConcentricRelation.cxx are renamed to avoid conflict with macros defined in windows.h
- HXX files containing code are renamed to PXX or merged with corresponding CXX files.

IVtkTools classes are corrected to avoid compiler warnings disabled in non-PCH builds by inclusion of VTK headers.

Useless pragmas disabling warnings on MSVC are removed
add - adm/cmake/cotire.cmake Diff File
mod - adm/cmake/occt_toolkit.cmake Diff File
mod - adm/cmake/vardescr.cmake Diff File
mod - CMakeLists.txt Diff File
mod - dox/dev_guides/upgrade/upgrade.md Diff File
mod - dox/overview/overview.md Diff File
mod - src/AIS/AIS_ConcentricRelation.cxx Diff File
mod - src/AIS/AIS_InteractiveContext_1.cxx Diff File
mod - src/AIS/AIS_LocalContext_1.cxx Diff File
mod - src/BOPDS/BOPDS_PassKey.cxx Diff File
mod - src/BOPDS/BOPDS_PaveBlock.cxx Diff File
mod - src/DDF/DDF_IOStream.hxx Diff File
mod - src/DPrsStd/DPrsStd.cxx Diff File
mod - src/Draw/Draw_Viewer.cxx Diff File
mod - src/Geom/Geom_Ellipse.cxx Diff File
mod - src/gp/gp_GTrsf.hxx Diff File
mod - src/gp/gp_Trsf.hxx Diff File
mod - src/Graphic3d/Graphic3d_Texture1D.cxx Diff File
mod - src/Graphic3d/Graphic3d_Texture2D.cxx Diff File
mod - src/Graphic3d/Graphic3d_TextureEnv.cxx Diff File
mod - src/HLRAlgo/HLRAlgo_PolyData.cxx Diff File
mod - src/HLRAlgo/HLRAlgo_PolyInternalData.cxx Diff File
mod - src/HLRBRep/HLRBRep_InternalAlgo.cxx Diff File
mod - src/IGESSelect/IGESSelect_IGESTypeForm.hxx Diff File
mod - src/IntTools/IntTools.cxx Diff File
mod - src/IntTools/IntTools_EdgeFace.cxx Diff File
mod - src/IVtkDraw/IVtkDraw.cxx Diff File
mod - src/IVtkDraw/IVtkDraw_Interactor.cxx Diff File
mod - src/IVtkTools/IVtkTools_DisplayModeFilter.hxx Diff File
mod - src/IVtkTools/IVtkTools_ShapeDataSource.hxx Diff File
mod - src/IVtkTools/IVtkTools_ShapeObject.hxx Diff File
mod - src/IVtkTools/IVtkTools_ShapePicker.hxx Diff File
mod - src/IVtkTools/IVtkTools_SubPolyDataFilter.cxx Diff File
mod - src/IVtkTools/IVtkTools_SubPolyDataFilter.hxx Diff File
mod - src/Message/Message_ProgressScale.cxx Diff File
mod - src/OpenGl/OpenGl_Context_1.mm Diff File
mod - src/OpenGl/OpenGl_Window_1.mm Diff File
mod - src/OSD/OSD_Chronometer.cxx Diff File
mod - src/OSD/OSD_DirectoryIterator.cxx Diff File
mod - src/OSD/OSD_Disk.cxx Diff File
mod - src/OSD/OSD_Environment.cxx Diff File
mod - src/OSD/OSD_Error.cxx Diff File
mod - src/OSD/OSD_FileIterator.cxx Diff File
mod - src/OSD/OSD_FileNode.cxx Diff File
mod - src/OSD/OSD_Host.cxx Diff File
mod - src/OSD/OSD_signal.cxx Diff File
mod - src/OSD/OSD_Timer.cxx Diff File
mod - src/PLib/FILES Diff File
mod - src/PLib/PLib_JacobiPolynomial.cxx Diff File
mod - src/Poly/Poly_CoherentNode.cxx Diff File
mod - src/QANCollection/QANCollection_Stl.cxx Diff File
mod - src/RWStepAP214/RWStepAP214_ReadWriteModule.cxx Diff File
mod - src/SelectMgr/SelectMgr_SelectableObjectSet.cxx Diff File
mod - src/SelectMgr/SelectMgr_ViewerSelector.cxx Diff File
mod - src/Standard/Standard_OutOfMemory.cxx Diff File
mod - src/StdDrivers/StdDrivers.cxx Diff File
mod - src/StdLDrivers/StdLDrivers.cxx Diff File
mod - src/STEPCAFControl/STEPCAFControl_Reader.cxx Diff File
mod - src/StepDimTol/StepDimTol_ToleranceZone.hxx Diff File
mod - src/TNaming/TNaming_Naming.cxx Diff File
mod - src/TNaming/TNaming_NCollections.hxx Diff File
mod - src/TObjDRAW/TObjDRAW.cxx Diff File
mod - src/TopOpeBRep/TopOpeBRep_FacesFiller.cxx Diff File
mod - src/TopOpeBRepBuild/FILES Diff File
mod - src/TopOpeBRepBuild/TopOpeBRepBuild_Builder.cxx Diff File
mod - src/TopOpeBRepBuild/TopOpeBRepBuild_BuilderON.cxx Diff File
rm - src/TopOpeBRepBuild/TopOpeBRepBuild_Fill.pxx Diff File
mod - src/TopOpeBRepBuild/TopOpeBRepBuild_ShapeListOfShape.cxx Diff File
rm - src/TopOpeBRepBuild/TopOpeBRepBuild_SplitEdge.hxx Diff File
rm - src/TopOpeBRepBuild/TopOpeBRepBuild_SplitFace.hxx Diff File
rm - src/TopOpeBRepBuild/TopOpeBRepBuild_SplitShapes.hxx Diff File
rm - src/TopOpeBRepBuild/TopOpeBRepBuild_SplitSolid.pxx Diff File
mod - src/TopOpeBRepBuild/TopOpeBRepBuild_WireEdgeClassifier.cxx Diff File
mod - src/TopOpeBRepTool/FILES Diff File
rm - src/TopOpeBRepTool/TopOpeBRepTool_closing.cxx Diff File
mod - src/TopOpeBRepTool/TopOpeBRepTool_CORRISO.cxx Diff File
mod - src/TopOpeBRepTool/TopOpeBRepTool_define.hxx Diff File
mod - src/TopOpeBRepTool/TopOpeBRepTool_faulty.cxx Diff File
mod - src/TopOpeBRepTool/TopOpeBRepTool_PURGE.hxx Diff File
mod - src/TopOpeBRepTool/TopOpeBRepTool_SC.hxx Diff File
mod - src/TopOpeBRepTool/TopOpeBRepTool_TOPOLOGY.cxx Diff File
mod - src/TopOpeBRepTool/TopOpeBRepTool_TOPOLOGY.hxx Diff File
mod - src/TopTrans/TopTrans_SurfaceTransition.cxx Diff File
mod - src/VrmlData/VrmlData_Geometry.cxx Diff File
mod - src/VrmlData/VrmlData_ShapeConvert.cxx Diff File
mod - src/WNT/FILES Diff File
rm - src/WNT/WNT_Uint.hxx Diff File
mod - src/WNT/WNT_WClass.cxx Diff File
mod - src/WNT/WNT_WClass.hxx Diff File
mod - src/XSDRAWSTLVRML/XSDRAWSTLVRML.cxx Diff File