Add detection of and support for Visual Studio 2015
Tested with the Preview release of November 2014. Differences to the 2013 detection and support: - Option -Zc:strictStrings is present in both debug and release mode and is passed to qmake's own build - New warnings 4456, 4457 and 4458 (shadowing) are disabled - Compiler supports -arch:AVX2 Change-Id: I9572ff4d4aded4004c1fa5d6f13ffee5462043d6 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This commit is contained in:
parent
c23d1c7695
commit
ce1c53b413
@ -123,10 +123,22 @@ greaterThan(MSC_VER, 1799) {
|
|||||||
# Visual Studio 2013 (12.0) / Visual C++ 18.0 and up
|
# Visual Studio 2013 (12.0) / Visual C++ 18.0 and up
|
||||||
QMAKE_CFLAGS += -FS
|
QMAKE_CFLAGS += -FS
|
||||||
QMAKE_CXXFLAGS += -FS
|
QMAKE_CXXFLAGS += -FS
|
||||||
QMAKE_CFLAGS_RELEASE += -Zc:strictStrings
|
|
||||||
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -Zc:strictStrings
|
equals(MSC_VER, 1800) {
|
||||||
QMAKE_CXXFLAGS_RELEASE += -Zc:strictStrings
|
QMAKE_CFLAGS_RELEASE += -Zc:strictStrings
|
||||||
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += -Zc:strictStrings
|
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -Zc:strictStrings
|
||||||
|
QMAKE_CXXFLAGS_RELEASE += -Zc:strictStrings
|
||||||
|
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += -Zc:strictStrings
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
greaterThan(MSC_VER, 1899) {
|
||||||
|
# Visual Studio 2015 (14.0) / Visual C++ 19.0 and up
|
||||||
|
QMAKE_CFLAGS += -Zc:strictStrings
|
||||||
|
QMAKE_CFLAGS_WARN_ON += -w44456 -w44457 -w44458
|
||||||
|
QMAKE_CFLAGS_AVX2 = -arch:AVX2
|
||||||
|
QMAKE_CXXFLAGS += -Zc:strictStrings
|
||||||
|
QMAKE_CXXFLAGS_WARN_ON += -w44456 -w44457 -w44458
|
||||||
}
|
}
|
||||||
|
|
||||||
unset(MSC_VER)
|
unset(MSC_VER)
|
||||||
|
11
mkspecs/win32-msvc2015/qmake.conf
Normal file
11
mkspecs/win32-msvc2015/qmake.conf
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#
|
||||||
|
# qmake configuration for win32-msvc2015
|
||||||
|
#
|
||||||
|
# Written for Microsoft Visual C++ 2015
|
||||||
|
#
|
||||||
|
|
||||||
|
MSC_VER = 1900
|
||||||
|
MSVC_VER = 14.0
|
||||||
|
include(../common/msvc-desktop.conf)
|
||||||
|
include(../common/shell-win32.conf)
|
||||||
|
load(qt_config)
|
34
mkspecs/win32-msvc2015/qplatformdefs.h
Normal file
34
mkspecs/win32-msvc2015/qplatformdefs.h
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||||
|
** Contact: http://www.qt-project.org/legal
|
||||||
|
**
|
||||||
|
** This file is part of the qmake spec of the Qt Toolkit.
|
||||||
|
**
|
||||||
|
** $QT_BEGIN_LICENSE:LGPL21$
|
||||||
|
** 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 Digia. For licensing terms and
|
||||||
|
** conditions see http://qt.digia.com/licensing. For further information
|
||||||
|
** use the contact form at http://qt.digia.com/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, Digia gives you certain additional
|
||||||
|
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||||
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||||
|
**
|
||||||
|
** $QT_END_LICENSE$
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include "../win32-msvc2005/qplatformdefs.h"
|
@ -1,4 +1,4 @@
|
|||||||
!IF "$(QMAKESPEC)" == "win32-msvc" || "$(QMAKESPEC)" == "win32-msvc.net" || "$(QMAKESPEC)" == "win32-msvc2002" || "$(QMAKESPEC)" == "win32-msvc2003" || "$(QMAKESPEC)" == "win32-msvc2005" || "$(QMAKESPEC)" == "win32-msvc2008" || "$(QMAKESPEC)" == "win32-msvc2010" || "$(QMAKESPEC)" == "win32-msvc2012" || "$(QMAKESPEC)" == "win32-msvc2013" || "$(QMAKESPEC)" == "win32-icc"
|
!IF "$(QMAKESPEC)" == "win32-msvc" || "$(QMAKESPEC)" == "win32-msvc.net" || "$(QMAKESPEC)" == "win32-msvc2002" || "$(QMAKESPEC)" == "win32-msvc2003" || "$(QMAKESPEC)" == "win32-msvc2005" || "$(QMAKESPEC)" == "win32-msvc2008" || "$(QMAKESPEC)" == "win32-msvc2010" || "$(QMAKESPEC)" == "win32-msvc2012" || "$(QMAKESPEC)" == "win32-msvc2013" || "$(QMAKESPEC)" == "win32-msvc2015" || "$(QMAKESPEC)" == "win32-icc"
|
||||||
|
|
||||||
!if "$(SOURCE_PATH)" == ""
|
!if "$(SOURCE_PATH)" == ""
|
||||||
SOURCE_PATH = ..
|
SOURCE_PATH = ..
|
||||||
@ -28,6 +28,8 @@ LINKER = link
|
|||||||
CFLAGS_EXTRA = /Zc:wchar_t-
|
CFLAGS_EXTRA = /Zc:wchar_t-
|
||||||
!elseif "$(QMAKESPEC)" == "win32-msvc2008" || "$(QMAKESPEC)" == "win32-msvc2010" || "$(QMAKESPEC)" == "win32-msvc2012" || "$(QMAKESPEC)" == "win32-msvc2013"
|
!elseif "$(QMAKESPEC)" == "win32-msvc2008" || "$(QMAKESPEC)" == "win32-msvc2010" || "$(QMAKESPEC)" == "win32-msvc2012" || "$(QMAKESPEC)" == "win32-msvc2013"
|
||||||
CFLAGS_EXTRA = /MP /D_CRT_SECURE_NO_WARNINGS $(CFLAGS_CRT)
|
CFLAGS_EXTRA = /MP /D_CRT_SECURE_NO_WARNINGS $(CFLAGS_CRT)
|
||||||
|
!elseif "$(QMAKESPEC)" == "win32-msvc2015"
|
||||||
|
CFLAGS_EXTRA = /MP /D_CRT_SECURE_NO_WARNINGS /Zc:strictStrings /w44456 /w44457 /w44458 $(CFLAGS_CRT)
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
CFLAGS_BARE = -c -Fo./ -Fdqmake.pdb \
|
CFLAGS_BARE = -c -Fo./ -Fdqmake.pdb \
|
||||||
|
@ -1379,7 +1379,8 @@ void Configure::parseCmdLine()
|
|||||||
dictionary[ "QMAKESPEC" ].endsWith("-msvc2008") ||
|
dictionary[ "QMAKESPEC" ].endsWith("-msvc2008") ||
|
||||||
dictionary[ "QMAKESPEC" ].endsWith("-msvc2010") ||
|
dictionary[ "QMAKESPEC" ].endsWith("-msvc2010") ||
|
||||||
dictionary[ "QMAKESPEC" ].endsWith("-msvc2012") ||
|
dictionary[ "QMAKESPEC" ].endsWith("-msvc2012") ||
|
||||||
dictionary[ "QMAKESPEC" ].endsWith("-msvc2013")) {
|
dictionary[ "QMAKESPEC" ].endsWith("-msvc2013") ||
|
||||||
|
dictionary[ "QMAKESPEC" ].endsWith("-msvc2015")) {
|
||||||
if (dictionary[ "MAKE" ].isEmpty()) dictionary[ "MAKE" ] = "nmake";
|
if (dictionary[ "MAKE" ].isEmpty()) dictionary[ "MAKE" ] = "nmake";
|
||||||
dictionary[ "QMAKEMAKEFILE" ] = "Makefile.win32";
|
dictionary[ "QMAKEMAKEFILE" ] = "Makefile.win32";
|
||||||
} else if (dictionary[ "QMAKESPEC" ] == QString("win32-g++")) {
|
} else if (dictionary[ "QMAKESPEC" ] == QString("win32-g++")) {
|
||||||
|
@ -78,6 +78,9 @@ struct CompilerInfo{
|
|||||||
{CC_MSVC2012, "Microsoft (R) Visual Studio 2012 C/C++ Compiler (11.0)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VC7\\11.0", "cl.exe"}, // link.exe, lib.exe
|
{CC_MSVC2012, "Microsoft (R) Visual Studio 2012 C/C++ Compiler (11.0)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VC7\\11.0", "cl.exe"}, // link.exe, lib.exe
|
||||||
{CC_MSVC2013, "Microsoft (R) Visual Studio 2013 C/C++ Compiler (12.0)", "Software\\Microsoft\\VisualStudio\\SxS\\VC7\\12.0", "cl.exe"}, // link.exe, lib.exe
|
{CC_MSVC2013, "Microsoft (R) Visual Studio 2013 C/C++ Compiler (12.0)", "Software\\Microsoft\\VisualStudio\\SxS\\VC7\\12.0", "cl.exe"}, // link.exe, lib.exe
|
||||||
{CC_MSVC2013, "Microsoft (R) Visual Studio 2013 C/C++ Compiler (12.0)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VC7\\12.0", "cl.exe"}, // link.exe, lib.exe
|
{CC_MSVC2013, "Microsoft (R) Visual Studio 2013 C/C++ Compiler (12.0)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VC7\\12.0", "cl.exe"}, // link.exe, lib.exe
|
||||||
|
// Microsoft skipped version 13
|
||||||
|
{CC_MSVC2015, "Microsoft (R) Visual Studio 2015 C/C++ Compiler (14.0)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VS7\\14.0", "cl.exe"}, // link.exe, lib.exe
|
||||||
|
{CC_MSVC2015, "Microsoft (R) Visual Studio 2015 C/C++ Compiler (14.0)", "Software\\Microsoft\\VisualStudio\\SxS\\VS7\\14.0", "cl.exe"}, // link.exe, lib.exe
|
||||||
{CC_UNKNOWN, "Unknown", 0, 0},
|
{CC_UNKNOWN, "Unknown", 0, 0},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -103,6 +106,9 @@ QString Environment::detectQMakeSpec()
|
|||||||
{
|
{
|
||||||
QString spec;
|
QString spec;
|
||||||
switch (detectCompiler()) {
|
switch (detectCompiler()) {
|
||||||
|
case CC_MSVC2015:
|
||||||
|
spec = "win32-msvc2015";
|
||||||
|
break;
|
||||||
case CC_MSVC2013:
|
case CC_MSVC2013:
|
||||||
spec = "win32-msvc2013";
|
spec = "win32-msvc2013";
|
||||||
break;
|
break;
|
||||||
@ -136,6 +142,8 @@ QString Environment::detectQMakeSpec()
|
|||||||
|
|
||||||
Compiler Environment::compilerFromQMakeSpec(const QString &qmakeSpec)
|
Compiler Environment::compilerFromQMakeSpec(const QString &qmakeSpec)
|
||||||
{
|
{
|
||||||
|
if (qmakeSpec == QLatin1String("win32-msvc2015"))
|
||||||
|
return CC_MSVC2015;
|
||||||
if (qmakeSpec == QLatin1String("win32-msvc2013"))
|
if (qmakeSpec == QLatin1String("win32-msvc2013"))
|
||||||
return CC_MSVC2013;
|
return CC_MSVC2013;
|
||||||
if (qmakeSpec == QLatin1String("win32-msvc2012"))
|
if (qmakeSpec == QLatin1String("win32-msvc2012"))
|
||||||
|
@ -45,7 +45,8 @@ enum Compiler {
|
|||||||
CC_MSVC2008 = 0x90,
|
CC_MSVC2008 = 0x90,
|
||||||
CC_MSVC2010 = 0xA0,
|
CC_MSVC2010 = 0xA0,
|
||||||
CC_MSVC2012 = 0xB0,
|
CC_MSVC2012 = 0xB0,
|
||||||
CC_MSVC2013 = 0xC0
|
CC_MSVC2013 = 0xC0,
|
||||||
|
CC_MSVC2015 = 0xD0
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CompilerInfo;
|
struct CompilerInfo;
|
||||||
|
Loading…
Reference in New Issue
Block a user