aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorIvan Komissarov <ABBAPOH@gmail.com>2020-02-13 01:33:37 +0100
committerIvan Komissarov <ABBAPOH@gmail.com>2020-02-14 17:06:46 +0000
commitbc01b6cc3dc1ee77cfcc3438d8e0d8985016cb65 (patch)
tree53ce517a6838cf7cf532c81f72dea2cd83454734 /share
parentcf5562823e8406183b4866c148116c6632f77956 (diff)
clang-cl: Fix macro dumping
Previously, clang.exe was used to dump macro as clang-cl does not support the MSVC way. Also, architecture was not detected correctly because of the wrong assumption that clang-cl respects arch variables set by the vcvarsall.bat Change-Id: Ic6464c2bd90f1a2fceb2f8aa884721872179ff49 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'share')
-rw-r--r--share/qbs/imports/qbs/Probes/ClangClProbe.qbs8
-rw-r--r--share/qbs/modules/cpp/windows-clang-cl.qbs4
2 files changed, 8 insertions, 4 deletions
diff --git a/share/qbs/imports/qbs/Probes/ClangClProbe.qbs b/share/qbs/imports/qbs/Probes/ClangClProbe.qbs
index c7687f0e9..8205e92fa 100644
--- a/share/qbs/imports/qbs/Probes/ClangClProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/ClangClProbe.qbs
@@ -39,7 +39,7 @@ PathProbe {
property string compilerFilePath
property string vcvarsallFilePath
property stringList enableDefinesByLanguage
- property string architecture
+ property string preferredArchitecture
property string _nullDevice: qbs.nullDevice
property string _pathListSeparator: qbs.pathListSeparator
@@ -48,6 +48,7 @@ PathProbe {
property int versionMinor
property int versionPatch
property stringList includePaths
+ property string architecture
property var buildEnv
property var compilerDefinesByLanguage
@@ -57,9 +58,9 @@ PathProbe {
languages = ["c"];
var info = languages.contains("c")
- ? Utilities.clangClCompilerInfo(compilerFilePath, architecture, vcvarsallFilePath, "c") : {};
+ ? Utilities.clangClCompilerInfo(compilerFilePath, preferredArchitecture, vcvarsallFilePath, "c") : {};
var infoCpp = languages.contains("cpp")
- ? Utilities.clangClCompilerInfo(compilerFilePath, architecture, vcvarsallFilePath, "cpp") : {};
+ ? Utilities.clangClCompilerInfo(compilerFilePath, preferredArchitecture, vcvarsallFilePath, "cpp") : {};
found = (!languages.contains("c") ||
(!!info && !!info.macros && !!info.buildEnvironment))
&& (!languages.contains("cpp") ||
@@ -84,5 +85,6 @@ PathProbe {
[], _nullDevice,
_pathListSeparator, "", "");
includePaths = defaultPaths.includePaths;
+ architecture = ModUtils.guessArchitecture(macros);
}
}
diff --git a/share/qbs/modules/cpp/windows-clang-cl.qbs b/share/qbs/modules/cpp/windows-clang-cl.qbs
index 2ac3f356a..d57f5a7ad 100644
--- a/share/qbs/modules/cpp/windows-clang-cl.qbs
+++ b/share/qbs/modules/cpp/windows-clang-cl.qbs
@@ -52,9 +52,11 @@ MsvcBaseModule {
compilerFilePath: compilerPath
vcvarsallFilePath: vcvarsallPath
enableDefinesByLanguage: enableCompilerDefinesByLanguage
- architecture: qbs.architecture
+ preferredArchitecture: qbs.architecture
}
+ qbs.architecture: clangClProbe.found ? clangClProbe.architecture : original
+
compilerVersionMajor: clangClProbe.versionMajor
compilerVersionMinor: clangClProbe.versionMinor
compilerVersionPatch: clangClProbe.versionPatch