Use precompiled headers to speed up build

* Add precompiled headers to Commands, and improve usage
* Use precompiled headers on github action
This commit is contained in:
Magne Sjaastad 2023-08-11 12:41:40 +02:00 committed by GitHub
parent 5a18442ed1
commit 45be0e6d6d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 56 additions and 1 deletions

View File

@ -196,6 +196,7 @@ jobs:
-D RESINSIGHT_BUNDLE_OPENSSL=true
-D RESINSIGHT_INCLUDE_APPLICATION_UNIT_TESTS=true
-D RESINSIGHT_TREAT_WARNINGS_AS_ERRORS=true
-D RESINSIGHT_ENABLE_PRECOMPILED_HEADERS=true
-D RESINSIGHT_ENABLE_UNITY_BUILD=${{ matrix.config.unity-build }}
-D RESINSIGHT_ENABLE_GRPC=${{ matrix.config.build-python-module }}
-D RESINSIGHT_GRPC_PYTHON_EXECUTABLE=${{ steps.python-path.outputs.PYTHON_EXECUTABLE }}

View File

@ -59,6 +59,11 @@ add_library(
${COMMAND_MOC_SOURCE_FILES}
)
if(RESINSIGHT_ENABLE_PRECOMPILED_HEADERS)
message("Precompiled Headers is enabled on : ${PROJECT_NAME}")
target_precompile_headers(Commands PRIVATE pch.h)
endif()
target_include_directories(
${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/EclipseCommands

View File

@ -0,0 +1,33 @@
////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2023 Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "cafAssert.h"
#include "cafCmdFeature.h"
#include "cafFactory.h"
#include "cafPdmChildArrayField.h"
#include "cafPdmObject.h"
#include "cafPdmPtrArrayField.h"
#include "cafPdmPtrField.h"
#include "cafPdmUiOrdering.h"
#include <QObject>
#include "RiaApplication.h"
#include "RimPlotCurve.h"
#include "RiuMainWindow.h"
#include "RiuPlotMainWindow.h"

View File

@ -1,6 +1,6 @@
////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2019- Equinor ASA
// Copyright (C) 2023 Equinor ASA
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
@ -20,18 +20,34 @@
#include "cvfVector3.h"
#include "cafAppEnum.h"
#include "cafAssert.h"
#include "cafCmdFeature.h"
#include "cafFactory.h"
#include "cafPdmChildArrayField.h"
#include "cafPdmField.h"
#include "cafPdmFieldScriptingCapability.h"
#include "cafPdmObject.h"
#include "cafPdmPtrArrayField.h"
#include "cafPdmPtrField.h"
#include "cafPdmUiOrdering.h"
#include "cafSelectionManager.h"
#include <QApplication>
#include <QObject>
#include <QString>
#include <QTextStream>
#include <map>
#include <vector>
#include "RiaApplication.h"
#include "RiaPreferences.h"
#include "RimPlotCurve.h"
#include "RiuMainWindow.h"
#include "RiuPlotMainWindow.h"
// These files are reported as candidates for PCH file, but including them breaks the Unity build
// #include "cafViewer.h"
// #include "RiuViewer.h"
// #include "cafOpenGLWidget.h"
// #include <QGLWidget>