From bf69541369d2f8e315f4f0450a3ad8e522276715 Mon Sep 17 00:00:00 2001 From: PKEuS Date: Fri, 29 May 2020 12:04:33 +0200 Subject: [PATCH] Visual Studio: Use new files precompiled.h with several common includes for core and testrunner. - CLI+Core: Reduces build time by 55% from 3:53 to 1:47 - Testrunner: Reduces build time by 27% from 1:40 to 1:13 --- lib/cppcheck.vcxproj | 33 +++++++++++++++++---------------- lib/cppcheck.vcxproj.filters | 3 +++ lib/precompiled.h | 27 +++++++++++++++++++++++++++ test/precompiled.h | 23 +++++++++++++++++++++++ test/testrunner.vcxproj | 17 +++++++++-------- test/testrunner.vcxproj.filters | 3 +++ 6 files changed, 82 insertions(+), 24 deletions(-) create mode 100644 lib/precompiled.h create mode 100644 test/precompiled.h diff --git a/lib/cppcheck.vcxproj b/lib/cppcheck.vcxproj index 75d853787..ac80fd687 100644 --- a/lib/cppcheck.vcxproj +++ b/lib/cppcheck.vcxproj @@ -142,6 +142,7 @@ + @@ -293,8 +294,8 @@ 4018;4127;4244;4251;4267;4389;4482;4512;4701;4706;4800 MultiThreadedDebugDLL Use - check.h - check.h + precompiled.h + precompiled.h true stdcpplatest /Zc:throwingNew /Zc:__cplusplus %(AdditionalOptions) @@ -324,8 +325,8 @@ xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y 4018;4127;4244;4251;4267;4389;4482;4512;4701;4706;4800 MultiThreadedDebugDLL Use - check.h - check.h + precompiled.h + precompiled.h true stdcpplatest /Zc:throwingNew /Zc:__cplusplus %(AdditionalOptions) @@ -355,8 +356,8 @@ xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y 4018;4127;4244;4251;4267;4389;4482;4512;4701;4706;4800 MultiThreadedDebugDLL Use - check.h - check.h + precompiled.h + precompiled.h true stdcpplatest /Zc:throwingNew /Zc:__cplusplus %(AdditionalOptions) @@ -384,8 +385,8 @@ xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y 4018;4127;4244;4251;4267;4389;4482;4512;4701;4706;4800 MultiThreadedDebugDLL Use - check.h - check.h + precompiled.h + precompiled.h true stdcpplatest /Zc:throwingNew /Zc:__cplusplus %(AdditionalOptions) @@ -422,8 +423,8 @@ xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y true false Use - check.h - check.h + precompiled.h + precompiled.h /Zc:throwingNew /Zc:__cplusplus %(AdditionalOptions) true stdcpplatest @@ -462,8 +463,8 @@ xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y true false Use - check.h - check.h + precompiled.h + precompiled.h /Zc:throwingNew /Zc:__cplusplus %(AdditionalOptions) true stdcpplatest @@ -503,8 +504,8 @@ xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y true false Use - check.h - check.h + precompiled.h + precompiled.h /Zc:throwingNew /Zc:__cplusplus %(AdditionalOptions) true stdcpplatest @@ -542,8 +543,8 @@ xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y true false Use - check.h - check.h + precompiled.h + precompiled.h /Zc:throwingNew /Zc:__cplusplus %(AdditionalOptions) true stdcpplatest diff --git a/lib/cppcheck.vcxproj.filters b/lib/cppcheck.vcxproj.filters index 7096f74c5..a00f968d7 100644 --- a/lib/cppcheck.vcxproj.filters +++ b/lib/cppcheck.vcxproj.filters @@ -343,6 +343,9 @@ Header Files + + Header Files + diff --git a/lib/precompiled.h b/lib/precompiled.h new file mode 100644 index 000000000..4340c4d49 --- /dev/null +++ b/lib/precompiled.h @@ -0,0 +1,27 @@ +/* + * Cppcheck - A tool for static C/C++ code analysis + * Copyright (C) 2007-2020 Cppcheck team. + * + * This program 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. + * + * This program 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 for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#include "config.h" +#include "check.h" +#include "library.h" +#include "token.h" +#include "tokenize.h" +#include "valueflow.h" +#include "symboldatabase.h" +#include "settings.h" diff --git a/test/precompiled.h b/test/precompiled.h new file mode 100644 index 000000000..1dd4126a9 --- /dev/null +++ b/test/precompiled.h @@ -0,0 +1,23 @@ +/* + * Cppcheck - A tool for static C/C++ code analysis + * Copyright (C) 2007-2019 Cppcheck team. + * + * This program 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. + * + * This program 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 for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once +#include "testsuite.h" +#include "settings.h" +#include "tokenize.h" +#include "library.h" diff --git a/test/testrunner.vcxproj b/test/testrunner.vcxproj index 56839cd6d..5fb456c7f 100755 --- a/test/testrunner.vcxproj +++ b/test/testrunner.vcxproj @@ -103,6 +103,7 @@ + @@ -184,8 +185,8 @@ 4018;4127;4244;4251;4267;4389;4482;4512;4701;4706;4800 true Use - testsuite.h - testsuite.h + precompiled.h + precompiled.h true stdcpplatest /Zc:throwingNew /Zc:__cplusplus %(AdditionalOptions) @@ -213,8 +214,8 @@ 4018;4127;4244;4251;4267;4389;4482;4512;4701;4706;4800 true Use - testsuite.h - testsuite.h + precompiled.h + precompiled.h true stdcpplatest /Zc:throwingNew /Zc:__cplusplus %(AdditionalOptions) @@ -248,8 +249,8 @@ true Use - testsuite.h - testsuite.h + precompiled.h + precompiled.h /Zc:throwingNew /Zc:__cplusplus %(AdditionalOptions) true stdcpplatest @@ -287,8 +288,8 @@ true Use - testsuite.h - testsuite.h + precompiled.h + precompiled.h /Zc:throwingNew /Zc:__cplusplus %(AdditionalOptions) true stdcpplatest diff --git a/test/testrunner.vcxproj.filters b/test/testrunner.vcxproj.filters index dd8974e04..f7998ae13 100644 --- a/test/testrunner.vcxproj.filters +++ b/test/testrunner.vcxproj.filters @@ -246,5 +246,8 @@ Header Files + + Header Files + \ No newline at end of file