1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-19 13:40:49 +03:00

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
This commit is contained in:
abv
2017-06-29 20:17:39 +03:00
committed by bugmaster
parent a07cff6957
commit 896faa7296
91 changed files with 5213 additions and 1746 deletions

View File

@@ -279,35 +279,8 @@ Standard_Boolean TopOpeBRep_FacesFiller::CheckLine(TopOpeBRep_LineInter& L) cons
Standard_Real parB = B.ParameterOnLine();
Standard_Boolean conf = (fabs(parA-parB) < tol1);
if (conf) {
//modified by NIZHNY-MZV Wed Dec 1 09:53:08 1999
check = Msf;
//modified by NIZHNY-MZV Wed Dec 1 09:53:18 1999 Standard_Boolean isp = L.IsPeriodic();
//modified by NIZHNY-MZV Wed Dec 1 09:53:20 1999 if (isp) {
//modified by NIZHNY-MZV Wed Dec 1 09:53:21 1999 Handle(Geom_Circle) C = Handle(Geom_Circle)::DownCast(L.Curve());
//modified by NIZHNY-MZV Wed Dec 1 09:53:22 1999 Standard_Real per = C->Period();
//modified by NIZHNY-MZV Wed Dec 1 09:53:23 1999 parB = parA + per;
//modified by NIZHNY-MZV Wed Dec 1 09:53:25 1999 }
}
//modified by NIZHNY-MZV Wed Dec 1 09:53:32 1999 Standard_Real t = 0.2567899311;
//modified by NIZHNY-MZV Wed Dec 1 09:53:33 1999 Standard_Real p = (1-t)*parA + t*parB;
//modified by NIZHNY-MZV Wed Dec 1 09:53:34 1999 Handle(Geom_Curve) GC = myLine->Curve();
//modified by NIZHNY-MZV Wed Dec 1 09:53:34 1999 const TopoDS_Face& F1 = TopoDS::Face(myF1);
//modified by NIZHNY-MZV Wed Dec 1 09:53:35 1999 const TopoDS_Face& F2 = TopoDS::Face(myF2);
//modified by NIZHNY-MZV Wed Dec 1 09:53:36 1999 Handle(Geom_Surface) GS1 = BRep_Tool::Surface(F1);
//modified by NIZHNY-MZV Wed Dec 1 09:53:36 1999 Handle(Geom_Surface) GS2 = BRep_Tool::Surface(F2);
//modified by NIZHNY-MZV Wed Dec 1 09:53:37 1999 Handle(Geom2d_Curve) C1 = GeomProjLib::Curve2d(GC,parA,parB,GS1);
//modified by NIZHNY-MZV Wed Dec 1 09:53:38 1999 Handle(Geom2d_Curve) C2 = GeomProjLib::Curve2d(GC,parA,parB,GS2);
//modified by NIZHNY-MZV Wed Dec 1 09:53:39 1999 gp_Pnt2d P1 = C1->Value(p);
//modified by NIZHNY-MZV Wed Dec 1 09:53:44 1999 gp_Pnt2d P2 = C2->Value(p);
//modified by NIZHNY-MZV Wed Dec 1 09:53:45 1999 TopOpeBRep_PointClassifier* pcl = (TopOpeBRep_PointClassifier*)((void*)&myPointClassifier);
//modified by NIZHNY-MZV Wed Dec 1 09:53:46 1999 TopAbs_State staP1 = pcl->Classify(F1,P1,tol1);
//modified by NIZHNY-MZV Wed Dec 1 09:53:47 1999 TopAbs_State staP2 = pcl->Classify(F2,P2,tol1);
//modified by NIZHNY-MZV Wed Dec 1 09:53:48 1999Standard_Boolean ok1 = (staP1 == TopAbs_IN || staP1 == TopAbs_ON);
//modified by NIZHNY-MZV Wed Dec 1 09:53:49 1999 Standard_Boolean ok2 = (staP2 == TopAbs_IN || staP2 == TopAbs_ON);
//modified by NIZHNY-MZV Wed Dec 1 09:53:50 1999 check = (ok1 && ok2);
check = Standard_False;
}
}
} // CIRCLE
else if (t == TopOpeBRep_HYPERBOLA) {