diff options
author | Jake Petroules <jake.petroules@qt.io> | 2016-05-22 15:37:18 -0700 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2016-06-27 13:13:52 +0000 |
commit | 129e7a8ab1edfb583157db6050ab3f1bd426279e (patch) | |
tree | 6f3634e0c1ce07501a1368a774ef62fe1106f065 /share/qbs/imports/qbs/Probes/MsvcProbe.qbs | |
parent | 2ea9e28a6963cae217923d77fd00f581306b1980 (diff) |
Determine Visual Studio architecture & build environment automatically.
This moves one step further to making the setup-toolchains tool
unnecessary and also makes the toolchainInstallPath of MSVC
profiles consistent with what Qt Creator sets.
Change-Id: I3eb11b456bf02bde8993ec0dac7e0f9950174a08
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'share/qbs/imports/qbs/Probes/MsvcProbe.qbs')
-rw-r--r-- | share/qbs/imports/qbs/Probes/MsvcProbe.qbs | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/share/qbs/imports/qbs/Probes/MsvcProbe.qbs b/share/qbs/imports/qbs/Probes/MsvcProbe.qbs new file mode 100644 index 000000000..05a307439 --- /dev/null +++ b/share/qbs/imports/qbs/Probes/MsvcProbe.qbs @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing +** +** This file is part of Qbs. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms and +** conditions see http://www.qt.io/terms-conditions. For further information +** use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +import qbs +import qbs.ModUtils +import qbs.Utilities + +PathProbe { + // Inputs + property string compilerFilePath + property string preferredArchitecture + + // Outputs + property string architecture + property int versionMajor + property int versionMinor + property int versionPatch + property var buildEnv + + configure: { + var info = Utilities.msvcCompilerInfo(compilerFilePath); + found = !!info && !!info.macros && !!info.buildEnvironment; + + var macros = info.macros; + architecture = ModUtils.guessArchitecture(macros); + + var ver = macros["_MSC_FULL_VER"]; + + versionMajor = parseInt(ver.substr(0, 2), 10); + versionMinor = parseInt(ver.substr(2, 2), 10); + versionPatch = parseInt(ver.substr(4), 10); + + buildEnv = info.buildEnvironment; + + if (preferredArchitecture && Utilities.canonicalArchitecture(preferredArchitecture) + !== Utilities.canonicalArchitecture(architecture)) { + throw "'" + preferredArchitecture + + "' differs from the architecture produced by this compiler (" + + architecture + ")"; + } + } +} |