aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/scanner
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@theqtcompany.com>2016-07-29 17:02:23 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2016-08-01 15:54:28 +0000
commitcb4e5118d59f2b4fbb19a77a5a815b5db0dd6487 (patch)
tree63d6e15457de9ab3243e8bf2c406f055a18e6e52 /src/plugins/scanner
parent7e5cf659f1539c27c150b1c4d60dd54c9b3e180f (diff)
Fix change tracking for precompiled headers
We used "explicitlyDependsOn" in the respective rules to make the pch sources depend on all header files. This was much too coarse, as it meant that the precompiled header was rebuilt whenever any header file in the product changed. Instead, we need to scan the pch sources just like all the other C and C++ source files to find out which header files they actually depend on. Change-Id: Iaec4ed85075b387d9f4b0fcd06b1e481851c6b10 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Diffstat (limited to 'src/plugins/scanner')
-rw-r--r--src/plugins/scanner/cpp/cppscanner.cpp49
1 files changed, 48 insertions, 1 deletions
diff --git a/src/plugins/scanner/cpp/cppscanner.cpp b/src/plugins/scanner/cpp/cppscanner.cpp
index a0dc04608..ffe76f662 100644
--- a/src/plugins/scanner/cpp/cppscanner.cpp
+++ b/src/plugins/scanner/cpp/cppscanner.cpp
@@ -303,6 +303,17 @@ ScannerPlugin cppScanner =
ScannerUsesCppIncludePaths | ScannerRecursiveDependencies
};
+ScannerPlugin pchCppScanner =
+{
+ "include_scanner",
+ "cpp_pch_src",
+ openScannerT<Opaq::FT_HPP>,
+ closeScanner,
+ next,
+ additionalFileTags,
+ ScannerUsesCppIncludePaths | ScannerRecursiveDependencies
+};
+
ScannerPlugin cScanner =
{
"include_scanner",
@@ -314,6 +325,17 @@ ScannerPlugin cScanner =
ScannerUsesCppIncludePaths | ScannerRecursiveDependencies
};
+ScannerPlugin pchCScanner =
+{
+ "include_scanner",
+ "c_pch_src",
+ openScannerT<Opaq::FT_HPP>,
+ closeScanner,
+ next,
+ additionalFileTags,
+ ScannerUsesCppIncludePaths | ScannerRecursiveDependencies
+};
+
ScannerPlugin objcppScanner =
{
"include_scanner",
@@ -325,6 +347,17 @@ ScannerPlugin objcppScanner =
ScannerUsesCppIncludePaths | ScannerRecursiveDependencies
};
+ScannerPlugin pchObjcppScanner =
+{
+ "include_scanner",
+ "objcpp_pch_src",
+ openScannerT<Opaq::FT_HPP>,
+ closeScanner,
+ next,
+ additionalFileTags,
+ ScannerUsesCppIncludePaths | ScannerRecursiveDependencies
+};
+
ScannerPlugin objcScanner =
{
"include_scanner",
@@ -336,6 +369,17 @@ ScannerPlugin objcScanner =
ScannerUsesCppIncludePaths | ScannerRecursiveDependencies
};
+ScannerPlugin pchObjcScanner =
+{
+ "include_scanner",
+ "objc_pch_src",
+ openScannerT<Opaq::FT_HPP>,
+ closeScanner,
+ next,
+ additionalFileTags,
+ ScannerUsesCppIncludePaths | ScannerRecursiveDependencies
+};
+
ScannerPlugin rcScanner =
{
"include_scanner",
@@ -347,7 +391,10 @@ ScannerPlugin rcScanner =
ScannerUsesCppIncludePaths | ScannerRecursiveDependencies
};
-ScannerPlugin *theScanners[] = {&hppScanner, &cppScanner, &cScanner, &objcppScanner, &objcScanner, &rcScanner, NULL};
+ScannerPlugin *theScanners[] = {
+ &hppScanner, &pchCppScanner, &pchCScanner, &pchObjcppScanner, &pchObjcScanner,
+ &cppScanner, &cScanner, &objcppScanner, &objcScanner, &rcScanner, NULL
+};
CPPSCANNER_EXPORT ScannerPlugin **getScanners()
{