diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2018-05-24 10:36:43 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2018-05-24 10:54:03 +0000 |
commit | e59065e81c69b7c9fae2dfb73c6575dff69fb680 (patch) | |
tree | ff74e737539f0be07593208f243f1fb0d3062806 /src/lib/qtprofilesetup | |
parent | 85b28f9a057772db05c002b528655c1c093d0f50 (diff) |
Move MSVC-related functions to qtprofilesetup lib
This will avoid code duplication in the next commit.
Change-Id: I90d99860dce04bf56c81d4f363aa6e5bafe1224c
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/lib/qtprofilesetup')
-rw-r--r-- | src/lib/qtprofilesetup/qtmsvctools.cpp | 79 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/qtmsvctools.h | 49 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/qtprofilesetup.pro | 7 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/qtprofilesetup.qbs | 2 |
4 files changed, 136 insertions, 1 deletions
diff --git a/src/lib/qtprofilesetup/qtmsvctools.cpp b/src/lib/qtprofilesetup/qtmsvctools.cpp new file mode 100644 index 000000000..0c41b928c --- /dev/null +++ b/src/lib/qtprofilesetup/qtmsvctools.cpp @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qbs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qtmsvctools.h" + +namespace qbs { + +static const QString msvcPrefix = QLatin1String("win32-msvc"); + +bool isMsvcQt(const QtEnvironment &env) +{ + return env.mkspecName.startsWith(msvcPrefix); +} + +static Version msvcCompilerVersionForYear(int year) +{ + switch (year) + { + case 2005: + return Version(14); + case 2008: + return Version(15); + case 2010: + return Version(16); + case 2012: + return Version(17); + case 2013: + return Version(18); + case 2015: + return Version(19); + case 2017: + return Version(19, 1); + default: + return Version(); + } +} + +Version msvcCompilerVersionFromMkspecName(const QString &mkspecName) +{ + return msvcCompilerVersionForYear(mkspecName.mid(msvcPrefix.size()).toInt()); +} + +} // namespace qbs diff --git a/src/lib/qtprofilesetup/qtmsvctools.h b/src/lib/qtprofilesetup/qtmsvctools.h new file mode 100644 index 000000000..195d0e0ec --- /dev/null +++ b/src/lib/qtprofilesetup/qtmsvctools.h @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qbs. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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 https://www.qt.io/terms-conditions. For further +** information use the contact form at https://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 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qtenvironment.h" +#include <tools/qbs_export.h> +#include <tools/version.h> + +namespace qbs { + +QBS_EXPORT bool isMsvcQt(const QtEnvironment &env); +QBS_EXPORT Version msvcCompilerVersionFromMkspecName(const QString &mkspecName); + +} // namespace qbs diff --git a/src/lib/qtprofilesetup/qtprofilesetup.pro b/src/lib/qtprofilesetup/qtprofilesetup.pro index cc89001b1..a6284727a 100644 --- a/src/lib/qtprofilesetup/qtprofilesetup.pro +++ b/src/lib/qtprofilesetup/qtprofilesetup.pro @@ -5,16 +5,21 @@ include(../corelib/use_corelib.pri) HEADERS = \ qtenvironment.h \ qtmoduleinfo.h \ + qtmsvctools.h \ qtprofilesetup.h SOURCES = \ qtmoduleinfo.cpp \ + qtmsvctools.cpp \ qtprofilesetup.cpp RESOURCES = templates.qrc !qbs_no_dev_install { - header.files = qtenvironment.h qtprofilesetup.h + header.files = \ + qtenvironment.h \ + qtmsvctools.h \ + qtprofilesetup.h header.path = $${QBS_INSTALL_PREFIX}/include/qbs use_pri.files = use_installed_qtprofilesetup.pri use_pri.path = $${header.path} diff --git a/src/lib/qtprofilesetup/qtprofilesetup.qbs b/src/lib/qtprofilesetup/qtprofilesetup.qbs index 7f739e10f..8c8b77020 100644 --- a/src/lib/qtprofilesetup/qtprofilesetup.qbs +++ b/src/lib/qtprofilesetup/qtprofilesetup.qbs @@ -9,6 +9,7 @@ QbsLibrary { files: [ "qtenvironment.h", "qtprofilesetup.h", + "qtmsvctools.h", "use_installed_qtprofilesetup.pri", ] qbs.install: qbsbuildconfig.installApiHeaders @@ -19,6 +20,7 @@ QbsLibrary { "qtprofilesetup.cpp", "qtmoduleinfo.cpp", "qtmoduleinfo.h", + "qtmsvctools.cpp", "templates.qrc", "templates/*" ] |