Skip to content

Commit 51e706b

Browse files
committed
Add detection of and support for Visual Studio 2015
Backport of qtbase/ce1c53b4. Task-number: QTBUG-45100 Change-Id: I10db5cfca9976bc37e86b415c2b6e10f51ec5eeb Reviewed-by: Friedemann Kleint <[email protected]>
1 parent 716fbae commit 51e706b

File tree

8 files changed

+151
-4
lines changed

8 files changed

+151
-4
lines changed

configure.exe

2 KB
Binary file not shown.

mkspecs/win32-msvc2015/qmake.conf

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
#
2+
# qmake configuration for win32-msvc2015
3+
#
4+
# Written for Microsoft Visual C++ 2015
5+
#
6+
7+
MAKEFILE_GENERATOR = MSBUILD
8+
TEMPLATE = app
9+
CONFIG += qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe
10+
QT += core gui
11+
DEFINES += UNICODE WIN32
12+
QMAKE_COMPILER_DEFINES += _MSC_VER=1900 WIN32
13+
14+
QMAKE_CC = cl
15+
QMAKE_LEX = flex
16+
QMAKE_LEXFLAGS =
17+
QMAKE_YACC = byacc
18+
QMAKE_YACCFLAGS = -d
19+
QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t- -FS
20+
QMAKE_CFLAGS_WARN_ON = -W3
21+
QMAKE_CFLAGS_WARN_OFF = -W0
22+
QMAKE_CFLAGS_RELEASE = -O2 -MD
23+
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
24+
QMAKE_CFLAGS_DEBUG = -Zi -MDd
25+
QMAKE_CFLAGS_YACC =
26+
QMAKE_CFLAGS_LTCG = -GL
27+
QMAKE_CFLAGS_MP = -MP
28+
29+
QMAKE_CXX = $$QMAKE_CC
30+
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
31+
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -w34100 -w34189
32+
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
33+
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
34+
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
35+
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
36+
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
37+
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
38+
QMAKE_CXXFLAGS_MP = $$QMAKE_CFLAGS_MP
39+
QMAKE_CXXFLAGS_STL_ON = -EHsc
40+
QMAKE_CXXFLAGS_STL_OFF =
41+
QMAKE_CXXFLAGS_RTTI_ON = -GR
42+
QMAKE_CXXFLAGS_RTTI_OFF =
43+
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -EHsc
44+
QMAKE_CXXFLAGS_EXCEPTIONS_OFF =
45+
46+
QMAKE_INCDIR =
47+
QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
48+
QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS]
49+
50+
QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
51+
QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
52+
QMAKE_RUN_CC_IMP_BATCH = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
53+
QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
54+
QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
55+
QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
56+
57+
QMAKE_LINK = link
58+
QMAKE_LFLAGS = /NOLOGO /DYNAMICBASE /NXCOMPAT
59+
QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO
60+
QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF
61+
QMAKE_LFLAGS_DEBUG = /DEBUG
62+
QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE
63+
QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS
64+
QMAKE_LFLAGS_EXE = \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"
65+
QMAKE_LFLAGS_DLL = /DLL
66+
QMAKE_LFLAGS_LTCG = /LTCG
67+
68+
QMAKE_LIBS_CORE = kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib advapi32.lib ws2_32.lib
69+
QMAKE_LIBS_GUI = gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib winspool.lib ws2_32.lib ole32.lib user32.lib advapi32.lib
70+
QMAKE_LIBS_NETWORK = ws2_32.lib
71+
QMAKE_LIBS_OPENGL = glu32.lib opengl32.lib gdi32.lib user32.lib
72+
QMAKE_LIBS_COMPAT = advapi32.lib shell32.lib comdlg32.lib user32.lib gdi32.lib ws2_32.lib
73+
74+
QMAKE_LIBS_QT_ENTRY = -lqtmain
75+
76+
QMAKE_MOC = $$[QT_INSTALL_BINS]\\moc.exe
77+
QMAKE_UIC = $$[QT_INSTALL_BINS]\\uic.exe
78+
QMAKE_IDC = $$[QT_INSTALL_BINS]\\idc.exe
79+
80+
QMAKE_IDL = midl
81+
QMAKE_LIB = lib /NOLOGO
82+
QMAKE_RC = rc
83+
84+
QMAKE_ZIP = zip -r -9
85+
86+
QMAKE_COPY = copy /y
87+
QMAKE_COPY_DIR = xcopy /s /q /y /i
88+
QMAKE_MOVE = move
89+
QMAKE_DEL_FILE = del
90+
QMAKE_DEL_DIR = rmdir
91+
QMAKE_CHK_DIR_EXISTS = if not exist
92+
QMAKE_MKDIR = mkdir
93+
94+
VCPROJ_EXTENSION = .vcxproj
95+
VCSOLUTION_EXTENSION = .sln
96+
VCPROJ_KEYWORD = Qt4VSv1.0
97+
load(qt_config)
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/****************************************************************************
2+
**
3+
** Copyright (C) 2015 The Qt Company Ltd.
4+
** Contact: http://www.qt.io/licensing/
5+
**
6+
** This file is part of the qmake spec of the Qt Toolkit.
7+
**
8+
** $QT_BEGIN_LICENSE:LGPL$
9+
** Commercial License Usage
10+
** Licensees holding valid commercial Qt licenses may use this file in
11+
** accordance with the commercial license agreement provided with the
12+
** Software or, alternatively, in accordance with the terms contained in
13+
** a written agreement between you and The Qt Company. For licensing terms
14+
** and conditions see http://www.qt.io/terms-conditions. For further
15+
** information use the contact form at http://www.qt.io/contact-us.
16+
**
17+
** GNU Lesser General Public License Usage
18+
** Alternatively, this file may be used under the terms of the GNU Lesser
19+
** General Public License version 2.1 or version 3 as published by the Free
20+
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
21+
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
22+
** following information to ensure the GNU Lesser General Public License
23+
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
24+
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25+
**
26+
** As a special exception, The Qt Company gives you certain additional
27+
** rights. These rights are described in The Qt Company LGPL Exception
28+
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29+
**
30+
** GNU General Public License Usage
31+
** Alternatively, this file may be used under the terms of the GNU
32+
** General Public License version 3.0 as published by the Free Software
33+
** Foundation and appearing in the file LICENSE.GPL included in the
34+
** packaging of this file. Please review the following information to
35+
** ensure the GNU General Public License version 3.0 requirements will be
36+
** met: http://www.gnu.org/copyleft/gpl.html.
37+
**
38+
** $QT_END_LICENSE$
39+
**
40+
****************************************************************************/
41+
42+
#include "../win32-msvc2005/qplatformdefs.h"

qmake/Makefile.win32

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
!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"
1+
!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"
22

33
!if "$(SOURCE_PATH)" == ""
44
SOURCE_PATH = ..

qmake/generators/win32/msvc_objectmodel.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ enum DotNET {
6161
NET2008 = 0x90,
6262
NET2010 = 0xa0,
6363
NET2012 = 0xb0,
64-
NET2013 = 0xc0
64+
NET2013 = 0xc0,
65+
NET2015 = 0xd0
6566
};
6667

6768
/*

tools/configure/configureapp.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1375,7 +1375,8 @@ void Configure::parseCmdLine()
13751375
qmakeSpec.endsWith("-msvc2008") ||
13761376
qmakeSpec.endsWith("-msvc2010") ||
13771377
qmakeSpec.endsWith("-msvc2012") ||
1378-
qmakeSpec.endsWith("-msvc2013")) {
1378+
qmakeSpec.endsWith("-msvc2013") ||
1379+
qmakeSpec.endsWith("-msvc2015")) {
13791380
if (dictionary[ "MAKE" ].isEmpty()) dictionary[ "MAKE" ] = "nmake";
13801381
dictionary[ "QMAKEMAKEFILE" ] = "Makefile.win32";
13811382
} else if (qmakeSpec.contains("win32-g++")) {

tools/configure/environment.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ struct CompilerInfo{
8484
{CC_NET2012, "Microsoft (R) 32-bit C/C++ Optimizing Compiler.NET 2012 (11.0)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VC7\\11.0", "cl.exe"}, // link.exe, lib.exe
8585
{CC_NET2013, "Microsoft (R) 32-bit C/C++ Optimizing Compiler.NET 2013 (12.0)", "Software\\Microsoft\\VisualStudio\\SxS\\VC7\\12.0", "cl.exe"}, // link.exe, lib.exe
8686
{CC_NET2013, "Microsoft (R) 32-bit C/C++ Optimizing Compiler.NET 2013 (12.0)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VC7\\12.0", "cl.exe"}, // link.exe, lib.exe
87+
{CC_NET2015, "Microsoft (R) 32-bit C/C++ Optimizing Compiler.NET 2015 (14.0)", "Software\\Microsoft\\VisualStudio\\SxS\\VC7\\14.0", "cl.exe"}, // link.exe, lib.exe
88+
{CC_NET2015, "Microsoft (R) 32-bit C/C++ Optimizing Compiler.NET 2015 (14.0)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VC7\\14.0", "cl.exe"}, // link.exe, lib.exe
8789
{CC_UNKNOWN, "Unknown", 0, 0},
8890
};
8991

@@ -109,6 +111,9 @@ QString Environment::detectQMakeSpec()
109111
{
110112
QString spec;
111113
switch (detectCompiler()) {
114+
case CC_NET2015:
115+
spec = "win32-msvc2015";
116+
break;
112117
case CC_NET2013:
113118
spec = "win32-msvc2013";
114119
break;

tools/configure/environment.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ enum Compiler {
5656
CC_NET2008 = 0x90,
5757
CC_NET2010 = 0xA0,
5858
CC_NET2012 = 0xB0,
59-
CC_NET2013 = 0xC0
59+
CC_NET2013 = 0xC0,
60+
CC_NET2015 = 0xD0
6061
};
6162

6263
struct CompilerInfo;

0 commit comments

Comments
 (0)