summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mkspecs/win32-msvc2013/qmake.conf98
-rw-r--r--mkspecs/win32-msvc2013/qplatformdefs.h42
-rw-r--r--qmake/Makefile.win324
-rw-r--r--qmake/generators/win32/msbuild_objectmodel.cpp2
-rw-r--r--qmake/generators/win32/msvc_objectmodel.h3
-rw-r--r--qmake/generators/win32/msvc_vcproj.cpp12
-rw-r--r--tools/configure/configureapp.cpp3
-rw-r--r--tools/configure/environment.cpp7
-rw-r--r--tools/configure/environment.h3
9 files changed, 169 insertions, 5 deletions
diff --git a/mkspecs/win32-msvc2013/qmake.conf b/mkspecs/win32-msvc2013/qmake.conf
new file mode 100644
index 0000000000..89d2dd45a4
--- /dev/null
+++ b/mkspecs/win32-msvc2013/qmake.conf
@@ -0,0 +1,98 @@
+#
+# qmake configuration for win32-msvc2013
+#
+# Written for Microsoft Visual C++ 2013
+#
+
+MAKEFILE_GENERATOR = MSBUILD
+QMAKE_PLATFORM = win32
+CONFIG += incremental flat precompile_header autogen_precompile_source debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe
+DEFINES += UNICODE WIN32
+QMAKE_COMPILER_DEFINES += _MSC_VER=1800 _WIN32
+contains(QMAKE_TARGET.arch, x86_64) {
+ DEFINES += WIN64
+ QMAKE_COMPILER_DEFINES += _WIN64
+}
+
+QMAKE_COMPILER = msvc
+
+QMAKE_CC = cl
+QMAKE_LEX = flex
+QMAKE_LEXFLAGS =
+QMAKE_YACC = byacc
+QMAKE_YACCFLAGS = -d
+QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t
+QMAKE_CFLAGS_WARN_ON = -W3
+QMAKE_CFLAGS_WARN_OFF = -W0
+QMAKE_CFLAGS_RELEASE = -O2 -MD
+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
+QMAKE_CFLAGS_DEBUG = -Zi -MDd
+QMAKE_CFLAGS_YACC =
+QMAKE_CFLAGS_LTCG = -GL
+QMAKE_CFLAGS_MP = -MP
+QMAKE_CFLAGS_SSE2 = -arch:SSE2
+QMAKE_CFLAGS_SSE3 = -arch:SSE2
+QMAKE_CFLAGS_SSSE3 = -arch:SSE2
+QMAKE_CFLAGS_SSE4_1 = -arch:SSE2
+QMAKE_CFLAGS_SSE4_2 = -arch:SSE2
+QMAKE_CFLAGS_AVX = -arch:AVX
+QMAKE_CFLAGS_AVX2 = -arch:AVX
+
+QMAKE_CXX = $$QMAKE_CC
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
+QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -w34100 -w34189
+QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
+QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
+QMAKE_CXXFLAGS_MP = $$QMAKE_CFLAGS_MP
+QMAKE_CXXFLAGS_STL_ON = -EHsc
+QMAKE_CXXFLAGS_STL_OFF =
+QMAKE_CXXFLAGS_RTTI_ON = -GR
+QMAKE_CXXFLAGS_RTTI_OFF =
+QMAKE_CXXFLAGS_EXCEPTIONS_ON = -EHsc
+QMAKE_CXXFLAGS_EXCEPTIONS_OFF =
+
+QMAKE_INCDIR =
+
+QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$obj $src
+QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ $<
+QMAKE_RUN_CC_IMP_BATCH = $(CC) -c $(CFLAGS) $(INCPATH) -Fo$@ @<<
+QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$obj $src
+QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $<
+QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<<
+
+QMAKE_LINK = link
+QMAKE_LFLAGS = /NOLOGO /DYNAMICBASE /NXCOMPAT
+QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO
+QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF
+QMAKE_LFLAGS_DEBUG = /DEBUG
+QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE
+QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS
+QMAKE_LFLAGS_EXE = \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"
+QMAKE_LFLAGS_DLL = /DLL
+QMAKE_LFLAGS_LTCG = /LTCG
+QMAKE_EXTENSION_STATICLIB = lib
+
+QMAKE_LIBS_CORE = kernel32.lib user32.lib shell32.lib uuid.lib ole32.lib advapi32.lib ws2_32.lib
+QMAKE_LIBS_GUI = gdi32.lib comdlg32.lib oleaut32.lib imm32.lib winmm.lib ws2_32.lib ole32.lib user32.lib advapi32.lib
+QMAKE_LIBS_NETWORK = ws2_32.lib
+QMAKE_LIBS_OPENGL = glu32.lib opengl32.lib gdi32.lib user32.lib
+QMAKE_LIBS_OPENGL_ES2 = libEGL.lib libGLESv2.lib gdi32.lib user32.lib
+QMAKE_LIBS_OPENGL_ES2_DEBUG = libEGLd.lib libGLESv2d.lib gdi32.lib user32.lib
+QMAKE_LIBS_COMPAT = advapi32.lib shell32.lib comdlg32.lib user32.lib gdi32.lib ws2_32.lib
+
+QMAKE_LIBS_QT_ENTRY = -lqtmain
+
+QMAKE_IDL = midl
+QMAKE_LIB = lib /NOLOGO
+QMAKE_RC = rc
+
+include(../common/shell-win32.conf)
+
+VCPROJ_EXTENSION = .vcxproj
+VCSOLUTION_EXTENSION = .sln
+VCPROJ_KEYWORD = Qt4VSv1.0
+load(qt_config)
diff --git a/mkspecs/win32-msvc2013/qplatformdefs.h b/mkspecs/win32-msvc2013/qplatformdefs.h
new file mode 100644
index 0000000000..e03bce8e6c
--- /dev/null
+++ b/mkspecs/win32-msvc2013/qplatformdefs.h
@@ -0,0 +1,42 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 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: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 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 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: 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.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "../win32-msvc2005/qplatformdefs.h"
diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32
index 7dbef61413..85b5405b41 100644
--- a/qmake/Makefile.win32
+++ b/qmake/Makefile.win32
@@ -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-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-icc"
!if "$(SOURCE_PATH)" == ""
SOURCE_PATH = ..
@@ -26,7 +26,7 @@ LINKER = link
#
!if "$(QMAKESPEC)" == "win32-msvc2005"
CFLAGS_EXTRA = /Zc:wchar_t-
-!elseif "$(QMAKESPEC)" == "win32-msvc2008" || "$(QMAKESPEC)" == "win32-msvc2010" || "$(QMAKESPEC)" == "win32-msvc2012"
+!elseif "$(QMAKESPEC)" == "win32-msvc2008" || "$(QMAKESPEC)" == "win32-msvc2010" || "$(QMAKESPEC)" == "win32-msvc2012" || "$(QMAKESPEC)" == "win32-msvc2013"
CFLAGS_EXTRA = /MP
!endif
diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp
index 49b601e7e5..b20f3c5ec4 100644
--- a/qmake/generators/win32/msbuild_objectmodel.cpp
+++ b/qmake/generators/win32/msbuild_objectmodel.cpp
@@ -2053,6 +2053,8 @@ QString VCXProjectWriter::platformToolSetVersion(const DotNET version)
{
case NET2012:
return "v110";
+ case NET2013:
+ return "v120";
}
return QString();
}
diff --git a/qmake/generators/win32/msvc_objectmodel.h b/qmake/generators/win32/msvc_objectmodel.h
index e60fb1dfca..034825ed44 100644
--- a/qmake/generators/win32/msvc_objectmodel.h
+++ b/qmake/generators/win32/msvc_objectmodel.h
@@ -63,7 +63,8 @@ enum DotNET {
NET2005 = 0x80,
NET2008 = 0x90,
NET2010 = 0xa0,
- NET2012 = 0xb0
+ NET2012 = 0xb0,
+ NET2013 = 0xc0
};
/*
diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp
index e2df222639..dfcb0ec352 100644
--- a/qmake/generators/win32/msvc_vcproj.cpp
+++ b/qmake/generators/win32/msvc_vcproj.cpp
@@ -77,6 +77,8 @@ struct DotNetCombo {
const char *regKey;
} dotNetCombo[] = {
#ifdef Q_OS_WIN64
+ {NET2013, "MSVC.NET 2013 (12.0)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\12.0\\Setup\\VC\\ProductDir"},
+ {NET2013, "MSVC.NET 2013 Express Edition (12.0)", "Software\\Wow6432Node\\Microsoft\\VCExpress\\12.0\\Setup\\VC\\ProductDir"},
{NET2012, "MSVC.NET 2012 (11.0)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\11.0\\Setup\\VC\\ProductDir"},
{NET2012, "MSVC.NET 2012 Express Edition (11.0)", "Software\\Wow6432Node\\Microsoft\\VCExpress\\11.0\\Setup\\VC\\ProductDir"},
{NET2010, "MSVC.NET 2010 (10.0)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\10.0\\Setup\\VC\\ProductDir"},
@@ -88,6 +90,8 @@ struct DotNetCombo {
{NET2003, "MSVC.NET 2003 (7.1)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\7.1\\Setup\\VC\\ProductDir"},
{NET2002, "MSVC.NET 2002 (7.0)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\7.0\\Setup\\VC\\ProductDir"},
#else
+ {NET2013, "MSVC.NET 2013 (12.0)", "Software\\Microsoft\\VisualStudio\\12.0\\Setup\\VC\\ProductDir"},
+ {NET2013, "MSVC.NET 2013 Express Edition (12.0)", "Software\\Microsoft\\VCExpress\\12.0\\Setup\\VC\\ProductDir"},
{NET2012, "MSVC.NET 2012 (11.0)", "Software\\Microsoft\\VisualStudio\\11.0\\Setup\\VC\\ProductDir"},
{NET2012, "MSVC.NET 2012 Express Edition (11.0)", "Software\\Microsoft\\VCExpress\\11.0\\Setup\\VC\\ProductDir"},
{NET2010, "MSVC.NET 2010 (10.0)", "Software\\Microsoft\\VisualStudio\\10.0\\Setup\\VC\\ProductDir"},
@@ -183,6 +187,8 @@ const char _slnHeader100[] = "Microsoft Visual Studio Solution File, Format
"\n# Visual Studio 2010";
const char _slnHeader110[] = "Microsoft Visual Studio Solution File, Format Version 12.00"
"\n# Visual Studio 2012";
+const char _slnHeader120[] = "Microsoft Visual Studio Solution File, Format Version 12.00"
+ "\n# Visual Studio 2013";
// The following UUID _may_ change for later servicepacks...
// If so we need to search through the registry at
// HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0\Projects
@@ -592,6 +598,9 @@ void VcprojGenerator::writeSubDirs(QTextStream &t)
}
switch(which_dotnet_version()) {
+ case NET2013:
+ t << _slnHeader120;
+ break;
case NET2012:
t << _slnHeader110;
break;
@@ -868,6 +877,9 @@ void VcprojGenerator::initProject()
// Own elements -----------------------------
vcProject.Name = unescapeFilePath(project->first("QMAKE_ORIG_TARGET").toQString());
switch(which_dotnet_version()) {
+ case NET2013:
+ vcProject.Version = "13.00";
+ break;
case NET2012:
vcProject.Version = "12.00";
break;
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 4e70c11034..349281dd1e 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -1341,7 +1341,8 @@ void Configure::parseCmdLine()
dictionary[ "QMAKESPEC" ].endsWith("-msvc2005") ||
dictionary[ "QMAKESPEC" ].endsWith("-msvc2008") ||
dictionary[ "QMAKESPEC" ].endsWith("-msvc2010") ||
- dictionary[ "QMAKESPEC" ].endsWith("-msvc2012")) {
+ dictionary[ "QMAKESPEC" ].endsWith("-msvc2012") ||
+ dictionary[ "QMAKESPEC" ].endsWith("-msvc2013")) {
if (dictionary[ "MAKE" ].isEmpty()) dictionary[ "MAKE" ] = "nmake";
dictionary[ "QMAKEMAKEFILE" ] = "Makefile.win32";
} else if (dictionary[ "QMAKESPEC" ] == QString("win32-g++")) {
diff --git a/tools/configure/environment.cpp b/tools/configure/environment.cpp
index 1b4053ccdf..d733165271 100644
--- a/tools/configure/environment.cpp
+++ b/tools/configure/environment.cpp
@@ -86,6 +86,8 @@ struct CompilerInfo{
{CC_NET2010, "Microsoft (R) 32-bit C/C++ Optimizing Compiler.NET 2010 (10.0)", "Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VC7\\10.0", "cl.exe"}, // link.exe, lib.exe
{CC_NET2012, "Microsoft (R) 32-bit C/C++ Optimizing Compiler.NET 2012 (11.0)", "Software\\Microsoft\\VisualStudio\\SxS\\VC7\\11.0", "cl.exe"}, // link.exe, lib.exe
{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
+ {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
+ {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
{CC_UNKNOWN, "Unknown", 0, 0},
};
@@ -111,6 +113,9 @@ QString Environment::detectQMakeSpec()
{
QString spec;
switch (detectCompiler()) {
+ case CC_NET2013:
+ spec = "win32-msvc2013";
+ break;
case CC_NET2012:
spec = "win32-msvc2012";
break;
@@ -144,6 +149,8 @@ QString Environment::detectQMakeSpec()
Compiler Environment::compilerFromQMakeSpec(const QString &qmakeSpec)
{
+ if (qmakeSpec == QLatin1String("win32-msvc2013"))
+ return CC_NET2013;
if (qmakeSpec == QLatin1String("win32-msvc2012"))
return CC_NET2012;
if (qmakeSpec == QLatin1String("win32-msvc2010"))
diff --git a/tools/configure/environment.h b/tools/configure/environment.h
index d1e31f6955..cef0bca29f 100644
--- a/tools/configure/environment.h
+++ b/tools/configure/environment.h
@@ -53,7 +53,8 @@ enum Compiler {
CC_NET2005 = 0x80,
CC_NET2008 = 0x90,
CC_NET2010 = 0xA0,
- CC_NET2012 = 0xB0
+ CC_NET2012 = 0xB0,
+ CC_NET2013 = 0xC0
};
struct CompilerInfo;