diff options
author | Christian Kandeler <christian.kandeler@theqtcompany.com> | 2016-07-29 17:02:23 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2016-08-01 15:54:28 +0000 |
commit | cb4e5118d59f2b4fbb19a77a5a815b5db0dd6487 (patch) | |
tree | 63d6e15457de9ab3243e8bf2c406f055a18e6e52 /src/plugins/scanner | |
parent | 7e5cf659f1539c27c150b1c4d60dd54c9b3e180f (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.cpp | 49 |
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() { |