mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +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:
@@ -20,6 +20,11 @@
|
||||
#include <IVtkTools_SubPolyDataFilter.hxx>
|
||||
#include <NCollection_DataMap.hxx>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable: 4251) // avoid warning C4251: "class needs to have dll-interface..."
|
||||
#endif
|
||||
|
||||
//! @class IVtkTools_DisplayModeFilter
|
||||
//! @brief Cells filter according to the selected display mode by mesh parts types.
|
||||
//! This filter is used to get parts of a shape according to different
|
||||
@@ -55,5 +60,9 @@ protected:
|
||||
bool myDoDisplaySharedVertices;
|
||||
};
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#endif // IVtkTOOLS_DISPLAYMODEFILTER_H
|
||||
|
||||
|
@@ -24,6 +24,11 @@
|
||||
class vtkIdTypeArray;
|
||||
class vtkPolyData;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable: 4251) // avoid warning C4251: "class needs to have dll-interface..."
|
||||
#endif
|
||||
|
||||
//! @class IVtkTools_ShapeDataSource.
|
||||
//! @brief VTK data source for OCC shapes polygonal data.
|
||||
class IVtkTools_EXPORT IVtkTools_ShapeDataSource : public vtkPolyDataAlgorithm
|
||||
@@ -113,4 +118,8 @@ protected:
|
||||
|
||||
};
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#endif // __IVTKTOOLS_SHAPEDATA_H__
|
||||
|
@@ -27,6 +27,11 @@ class vtkDataSet;
|
||||
class vtkInformationObjectBaseKey;
|
||||
class IVtkTools_ShapeDataSource;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable: 4251) // avoid warning C4251: "class needs to have dll-interface..."
|
||||
#endif
|
||||
|
||||
//! @class IVtkTools_ShapeObject
|
||||
//! @brief VTK holder class for OCC shapes to pass them through pipelines.
|
||||
//!
|
||||
@@ -82,4 +87,8 @@ private: // OCC
|
||||
static KeyPtr myKey;
|
||||
};
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#endif // __IVTKTOOLS_SHAPEOBJECT_H__
|
||||
|
@@ -25,6 +25,11 @@
|
||||
class vtkRenderer;
|
||||
class vtkActorCollection;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable: 4251) // avoid warning C4251: "class needs to have dll-interface..."
|
||||
#endif
|
||||
|
||||
//! @class IVtkTools_ShapePicker
|
||||
//! @brief VTK picker for OCC shapes with OCC selection algorithm.
|
||||
class IVtkTools_EXPORT IVtkTools_ShapePicker : public vtkAbstractPropPicker
|
||||
@@ -158,4 +163,8 @@ private:
|
||||
float myTolerance; //!< Selectoin tolerance
|
||||
};
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#endif // __IVTKTOOLS_SHAPEPICKER_H__
|
||||
|
@@ -64,7 +64,7 @@ int IVtkTools_SubPolyDataFilter::RequestData (vtkInformation *vtkNotUsed(theRequ
|
||||
if (myDoFiltering)
|
||||
{
|
||||
vtkSmartPointer<vtkCellData> aCellData = anInput->GetCellData();
|
||||
int aSize = 0;
|
||||
vtkIdType aSize = 0;
|
||||
vtkSmartPointer<vtkIdTypeArray> aDataArray =
|
||||
vtkIdTypeArray::SafeDownCast (aCellData->GetArray (myIdsArrayName));
|
||||
|
||||
|
@@ -20,6 +20,11 @@
|
||||
|
||||
#include "vtkPolyDataAlgorithm.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable: 4251) // avoid warning C4251: "class needs to have dll-interface..."
|
||||
#endif
|
||||
|
||||
//! @class IVtkTools_SubPolyDataFilter
|
||||
//! @brief Cells filter according to the given set of cells ids.
|
||||
class IVtkTools_EXPORT IVtkTools_SubPolyDataFilter : public vtkPolyDataAlgorithm
|
||||
@@ -65,4 +70,8 @@ protected:
|
||||
bool myDoFiltering;
|
||||
};
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
#endif // IVtkTOOLS_SUBPOLYDATAFILTER_H
|
||||
|
Reference in New Issue
Block a user