diff options
author | Morten Johan Sørvig <morten.sorvig@theqtcompany.com> | 2016-01-27 18:35:45 +0100 |
---|---|---|
committer | Morten Johan Sørvig <morten.sorvig@theqtcompany.com> | 2016-01-27 18:35:45 +0100 |
commit | 0008bb24457a9c3047488874920e356e3f0f26ea (patch) | |
tree | eeccf9dba4bb784dc788d02af1b68a489bcecc42 /mkspecs | |
parent | 05389fd09f1a31025811d31735b4bbd278520ec1 (diff) | |
parent | 209a26c6c4187a15cc6297000ad729392aac6454 (diff) |
Merge commit '209a26c6c4187a15cc6297000ad729392aac6454' into nacl-5.6
Conflicts:
src/corelib/tools/qdatetime.cpp
src/corelib/tools/qsimd.cpp
src/gui/kernel/qwindowsysteminterface.cpp
src/gui/kernel/qwindowsysteminterface.h
src/gui/kernel/qwindowsysteminterface_p.h
src/network/access/qnetworkaccessmanager.cpp
src/plugins/plugins.pro
Change-Id: I0029184e6cba6f55bed736d3574a7fce215ac03f
Diffstat (limited to 'mkspecs')
139 files changed, 889 insertions, 771 deletions
diff --git a/mkspecs/aix-g++-64/qmake.conf b/mkspecs/aix-g++-64/qmake.conf index 176c437c45..7f620a9577 100644 --- a/mkspecs/aix-g++-64/qmake.conf +++ b/mkspecs/aix-g++-64/qmake.conf @@ -5,6 +5,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = aix +include(../common/unix.conf) + QMAKE_COMPILER = gcc QMAKE_CC = gcc @@ -67,5 +69,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = ranlib -X64 -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/aix-g++/qmake.conf b/mkspecs/aix-g++/qmake.conf index 553d9af544..d2f26a1b41 100644 --- a/mkspecs/aix-g++/qmake.conf +++ b/mkspecs/aix-g++/qmake.conf @@ -5,6 +5,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = aix +include(../common/unix.conf) + QMAKE_COMPILER = gcc QMAKE_CC = gcc @@ -67,5 +69,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/aix-xlc-64/qmake.conf b/mkspecs/aix-xlc-64/qmake.conf index 42dbd18b4a..1aea8d81c5 100644 --- a/mkspecs/aix-xlc-64/qmake.conf +++ b/mkspecs/aix-xlc-64/qmake.conf @@ -5,6 +5,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = aix +include(../common/unix.conf) + QMAKE_COMPILER = ibm_xlc QMAKE_CC = xlc @@ -66,5 +68,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = ranlib -X64 -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/aix-xlc/qmake.conf b/mkspecs/aix-xlc/qmake.conf index d2de649355..c765d4ff6b 100644 --- a/mkspecs/aix-xlc/qmake.conf +++ b/mkspecs/aix-xlc/qmake.conf @@ -5,6 +5,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = aix +include(../common/unix.conf) + QMAKE_COMPILER = ibm_xlc QMAKE_CC = xlc @@ -69,5 +71,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = ranlib -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/common/angle.conf b/mkspecs/common/angle.conf new file mode 100644 index 0000000000..fffdb581c5 --- /dev/null +++ b/mkspecs/common/angle.conf @@ -0,0 +1,9 @@ +# Renaming these files requires that the LIBRARY entry of their corresponding +# def files are also updated to reflect the name. +# The .def files are found in the angle directories: +# +# qtbase\src\3rdparty\angle\src\libEGL\libEGL[d?].def +# qtbase\src\3rdparty\angle\src\libEGL\libGLESv2[d?].def + +LIBEGL_NAME="libEGL" +LIBGLESV2_NAME="libGLESv2" diff --git a/mkspecs/common/armcc.conf b/mkspecs/common/armcc.conf deleted file mode 100644 index a52fefc106..0000000000 --- a/mkspecs/common/armcc.conf +++ /dev/null @@ -1,44 +0,0 @@ -# -# qmake configuration for armcc -# - -QMAKE_COMPILER = armcc - -CONFIG += rvct_linker -QMAKE_CC = armcc -QMAKE_CFLAGS += -QMAKE_CFLAGS_DEPS += -M -QMAKE_CFLAGS_WARN_ON += -QMAKE_CFLAGS_WARN_OFF += -W -QMAKE_CFLAGS_RELEASE += -O2 -QMAKE_CFLAGS_DEBUG += -g -O0 -QMAKE_CFLAGS_HIDESYMS += --visibility_inlines_hidden - -QMAKE_CXX = armcc -QMAKE_CXXFLAGS += $$QMAKE_CFLAGS --exceptions --exceptions_unwind -QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS -QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF += $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_DEBUG += $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB += $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB -QMAKE_CXXFLAGS_YACC += $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS - -QMAKE_LINK = armlink -QMAKE_LINK_SHLIB = armlink -QMAKE_LINK_C = armlink -QMAKE_LINK_C_SHLIB = armlink -QMAKE_LFLAGS += -QMAKE_LFLAGS_RELEASE += -QMAKE_LFLAGS_DEBUG += -QMAKE_LFLAGS_APP += -QMAKE_LFLAGS_SHLIB += -QMAKE_LFLAGS_PLUGIN += $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_THREAD += - -QMAKE_AR = armar --create -QMAKE_LIB = armar --create -QMAKE_RANLIB = - diff --git a/mkspecs/common/clang-mac.conf b/mkspecs/common/clang-mac.conf index 1e51142f02..c616e20b6e 100644 --- a/mkspecs/common/clang-mac.conf +++ b/mkspecs/common/clang-mac.conf @@ -6,7 +6,5 @@ QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE QMAKE_XCODE_GCC_VERSION = com.apple.compilers.llvm.clang.1_0 -QMAKE_CXXFLAGS_CXX11 += -stdlib=libc++ -QMAKE_CXXFLAGS_GNUCXX11 += -stdlib=libc++ -QMAKE_LFLAGS_CXX11 += -stdlib=libc++ -QMAKE_LFLAGS_GNUCXX11+= -stdlib=libc++ +QMAKE_CXXFLAGS += -stdlib=libc++ +QMAKE_LFLAGS += -stdlib=libc++ diff --git a/mkspecs/common/clang.conf b/mkspecs/common/clang.conf index ee5fc14458..ee9c1b8371 100644 --- a/mkspecs/common/clang.conf +++ b/mkspecs/common/clang.conf @@ -27,9 +27,15 @@ QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG QMAKE_CXXFLAGS_CXX11 = -std=c++11 +QMAKE_CXXFLAGS_CXX14 = -std=c++1y +QMAKE_CXXFLAGS_CXX1Z = -std=c++1z QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++11 +QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++1y +QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z QMAKE_LFLAGS_CXX11 = +QMAKE_LFLAGS_CXX14 = +QMAKE_LFLAGS_CXX1Z = QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG # Wrapper tools that understand .o/.a files with LLVM bytecode instead of machine code diff --git a/mkspecs/common/g++-base.conf b/mkspecs/common/g++-base.conf index 114a441687..4254551994 100644 --- a/mkspecs/common/g++-base.conf +++ b/mkspecs/common/g++-base.conf @@ -28,5 +28,11 @@ QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_P QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE QMAKE_CXXFLAGS_CXX11 = -std=c++0x +QMAKE_CXXFLAGS_CXX14 = -std=c++1y +QMAKE_CXXFLAGS_CXX1Z = -std=c++1z QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++0x +QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++1y +QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z QMAKE_LFLAGS_CXX11 = +QMAKE_LFLAGS_CXX14 = +QMAKE_LFLAGS_CXX1Z = diff --git a/mkspecs/common/gcc-base-mac.conf b/mkspecs/common/gcc-base-mac.conf index 747f09ae81..e9bf780ec1 100644 --- a/mkspecs/common/gcc-base-mac.conf +++ b/mkspecs/common/gcc-base-mac.conf @@ -12,14 +12,6 @@ include(gcc-base.conf) QMAKE_COMPILER_DEFINES += __APPLE__ __GNUC__=4 __APPLE_CC__ -QMAKE_OBJECTIVE_CFLAGS = $$QMAKE_CFLAGS -QMAKE_OBJECTIVE_CFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_OBJECTIVE_CFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_OBJECTIVE_CFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG -QMAKE_OBJECTIVE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE -QMAKE_OBJECTIVE_CFLAGS_RELEASE_WITH_DEBUGINFO = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO -QMAKE_OBJECTIVE_CFLAGS_HIDESYMS = $$QMAKE_CXXFLAGS_HIDESYMS - QMAKE_LFLAGS += -headerpad_max_install_names QMAKE_LFLAGS_SHLIB += -single_module -dynamiclib diff --git a/mkspecs/common/gcc-base-unix.conf b/mkspecs/common/gcc-base-unix.conf index f82c8a8430..0178bda75a 100644 --- a/mkspecs/common/gcc-base-unix.conf +++ b/mkspecs/common/gcc-base-unix.conf @@ -22,3 +22,4 @@ QMAKE_LFLAGS_USE_GOLD = -fuse-ld=gold # -Bsymbolic-functions (ld) support QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list, +QMAKE_LFLAGS_VERSION_SCRIPT = -Wl,--version-script, diff --git a/mkspecs/common/ios/clang.conf b/mkspecs/common/ios/clang.conf index 36cb655229..f45b89665f 100644 --- a/mkspecs/common/ios/clang.conf +++ b/mkspecs/common/ios/clang.conf @@ -22,7 +22,7 @@ QMAKE_IOS_OBJ_CFLAGS += -Wno-deprecated-implementations -Wprotocol -Wno-select # Set build flags QMAKE_CFLAGS += $$QMAKE_IOS_CFLAGS QMAKE_CXXFLAGS += $$QMAKE_IOS_CFLAGS $$QMAKE_IOS_CXXFLAGS -QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_IOS_CFLAGS $$QMAKE_IOS_CXXFLAGS $$QMAKE_IOS_OBJ_CFLAGS +QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_IOS_OBJ_CFLAGS QMAKE_IOS_CFLAGS = QMAKE_IOS_CXXFLAGS = diff --git a/mkspecs/common/linux.conf b/mkspecs/common/linux.conf index 8d6fb6fe17..143df704b1 100644 --- a/mkspecs/common/linux.conf +++ b/mkspecs/common/linux.conf @@ -4,10 +4,15 @@ QMAKE_PLATFORM += linux +include(unix.conf) + QMAKE_CFLAGS_THREAD += -D_REENTRANT QMAKE_CXXFLAGS_THREAD += $$QMAKE_CFLAGS_THREAD QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections +QMAKE_LFLAGS_REL_RPATH = -Wl,-z,origin +QMAKE_REL_RPATH_BASE = $ORIGIN + QMAKE_INCDIR = QMAKE_LIBDIR = QMAKE_INCDIR_X11 = @@ -51,5 +56,3 @@ QMAKE_RANLIB = QMAKE_STRIP = strip QMAKE_STRIPFLAGS_LIB += --strip-unneeded - -include(unix.conf) diff --git a/mkspecs/common/mac.conf b/mkspecs/common/mac.conf index 91639ddb50..ad3c638a6f 100644 --- a/mkspecs/common/mac.conf +++ b/mkspecs/common/mac.conf @@ -6,6 +6,8 @@ QMAKE_PLATFORM += mac darwin +include(unix.conf) + QMAKE_RESOURCE = /Developer/Tools/Rez QMAKE_EXTENSION_SHLIB = dylib QMAKE_LIBDIR = @@ -20,6 +22,9 @@ QMAKE_FIX_RPATH = install_name_tool -id QMAKE_LFLAGS_RPATH = -Wl,-rpath, QMAKE_LFLAGS_GCSECTIONS = -Wl,-dead_strip +QMAKE_LFLAGS_REL_RPATH = +QMAKE_REL_RPATH_BASE = @loader_path + QMAKE_LIBS_DYNLOAD = QMAKE_LIBS_OPENGL = -framework OpenGL -framework AGL QMAKE_LIBS_THREAD = @@ -27,5 +32,3 @@ QMAKE_LIBS_THREAD = QMAKE_AR = ar cq QMAKE_RANLIB = ranlib -s QMAKE_NM = nm -P - -include(unix.conf) diff --git a/mkspecs/common/mac/qplatformdefs.h b/mkspecs/common/mac/qplatformdefs.h index 44664933df..18f62e23f8 100644 --- a/mkspecs/common/mac/qplatformdefs.h +++ b/mkspecs/common/mac/qplatformdefs.h @@ -62,6 +62,7 @@ #include <sys/socket.h> #include <sys/stat.h> #include <sys/wait.h> +#define __APPLE_USE_RFC_3542 #include <netinet/in.h> #ifndef QT_NO_IPV6IFNAME #include <net/if.h> diff --git a/mkspecs/common/msvc-base.conf b/mkspecs/common/msvc-base.conf new file mode 100644 index 0000000000..5bd144faa0 --- /dev/null +++ b/mkspecs/common/msvc-base.conf @@ -0,0 +1,56 @@ +# +# qmake configuration for Microsoft Visual Studio C/C++ Compiler +# This mkspec is used for all win32-msvcXXXX, winrt-XXX-msvcXXX +# and winphone-XXX-msvcXXX specs +# + +# +# Version-specific changes +# + +greaterThan(MSC_VER, 1499) { + # Visual Studio 2008 (9.0) / Visual C++ 15.0 and up + QMAKE_CFLAGS_MP = -MP + QMAKE_CXXFLAGS_MP = $$QMAKE_CFLAGS_MP +} + +greaterThan(MSC_VER, 1599) { + # Visual Studio 2010 (10.0) / Visual C++ 16.0 and up + MAKEFILE_GENERATOR = MSBUILD + + QMAKE_CFLAGS_AVX = -arch:AVX + QMAKE_CFLAGS_AVX2 = -arch:AVX + + VCPROJ_EXTENSION = .vcxproj +} + +greaterThan(MSC_VER, 1699) { + # Visual Studio 2012 (11.0) / Visual C++ 17.0 and up + QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -D_HAS_EXCEPTIONS=0 + QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE@QMAKE_SUBSYSTEM_SUFFIX@ + QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS@QMAKE_SUBSYSTEM_SUFFIX@ + QT_CONFIG += c++11 + CONFIG += c++11 +} + +greaterThan(MSC_VER, 1799) { + # Visual Studio 2013 (12.0) / Visual C++ 18.0 and up + QMAKE_CFLAGS += -FS + QMAKE_CXXFLAGS += -FS + + equals(MSC_VER, 1800) { + QMAKE_CFLAGS_RELEASE += -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 -Zc:throwingNew + QMAKE_CXXFLAGS_WARN_ON += -w44456 -w44457 -w44458 -wd4577 +} diff --git a/mkspecs/common/msvc-desktop.conf b/mkspecs/common/msvc-desktop.conf index e1abca46e4..eec9e1f688 100644 --- a/mkspecs/common/msvc-desktop.conf +++ b/mkspecs/common/msvc-desktop.conf @@ -9,6 +9,8 @@ isEmpty(MSC_VER)|isEmpty(MSVC_VER): error("Source mkspec must set both MSC_VER a # Baseline: Visual Studio 2005 (8.0), VC++ 14.0 # +include(angle.conf) + MAKEFILE_GENERATOR = MSVC.NET QMAKE_PLATFORM = win32 QMAKE_COMPILER = msvc @@ -74,14 +76,17 @@ 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_PREFIX_SHLIB = +QMAKE_EXTENSION_SHLIB = dll +QMAKE_PREFIX_STATICLIB = 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_OPENGL_ES2 = $${LIBEGL_NAME}.lib $${LIBGLESV2_NAME}.lib gdi32.lib user32.lib +QMAKE_LIBS_OPENGL_ES2_DEBUG = $${LIBEGL_NAME}d.lib $${LIBGLESV2_NAME}d.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 @@ -94,54 +99,6 @@ VCPROJ_EXTENSION = .vcproj VCSOLUTION_EXTENSION = .sln VCPROJ_KEYWORD = Qt4VSv1.0 -# -# Version-specific changes -# -greaterThan(MSC_VER, 1499) { - # Visual Studio 2008 (9.0) / Visual C++ 15.0 and up - QMAKE_CFLAGS_MP = -MP - QMAKE_CXXFLAGS_MP = $$QMAKE_CFLAGS_MP -} - -greaterThan(MSC_VER, 1599) { - # Visual Studio 2010 (10.0) / Visual C++ 16.0 and up - MAKEFILE_GENERATOR = MSBUILD - - QMAKE_CFLAGS_AVX = -arch:AVX - QMAKE_CFLAGS_AVX2 = -arch:AVX - - VCPROJ_EXTENSION = .vcxproj -} - -greaterThan(MSC_VER, 1699) { - # Visual Studio 2012 (11.0) / Visual C++ 17.0 and up - QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -D_HAS_EXCEPTIONS=0 - QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE@QMAKE_SUBSYSTEM_SUFFIX@ - QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS@QMAKE_SUBSYSTEM_SUFFIX@ - QT_CONFIG += c++11 - CONFIG += c++11 -} - -greaterThan(MSC_VER, 1799) { - # Visual Studio 2013 (12.0) / Visual C++ 18.0 and up - QMAKE_CFLAGS += -FS - QMAKE_CXXFLAGS += -FS - - equals(MSC_VER, 1800) { - QMAKE_CFLAGS_RELEASE += -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 -} +include(msvc-base.conf) unset(MSC_VER) diff --git a/mkspecs/common/qcc-base-qnx-armle-v7.conf b/mkspecs/common/qcc-base-qnx-armle-v7.conf index 12d393f070..ad3bb33da4 100644 --- a/mkspecs/common/qcc-base-qnx-armle-v7.conf +++ b/mkspecs/common/qcc-base-qnx-armle-v7.conf @@ -4,9 +4,10 @@ MAKEFILE_GENERATOR = UNIX -include(g++-unix.conf) include(unix.conf) +include(g++-unix.conf) + QMAKE_CC = qcc -Vgcc_ntoarmv7le QMAKE_CXX = qcc -Vgcc_ntoarmv7le QNX_CPUDIR = armle-v7 diff --git a/mkspecs/common/qcc-base-qnx-x86.conf b/mkspecs/common/qcc-base-qnx-x86.conf index b49075086d..37a5d9ce70 100644 --- a/mkspecs/common/qcc-base-qnx-x86.conf +++ b/mkspecs/common/qcc-base-qnx-x86.conf @@ -4,9 +4,10 @@ MAKEFILE_GENERATOR = UNIX -include(g++-unix.conf) include(unix.conf) +include(g++-unix.conf) + QMAKE_CC = qcc -Vgcc_ntox86 QMAKE_CXX = qcc -Vgcc_ntox86 QNX_CPUDIR = x86 diff --git a/mkspecs/common/qcc-base-qnx.conf b/mkspecs/common/qcc-base-qnx.conf index a0a88b9605..156ba0ddd8 100644 --- a/mkspecs/common/qcc-base-qnx.conf +++ b/mkspecs/common/qcc-base-qnx.conf @@ -4,7 +4,7 @@ include(qcc-base.conf) -QMAKE_PLATFORM += qnx +QMAKE_PLATFORM = qnx $$QMAKE_PLATFORM #Choose qnx QPA Plugin as default QT_QPA_DEFAULT_PLATFORM = qnx @@ -19,6 +19,7 @@ QMAKE_LFLAGS_RPATHLINK = -Wl,-rpath-link, # -Bsymbolic-functions (ld) support QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list, +QMAKE_LFLAGS_VERSION_SCRIPT = -Wl,--version-script, # Generic options for all BlackBerry/QNX qcc mkspecs QMAKE_CFLAGS_THREAD = -D_REENTRANT @@ -45,6 +46,8 @@ QMAKE_LIBDIR = $${QNX_DIR}/$${QNX_CPUDIR}/lib $${QNX_DIR}/$${QNX_CPUD QMAKE_LFLAGS += -Wl,-rpath-link,$${QNX_DIR}/$${QNX_CPUDIR}/lib -Wl,-rpath-link,$${QNX_DIR}/$${QNX_CPUDIR}/usr/lib QMAKE_CXXFLAGS_CXX11 = -Wc,-std=gnu++0x +QMAKE_CXXFLAGS_CXX14 = -Wc,-std=gnu++1y +QMAKE_CXXFLAGS_CXX1Z = -Wc,-std=gnu++1z QMAKE_LINK_C = $$QMAKE_CC QMAKE_LINK_C_SHLIB = $$QMAKE_CC diff --git a/mkspecs/common/unix.conf b/mkspecs/common/unix.conf index 2146b62f17..8521c85b99 100644 --- a/mkspecs/common/unix.conf +++ b/mkspecs/common/unix.conf @@ -12,5 +12,6 @@ QMAKE_YACCFLAGS_MANGLE += -p $base -b $base QMAKE_YACC_HEADER = $base.tab.h QMAKE_YACC_SOURCE = $base.tab.c QMAKE_PREFIX_SHLIB = lib +QMAKE_EXTENSION_SHLIB = so QMAKE_PREFIX_STATICLIB = lib QMAKE_EXTENSION_STATICLIB = a diff --git a/mkspecs/common/wince/qmake.conf b/mkspecs/common/wince/qmake.conf index 3eac38f6b7..fa1a72a1b9 100644 --- a/mkspecs/common/wince/qmake.conf +++ b/mkspecs/common/wince/qmake.conf @@ -2,6 +2,8 @@ # qmake configuration for common Windows CE # +include(../angle.conf) + MAKEFILE_GENERATOR = MSVC.NET QMAKE_PLATFORM += wince win32 CONFIG += incremental flat precompile_header autogen_precompile_source debug_and_release debug_and_release_target @@ -62,10 +64,13 @@ QMAKE_LFLAGS_LTCG = /LTCG QMAKE_LIBS_NETWORK = ws2.lib QMAKE_LIBS_OPENGL = QMAKE_LIBS_COMPAT = +QMAKE_PREFIX_SHLIB = +QMAKE_EXTENSION_SHLIB = dll +QMAKE_PREFIX_STATICLIB = QMAKE_EXTENSION_STATICLIB = lib -QMAKE_LIBS_EGL = libEGL.lib -QMAKE_LIBS_OPENGL_ES2 = libGLESv2.lib +QMAKE_LIBS_EGL = $${LIBEGL_NAME}.lib +QMAKE_LIBS_OPENGL_ES2 = $${LIBGLESV2_NAME}.lib QMAKE_LIBS_QT_ENTRY = -lqtmain diff --git a/mkspecs/common/winrt_winphone/manifests/10.0/AppxManifest.xml.in b/mkspecs/common/winrt_winphone/manifests/10.0/AppxManifest.xml.in index c6419660c1..d091ea3b82 100644 --- a/mkspecs/common/winrt_winphone/manifests/10.0/AppxManifest.xml.in +++ b/mkspecs/common/winrt_winphone/manifests/10.0/AppxManifest.xml.in @@ -9,7 +9,8 @@ <Identity Name=\"$${WINRT_MANIFEST.identity}\" Publisher=\"$${WINRT_MANIFEST.publisherid}\" - Version=\"$${WINRT_MANIFEST.version}\" /> + Version=\"$${WINRT_MANIFEST.version}\" + ProcessorArchitecture=\"$${WINRT_MANIFEST.architecture}\" /> <mp:PhoneIdentity PhoneProductId=\"$${WINRT_MANIFEST.identity}\" PhonePublisherId=\"$${WINRT_MANIFEST.phone_publisher_id}\"/> @@ -20,7 +21,7 @@ </Properties> <Dependencies> - <TargetDeviceFamily Name=\"Windows.Universal\" MinVersion=\"10.0.10069.0\" MaxVersionTested=\"10.0.10069.0\" /> + <TargetDeviceFamily Name=\"Windows.Universal\" MinVersion=\"10.0.10069.0\" MaxVersionTested=\"10.0.10069.0\" />$${WINRT_MANIFEST.dependencies} </Dependencies> <Resources> @@ -42,8 +43,5 @@ </uap:VisualElements> </Application> </Applications> - - <Capabilities> - <Capability Name=\"internetClient\" /> - </Capabilities> + $${WINRT_MANIFEST.capabilities} </Package> diff --git a/mkspecs/common/winrt_winphone/manifests/8.1/AppxManifest.xml.in b/mkspecs/common/winrt_winphone/manifests/8.1/AppxManifest.xml.in index 038184ee4d..b02b691f48 100644 --- a/mkspecs/common/winrt_winphone/manifests/8.1/AppxManifest.xml.in +++ b/mkspecs/common/winrt_winphone/manifests/8.1/AppxManifest.xml.in @@ -41,6 +41,7 @@ <m2:SplashScreen Image=\"$${WINRT_MANIFEST.logo_620x300}\" />$${WINRT_MANIFEST.rotation_preference} </m2:VisualElements> </Application> - </Applications>$${WINRT_MANIFEST.capabilities}$${WINRT_MANIFEST.dependencies} + </Applications>$${WINRT_MANIFEST.capabilities} + $${WINRT_MANIFEST.dependencies} </Package> <!-- Generated by qmake using the $$[QMAKE_XSPEC] mkspec. --> diff --git a/mkspecs/common/winrt_winphone/manifests/8.1_wp/AppxManifest.xml.in b/mkspecs/common/winrt_winphone/manifests/8.1_wp/AppxManifest.xml.in index 67830bd4ad..235fe96794 100644 --- a/mkspecs/common/winrt_winphone/manifests/8.1_wp/AppxManifest.xml.in +++ b/mkspecs/common/winrt_winphone/manifests/8.1_wp/AppxManifest.xml.in @@ -42,6 +42,7 @@ <m3:SplashScreen Image=\"$${WINRT_MANIFEST.logo_480x800}\" />$${WINRT_MANIFEST.rotation_preference} </m3:VisualElements> </Application> - </Applications>$${WINRT_MANIFEST.capabilities}$${WINRT_MANIFEST.dependencies} + </Applications>$${WINRT_MANIFEST.capabilities} + $${WINRT_MANIFEST.dependencies} </Package> <!-- Generated by qmake using the $$[QMAKE_XSPEC] mkspec. --> diff --git a/mkspecs/common/winrt_winphone/qmake.conf b/mkspecs/common/winrt_winphone/qmake.conf index ca5119bded..bf237882ff 100644 --- a/mkspecs/common/winrt_winphone/qmake.conf +++ b/mkspecs/common/winrt_winphone/qmake.conf @@ -4,10 +4,12 @@ # Written for Microsoft Visual C++ # +include(../angle.conf) + MAKEFILE_GENERATOR = MSBUILD QMAKE_COMPILER = msvc QMAKE_PLATFORM = winrt win32 -CONFIG += incremental flat precompile_header autogen_precompile_source debug_and_release debug_and_release_target no_generated_target_info package_manifest rtti +CONFIG += incremental flat precompile_header autogen_precompile_source debug_and_release debug_and_release_target package_manifest rtti DEFINES += UNICODE WIN32 QT_LARGEFILE_SUPPORT Q_BYTE_ORDER=Q_LITTLE_ENDIAN \ QT_NO_PRINTER QT_NO_PRINTDIALOG # TODO: Remove when printing is re-enabled @@ -70,14 +72,17 @@ QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS QMAKE_LFLAGS_EXE = /MANIFEST:NO QMAKE_LFLAGS_DLL = /MANIFEST:NO /DLL QMAKE_LFLAGS_LTCG = /LTCG +QMAKE_PREFIX_SHLIB = +QMAKE_EXTENSION_SHLIB = dll +QMAKE_PREFIX_STATICLIB = QMAKE_EXTENSION_STATICLIB = lib QMAKE_LIBS += runtimeobject.lib QMAKE_LIBS_CORE = QMAKE_LIBS_GUI = QMAKE_LIBS_NETWORK = -QMAKE_LIBS_OPENGL_ES2 = libEGL.lib libGLESv2.lib -QMAKE_LIBS_OPENGL_ES2_DEBUG = libEGLd.lib libGLESv2d.lib +QMAKE_LIBS_OPENGL_ES2 = $${LIBEGL_NAME}.lib $${LIBGLESV2_NAME}.lib +QMAKE_LIBS_OPENGL_ES2_DEBUG = $${LIBEGL_NAME}d.lib $${LIBGLESV2_NAME}d.lib QMAKE_LIBS_QT_ENTRY = -lqtmain @@ -89,4 +94,9 @@ VCPROJ_EXTENSION = .vcxproj VCSOLUTION_EXTENSION = .sln VCPROJ_KEYWORD = Qt4VSv1.0 WINRT_ASSETS_PATH = $$PWD/assets + +include(../msvc-base.conf) + +unset(MSC_VER) + load(qt_config) diff --git a/mkspecs/cygwin-g++/qmake.conf b/mkspecs/cygwin-g++/qmake.conf index 53cd35611f..a4f64d9c66 100644 --- a/mkspecs/cygwin-g++/qmake.conf +++ b/mkspecs/cygwin-g++/qmake.conf @@ -6,7 +6,7 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = cygwin unix posix -CONFIG += incremental +CONFIG += incremental unversioned_libname QMAKE_INCREMENTAL_STYLE = sublib QMAKE_COMPILER = gcc @@ -56,8 +56,6 @@ QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB QMAKE_LFLAGS_SONAME = -Wl,-soname, QMAKE_LFLAGS_THREAD = QMAKE_LFLAGS_RPATH = -Wl,-rpath, -QMAKE_CYGWIN_SHLIB = 1 -QMAKE_CYGWIN_EXE = 1 QMAKE_LIBS = QMAKE_LIBS_DYNLOAD = -ldl @@ -65,6 +63,7 @@ QMAKE_LIBS_X11 = -lXext -lX11 QMAKE_LIBS_OPENGL = -lGL QMAKE_LIBS_THREAD = -lpthread QMAKE_PREFIX_SHLIB = lib +QMAKE_EXTENSION_SHLIB = dll QMAKE_PREFIX_STATICLIB = lib QMAKE_EXTENSION_STATICLIB = a diff --git a/mkspecs/darwin-g++/qmake.conf b/mkspecs/darwin-g++/qmake.conf index ab333b1684..79f81a990f 100644 --- a/mkspecs/darwin-g++/qmake.conf +++ b/mkspecs/darwin-g++/qmake.conf @@ -9,6 +9,8 @@ QMAKE_PLATFORM = osx macx mac darwin CONFIG += native_precompiled_headers DEFINES += __USE_WS_X11__ +include(../common/unix.conf) + QMAKE_COMPILER = gcc QMAKE_CC = cc @@ -84,5 +86,4 @@ QMAKE_PCH_OUTPUT_EXT = .gch QMAKE_CXXFLAGS_PRECOMPILE += -x objective-c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/devices/common/linux_device_post.conf b/mkspecs/devices/common/linux_device_post.conf index d90d25191f..88fa31d805 100644 --- a/mkspecs/devices/common/linux_device_post.conf +++ b/mkspecs/devices/common/linux_device_post.conf @@ -3,6 +3,10 @@ contains(DISTRO_OPTS, deb-multi-arch) { -Wl,-rpath-link,$$[QT_SYSROOT]/lib/$${GCC_MACHINE_DUMP} } +contains(DISTRO_OPTS, boot2qt) { + QMAKE_PLATFORM += boot2qt +} + QMAKE_CFLAGS += $$COMPILER_FLAGS QMAKE_CXXFLAGS += $$COMPILER_FLAGS QMAKE_LFLAGS += $$LINKER_FLAGS diff --git a/mkspecs/devices/common/linux_device_pre.conf b/mkspecs/devices/common/linux_device_pre.conf index 16becbdd52..cfbdc23d63 100644 --- a/mkspecs/devices/common/linux_device_pre.conf +++ b/mkspecs/devices/common/linux_device_pre.conf @@ -23,3 +23,6 @@ QMAKE_AR = $${CROSS_COMPILE}ar cqs QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy QMAKE_NM = $${CROSS_COMPILE}nm -P QMAKE_STRIP = $${CROSS_COMPILE}strip + +contains(DISTRO_OPTS, deb-multi-arch): \ + PKG_CONFIG = $${CROSS_COMPILE}pkg-config diff --git a/mkspecs/devices/linux-arm-generic-g++/qmake.conf b/mkspecs/devices/linux-arm-generic-g++/qmake.conf new file mode 100644 index 0000000000..3dbd297b94 --- /dev/null +++ b/mkspecs/devices/linux-arm-generic-g++/qmake.conf @@ -0,0 +1,9 @@ +# +# Generic qmake configuration for building with g++ on arm devices. +# +# A minimal configure line could look something like this: +# ./configure -device arm-generic-g++ -device-option CROSS_COMPILE=arm-linux-gnueabi- + +include(../common/linux_device_pre.conf) +include(../common/linux_arm_device_post.conf) +load(qt_config) diff --git a/mkspecs/unsupported/linux-armcc/qplatformdefs.h b/mkspecs/devices/linux-arm-generic-g++/qplatformdefs.h index 946b4d2b90..5ae49b35dd 100644 --- a/mkspecs/unsupported/linux-armcc/qplatformdefs.h +++ b/mkspecs/devices/linux-arm-generic-g++/qplatformdefs.h @@ -31,62 +31,4 @@ ** ****************************************************************************/ -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -// 1) need to reset default environment if _BSD_SOURCE is defined -// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0 -// 3) it seems older glibc need this to include the X/Open stuff -#ifndef _GNU_SOURCE -# define _GNU_SOURCE -#endif - -#include <unistd.h> - - -// We are hot - unistd.h should have turned on the specific APIs we requested - -#include <features.h> -#include <pthread.h> -#include <dirent.h> -#include <fcntl.h> -#include <grp.h> -#include <pwd.h> -#include <signal.h> - -#include <sys/types.h> -#include <sys/ioctl.h> -#include <sys/ipc.h> -#include <sys/time.h> -#include <sys/shm.h> -#include <sys/socket.h> -#include <sys/stat.h> -#include <sys/wait.h> -#include <netinet/in.h> -#ifndef QT_NO_IPV6IFNAME -#include <net/if.h> -#endif - -#define QT_USE_XOPEN_LFS_EXTENSIONS -#include "../../common/posix/qplatformdefs.h" - -#undef QT_SOCKLEN_T - -#if defined(__GLIBC__) && (__GLIBC__ >= 2) -#define QT_SOCKLEN_T socklen_t -#else -#define QT_SOCKLEN_T int -#endif - -#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) -#define QT_SNPRINTF ::snprintf -#define QT_VSNPRINTF ::vsnprintf -#endif - -#endif // QPLATFORMDEFS_H +#include "../../linux-g++/qplatformdefs.h" diff --git a/mkspecs/devices/linux-jetson-tk1-pro-g++/qmake.conf b/mkspecs/devices/linux-jetson-tk1-pro-g++/qmake.conf new file mode 100644 index 0000000000..ca9ebda087 --- /dev/null +++ b/mkspecs/devices/linux-jetson-tk1-pro-g++/qmake.conf @@ -0,0 +1,38 @@ +# +# qmake configuration for the Jetson TK1 Pro boards +# +# A typical configure line might look like: +# configure \ +# -device jetson-tk1-pro \ +# -device-option VIBRANTE_SDK_TOPDIR=/opt/nvidia/vibrante-vcm30t124-linux +# -device-option CROSS_COMPILE=/opt/nvidia/toolchains/tegra-4.8.1-nv/usr/bin/arm-cortex_a15-linux-gnueabi/arm-cortex_a15-linux-gnueabi- \ +# -sysroot /opt/nvidia/vibrante-vcm30t124-linux/targetfs \ +# -no-gcc-sysroot + +include(../common/linux_device_pre.conf) + +isEmpty(VIBRANTE_SDK_TOPDIR):error("You must pass -device-option VIBRANTE_SDK_TOPDIR=/path/to/sdk") + +QMAKE_INCDIR += \ + $${VIBRANTE_SDK_TOPDIR}/include \ + $$[QT_SYSROOT]/usr/include + +QMAKE_LIBDIR += \ + $${VIBRANTE_SDK_TOPDIR}/lib-target \ + $$[QT_SYSROOT]/usr/lib \ + $$[QT_SYSROOT]/lib/arm-linux-gnueabihf \ + $$[QT_SYSROOT]/usr/lib/arm-linux-gnueabihf + +QMAKE_LFLAGS += \ + -Wl,-rpath-link,$${VIBRANTE_SDK_TOPDIR}/lib-target \ + -Wl,-rpath-link,$$[QT_SYSROOT]/usr/lib \ + -Wl,-rpath-link,$$[QT_SYSROOT]/usr/lib/arm-linux-gnueabihf \ + -Wl,-rpath-link,$$[QT_SYSROOT]/lib/arm-linux-gnueabihf + +DISTRO_OPTS += hard-float +COMPILER_FLAGS += -mtune=cortex-a15 -march=armv7-a -mfpu=neon-vfpv4 -DWIN_INTERFACE_CUSTOM + +EGLFS_DEVICE_INTEGRATION = eglfs_kms_egldevice + +include(../common/linux_arm_device_post.conf) +load(qt_config) diff --git a/mkspecs/devices/linux-jetson-tk1-pro-g++/qplatformdefs.h b/mkspecs/devices/linux-jetson-tk1-pro-g++/qplatformdefs.h new file mode 100644 index 0000000000..beacd150b8 --- /dev/null +++ b/mkspecs/devices/linux-jetson-tk1-pro-g++/qplatformdefs.h @@ -0,0 +1,34 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the plugins 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 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. +** +** 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. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "../../linux-g++/qplatformdefs.h" diff --git a/mkspecs/devices/linux-nuc-g++/qmake.conf b/mkspecs/devices/linux-nuc-g++/qmake.conf new file mode 100644 index 0000000000..fef5991341 --- /dev/null +++ b/mkspecs/devices/linux-nuc-g++/qmake.conf @@ -0,0 +1,20 @@ +# +# qmake configuration for the Intel NUC DE3815TYKE targeting EGL/GLES either via KMS (eglfs) or Wayland +# +# Verified with a core-image-weston image produced by Yocto. + +include(../common/linux_device_pre.conf) + +QMAKE_LIBS_EGL += -lEGL +QMAKE_LIBS_OPENGL_ES2 += -lGLESv2 -lEGL + +NUC_CFLAGS = -m64 +QMAKE_CFLAGS += $$NUC_CFLAGS +QMAKE_CXXFLAGS += $$NUC_CFLAGS + +# Preferred eglfs backend +EGLFS_DEVICE_INTEGRATION = eglfs_kms + +include(../common/linux_device_post.conf) + +load(qt_config) diff --git a/mkspecs/devices/linux-nuc-g++/qplatformdefs.h b/mkspecs/devices/linux-nuc-g++/qplatformdefs.h new file mode 100644 index 0000000000..5ae49b35dd --- /dev/null +++ b/mkspecs/devices/linux-nuc-g++/qplatformdefs.h @@ -0,0 +1,34 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** 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 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. +** +** 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. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "../../linux-g++/qplatformdefs.h" diff --git a/mkspecs/devices/linux-rasp-pi-g++/qmake.conf b/mkspecs/devices/linux-rasp-pi-g++/qmake.conf index bccb87e869..89177b7fa2 100644 --- a/mkspecs/devices/linux-rasp-pi-g++/qmake.conf +++ b/mkspecs/devices/linux-rasp-pi-g++/qmake.conf @@ -8,13 +8,16 @@ QMAKE_LFLAGS += -Wl,-rpath-link,$$[QT_SYSROOT]/opt/vc/lib QMAKE_LIBDIR_OPENGL_ES2 = $$[QT_SYSROOT]/opt/vc/lib QMAKE_LIBDIR_EGL = $$QMAKE_LIBDIR_OPENGL_ES2 +QMAKE_LIBDIR_OPENVG = $$QMAKE_LIBDIR_OPENGL_ES2 QMAKE_INCDIR_EGL = $$[QT_SYSROOT]/opt/vc/include \ $$[QT_SYSROOT]/opt/vc/include/interface/vcos/pthreads \ $$[QT_SYSROOT]/opt/vc/include/interface/vmcs_host/linux QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL} +QMAKE_INCDIR_OPENVG = $${QMAKE_INCDIR_EGL} QMAKE_LIBS_EGL = -lEGL -lGLESv2 +QMAKE_LIBS_OPENVG = -lEGL -lOpenVG -lGLESv2 contains(DISTRO, squeeze) { #Debian Squeeze: Legacy everything diff --git a/mkspecs/devices/linux-rasp-pi2-g++/qmake.conf b/mkspecs/devices/linux-rasp-pi2-g++/qmake.conf index 9be3f401ce..2911f08873 100644 --- a/mkspecs/devices/linux-rasp-pi2-g++/qmake.conf +++ b/mkspecs/devices/linux-rasp-pi2-g++/qmake.conf @@ -6,17 +6,21 @@ QMAKE_LFLAGS += -Wl,-rpath-link,$$[QT_SYSROOT]/opt/vc/lib QMAKE_LIBDIR_OPENGL_ES2 = $$[QT_SYSROOT]/opt/vc/lib QMAKE_LIBDIR_EGL = $$QMAKE_LIBDIR_OPENGL_ES2 +QMAKE_LIBDIR_OPENVG = $$QMAKE_LIBDIR_OPENGL_ES2 QMAKE_INCDIR_EGL = $$[QT_SYSROOT]/opt/vc/include \ $$[QT_SYSROOT]/opt/vc/include/interface/vcos/pthreads \ $$[QT_SYSROOT]/opt/vc/include/interface/vmcs_host/linux QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL} +QMAKE_INCDIR_OPENVG = $${QMAKE_INCDIR_EGL} QMAKE_LIBS_EGL = -lEGL -lGLESv2 -QMAKE_CFLAGS += -march=armv7-a -marm -mthumb-interwork -mfpu=neon-vfpv4 -mtune=cortex-a7 -mabi=aapcs-linux +QMAKE_LIBS_OPENVG = -lEGL -lOpenVG -lGLESv2 +QMAKE_CFLAGS += -march=armv7-a -marm -mthumb-interwork -mfpu=neon-vfpv4 -mtune=cortex-a7 -mabi=aapcs-linux QMAKE_CXXFLAGS = $$QMAKE_CFLAGS DISTRO_OPTS += hard-float +DISTRO_OPTS += deb-multi-arch # Preferred eglfs backend EGLFS_DEVICE_INTEGRATION = eglfs_brcm diff --git a/mkspecs/features/c++11.prf b/mkspecs/features/c++11.prf deleted file mode 100644 index 3f31f8ea82..0000000000 --- a/mkspecs/features/c++11.prf +++ /dev/null @@ -1,16 +0,0 @@ -strict_c++|isEmpty(QMAKE_CXXFLAGS_GNUCXX11) { - QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_CXX11 - QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_CXXFLAGS_CXX11 - QMAKE_LFLAGS += $$QMAKE_LFLAGS_CXX11 -} else { - QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_GNUCXX11 - QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_CXXFLAGS_GNUCXX11 - QMAKE_LFLAGS += $$QMAKE_LFLAGS_GNUCXX11 -} - -contains(QMAKE_LFLAGS, -stdlib=libc++) { - equals(QMAKE_MACOSX_DEPLOYMENT_TARGET, 10.6): \ - QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7 - contains(QMAKE_IOS_DEPLOYMENT_TARGET, ^4.*): \ - QMAKE_IOS_DEPLOYMENT_TARGET = 5.0 -} diff --git a/mkspecs/features/c++14.prf b/mkspecs/features/c++14.prf deleted file mode 100644 index 076458560d..0000000000 --- a/mkspecs/features/c++14.prf +++ /dev/null @@ -1,23 +0,0 @@ -intel_icc { - # ICC does not support C++14 yet -} else: clang { - # Clang has supported -std=c++1y since version 3.2 - greaterThan(QT_CLANG_MAJOR_VERSION, 3)|greaterThan(QT_CLANG_MINOR_VERSION, 1) { - QMAKE_CXXFLAGS_CXX11 = -std=c++1y - QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++1y - } - # Unknown how long Apple Clang has supported -std=c++1y, but at least since XCode 5.0 - greaterThan(QT_APPLE_CLANG_MAJOR_VERSION, 4) { - QMAKE_CXXFLAGS_CXX11 = -std=c++1y - QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++1y - } -} else: gcc { - # GCC has supported -std=c++1y since 4.8 - greaterThan(QT_GCC_MAJOR_VERSION, 4)|greaterThan(QT_GCC_MINOR_VERSION, 7) { - QMAKE_CXXFLAGS_CXX11 = -std=c++1y - QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++1y - } -} - -# Delegate to c++11.prf -include(c++11.prf) diff --git a/mkspecs/features/data/unix/findclasslist.pl b/mkspecs/features/data/unix/findclasslist.pl new file mode 100644 index 0000000000..9113b4921c --- /dev/null +++ b/mkspecs/features/data/unix/findclasslist.pl @@ -0,0 +1,59 @@ +#!/usr/bin/env perl +############################################################################# +## +## Copyright (C) 2015 Intel Corporation +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the build configuration tools 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 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. +## +## 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. +## +## $QT_END_LICENSE$ +## +############################################################################# + +use strict; +my $syntax = "findclasslist.pl [private header list]\n" . + "Replaces \@CLASSLIST\@ with the classes found in the header files\n"; +$\ = $/; +while (<STDIN>) { + chomp; + unless (/\@CLASSLIST\@/) { + print; + next; + } + + # Replace @CLASSLIST@ with the class list + for my $header (@ARGV) { + open HDR, "<$header" or die("Could not open header $header: $!"); + my $comment = " /* $header */"; + while (my $line = <HDR>) { + # Match a struct or class declaration, but not a forward declaration + $line =~ /^(?:struct|class) (?:Q_.*_EXPORT)? (\w+)(?!;)/ or next; + print $comment if $comment; + printf " *%d%s*;\n", length $1, $1; + $comment = 0; + } + close HDR; + } +} diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf index 806896ff58..450e3420b9 100644 --- a/mkspecs/features/default_post.prf +++ b/mkspecs/features/default_post.prf @@ -35,7 +35,6 @@ force_debug_info|debug: \ force_debug_info { QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO - QMAKE_OBJECTIVE_CFLAGS_RELEASE = $$QMAKE_OBJECTIVE_CFLAGS_RELEASE_WITH_DEBUGINFO QMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO } @@ -51,13 +50,11 @@ optimize_full { debug { QMAKE_CFLAGS += $$QMAKE_CFLAGS_DEBUG QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_DEBUG - QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_DEBUG QMAKE_LFLAGS += $$QMAKE_LFLAGS_DEBUG QMAKE_LIBFLAGS += $$QMAKE_LIBFLAGS_DEBUG } else { QMAKE_CFLAGS += $$QMAKE_CFLAGS_RELEASE QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_RELEASE - QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_RELEASE QMAKE_LFLAGS += $$QMAKE_LFLAGS_RELEASE QMAKE_LIBFLAGS += $$QMAKE_LIBFLAGS_RELEASE } @@ -98,6 +95,20 @@ breakpad { !isEmpty(QMAKE_STRIP):QMAKE_POST_LINK = $$QMAKE_POST_LINK$$escape_expand(\\n\\t)$$quote($$QMAKE_STRIP $$DEBUGFILENAME) } +c++11|c++14|c++1z { + c++1z: cxxstd = CXX1Z + else: c++14: cxxstd = CXX14 + else: cxxstd = CXX11 + + # Check if we should disable the GNU extensions or not + !strict_c++:!isEmpty(QMAKE_CXXFLAGS_GNU$$cxxstd): cxxstd = GNU$$cxxstd + + QMAKE_CXXFLAGS += $$eval(QMAKE_CXXFLAGS_$$cxxstd) + QMAKE_LFLAGS += $$eval(QMAKE_LFLAGS_$$cxxstd) + + unset(cxxstd) +} + !precompile_header: SOURCES += $$NO_PCH_SOURCES # Add .nexe extention on NaCl diff --git a/mkspecs/features/default_pre.prf b/mkspecs/features/default_pre.prf index eb3281ea1d..a247b46a72 100644 --- a/mkspecs/features/default_pre.prf +++ b/mkspecs/features/default_pre.prf @@ -8,6 +8,8 @@ CONFIG = \ testcase_targets import_plugins import_qpa_plugin \ $$CONFIG +contains(QT_CONFIG, c++11):lessThan(QT_COMPILER_STDCXX, 201103): CONFIG += c++11 + !build_pass:defined(QT_EDITION, var):!equals(QT_EDITION, "OpenSource"):!equals(QT_EDITION, "Preview") { # # call license checker (but cache result for one day) diff --git a/mkspecs/features/device_config.prf b/mkspecs/features/device_config.prf index cd3a0cf8cd..e0383ef530 100644 --- a/mkspecs/features/device_config.prf +++ b/mkspecs/features/device_config.prf @@ -19,10 +19,15 @@ defineTest(deviceSanityCheckCompiler) { else: \ sfx = + # Build the compiler filename using the first value in QMAKE_CXX in order to + # support tools like ccache, which give QMAKE_CXX values of the form: + # ccache <path_to_compiler> + compiler = $$first(QMAKE_CXX)$$sfx + # Check if the binary exists with an absolute path. Do this check # before the CROSS_COMPILE empty check below to allow the mkspec # to derive the compiler path from other device options. - exists($$QMAKE_CXX$$sfx):return() + exists($$compiler):return() # Check for possible reasons of failure # check if CROSS_COMPILE device-option is set @@ -31,7 +36,7 @@ defineTest(deviceSanityCheckCompiler) { # Check if QMAKE_CXX points to an executable. ensurePathEnv() for (dir, QMAKE_PATH_ENV) { - exists($$dir/$${QMAKE_CXX}$$sfx): \ + exists($$dir/$${compiler}): \ return() } diff --git a/mkspecs/features/exclusive_builds.prf b/mkspecs/features/exclusive_builds.prf index 4d88dcd15e..5d06198ae4 100644 --- a/mkspecs/features/exclusive_builds.prf +++ b/mkspecs/features/exclusive_builds.prf @@ -34,4 +34,5 @@ defineTest(addExclusiveBuilds) { } # Default directories to process -QMAKE_DIR_REPLACE = OBJECTS_DIR MOC_DIR RCC_DIR PRECOMPILED_DIR DESTDIR +QMAKE_DIR_REPLACE = OBJECTS_DIR MOC_DIR RCC_DIR PRECOMPILED_DIR QGLTF_DIR DESTDIR +QMAKE_DIR_REPLACE_SANE += QGLTF_DIR diff --git a/mkspecs/features/gcov.prf b/mkspecs/features/gcov.prf index 330831fc0e..f45ba4c520 100644 --- a/mkspecs/features/gcov.prf +++ b/mkspecs/features/gcov.prf @@ -25,7 +25,6 @@ QMAKE_CFLAGS += -fprofile-arcs -ftest-coverage QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage -QMAKE_OBJECTIVE_CFLAGS += -fprofile-arcs -ftest-coverage QMAKE_LFLAGS += -fprofile-arcs -ftest-coverage QMAKE_CLEAN += $(OBJECTS_DIR)*.gcno and $(OBJECTS_DIR)*.gcda diff --git a/mkspecs/features/lex.prf b/mkspecs/features/lex.prf index 19ffe1932c..1ca9ae8afa 100644 --- a/mkspecs/features/lex.prf +++ b/mkspecs/features/lex.prf @@ -26,7 +26,7 @@ $(MOVE) $$intermediate_file ${QMAKE_FILE_OUT} $$escape_expand(\\n\\t) unset(intermediate_file) } - lex.output = $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}_lex$${first(QMAKE_EXT_CPP)} + lex.output = $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_MOD_LEX}$${first(QMAKE_EXT_CPP)} silent:lex.commands = @echo Lex ${QMAKE_FILE_IN} && $$lex.commands QMAKE_EXTRA_COMPILERS += lex diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf index 38b0799d30..b53100cbf7 100644 --- a/mkspecs/features/mac/default_post.prf +++ b/mkspecs/features/mac/default_post.prf @@ -1,20 +1,7 @@ load(default_post) !no_objective_c:CONFIG += objective_c -qt:!isEmpty(QT_CONFIG) { - # Pick a suitable default architecture for qmake-based applications. - # If the Qt package contains one of x86 and x86_64, pick that one. If it - # contains both then use the compiler default. Make a similar decision for - # PowerPC-based systems. Note that this logic assumes that Qt has been - # configured with an architecture that is usable on the system. - contains(QMAKE_HOST.arch, ppc)|contains(QMAKE_HOST.arch, "Power Macintosh") { - !contains(QT_CONFIG, ppc64):contains(QT_CONFIG, ppc):CONFIG += ppc - contains(QT_CONFIG, ppc64):!contains(QT_CONFIG, ppc):CONFIG += ppc64 - } else { - !contains(QT_CONFIG, x86_64):contains(QT_CONFIG, x86):CONFIG += x86 - contains(QT_CONFIG, x86_64):!contains(QT_CONFIG, x86):CONFIG += x86_64 - } - +qt { contains(QT_CONFIG, static) { # C++11 support means using libc++ instead of libstd++. As the # two libraries are incompatible we need to ensure the end user @@ -37,31 +24,6 @@ qt:!isEmpty(QT_CONFIG) { QMAKE_LFLAGS += -stdlib=libstdc++ } } - # If Qt was built with shared libraries with rpath support and project does - # not specify own rpaths (including empty list) add one pointing to Qt - # libraries. This applies only to apps, since all loaded libraries inherit - # rpaths from current process executable. - else:!if(host_build:force_bootstrap):equals(TEMPLATE, app):!defined(QMAKE_RPATHDIR, var):contains(QT_CONFIG, rpath) { - # If app is expected to be installed into the Qt prefix build, use - # relative path, so all SDK tools and examples work when relocated. - prefix_build:defined(target.path, var):\ - contains(target.path, "$$re_escape($$[QT_INSTALL_PREFIX])/.*"):\ - # Tests are an exception, since they are launched in their build not - # install location by CI, so we cannot use relative rpaths there. - !contains(target.path, "$$re_escape($$[QT_INSTALL_TESTS])/.*") { - app_bundle { - ios: binpath = $$target.path/$${TARGET}.app - else: binpath = $$target.path/$${TARGET}.app/Contents/MacOS - } else { - binpath = $$target.path - } - QMAKE_RPATHDIR = @loader_path/$$relative_path($$[QT_INSTALL_LIBS], $$binpath) - unset(binpath) - } else { - # Otherwise, use absolute path to Qt libraries - QMAKE_RPATHDIR = $$[QT_INSTALL_LIBS] - } - } } macx-xcode:!isEmpty(QMAKE_XCODE_DEBUG_INFORMATION_FORMAT) { diff --git a/mkspecs/features/mac/objective_c.prf b/mkspecs/features/mac/objective_c.prf index 0f25f41eec..b3b1d4be99 100644 --- a/mkspecs/features/mac/objective_c.prf +++ b/mkspecs/features/mac/objective_c.prf @@ -1,23 +1,10 @@ -for(source, SOURCES) { - contains(source,.*\\.mm?$) { - warning(Objective-C source \'$$source\' found in SOURCES but should be in OBJECTIVE_SOURCES) - SOURCES -= $$source - OBJECTIVE_SOURCES += $$source - } -} +# Objective-C/C++ sources go in SOURCES, like all other sources +SOURCES += $$OBJECTIVE_SOURCES -isEmpty(QMAKE_OBJECTIVE_CC):QMAKE_OBJECTIVE_CC = $$QMAKE_CC +# Strip C/C++ flags from QMAKE_OBJECTIVE_CFLAGS just in case +QMAKE_OBJECTIVE_CFLAGS -= $$QMAKE_CFLAGS $$QMAKE_CXXFLAGS -OBJECTIVE_C_OBJECTS_DIR = $$OBJECTS_DIR -isEmpty(OBJECTIVE_C_OBJECTS_DIR):OBJECTIVE_C_OBJECTS_DIR = . -isEmpty(QMAKE_EXT_OBJECTIVE_C):QMAKE_EXT_OBJECTIVE_C = .mm .m - -objective_c.dependency_type = TYPE_C -objective_c.variables = QMAKE_OBJECTIVE_CFLAGS -objective_c.commands = $$QMAKE_OBJECTIVE_CC -c $(QMAKE_COMP_QMAKE_OBJECTIVE_CFLAGS) $(DEFINES) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT} -objective_c.output = $$OBJECTIVE_C_OBJECTS_DIR/${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)} -objective_c.input = OBJECTIVE_SOURCES -objective_c.name = Compile ${QMAKE_FILE_IN} -silent:objective_c.commands = @echo objective-c ${QMAKE_FILE_IN} && $$objective_c.commands -QMAKE_EXTRA_COMPILERS += objective_c +# Add Objective-C/C++ flags to C/C++ flags, the compiler can handle it +QMAKE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS +QMAKE_CXXFLAGS += $$QMAKE_OBJECTIVE_CFLAGS diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf index e238f8e005..210843bd94 100644 --- a/mkspecs/features/mac/sdk.prf +++ b/mkspecs/features/mac/sdk.prf @@ -32,7 +32,6 @@ isEmpty(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.version) { !equals(MAKEFILE_GENERATOR, XCODE) { QMAKE_CFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH QMAKE_CXXFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH - QMAKE_OBJECTIVE_CFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH QMAKE_LFLAGS += -Wl,-syslibroot,$$QMAKE_MAC_SDK_PATH } @@ -72,9 +71,6 @@ isEmpty(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.platform_name) { # FIXME: Get the version_min_flag out of the platform's 'Native Build System.xcspec' version_identifier = $$replace(QMAKE_MAC_PLATFORM_NAME, iphonesimulator, ios-simulator) - # C++11 support may affect the deployment target - c++11: load(c++11) - ios:!host_build: \ deployment_target = $$QMAKE_IOS_DEPLOYMENT_TARGET else: \ @@ -83,6 +79,5 @@ isEmpty(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.platform_name) { version_min_flag = -m$${version_identifier}-version-min=$$deployment_target QMAKE_CFLAGS += $$version_min_flag QMAKE_CXXFLAGS += $$version_min_flag - QMAKE_OBJECTIVE_CFLAGS += $$version_min_flag QMAKE_LFLAGS += $$version_min_flag } diff --git a/mkspecs/features/moc.prf b/mkspecs/features/moc.prf index c0b5682446..8e8deec63c 100644 --- a/mkspecs/features/moc.prf +++ b/mkspecs/features/moc.prf @@ -16,7 +16,7 @@ MOC_INCLUDEPATH = $$QMAKESPEC $$_PRO_FILE_PWD_ $$MOC_INCLUDEPATH $$QMAKE_DEFAULT # has too many includes. We do this to overcome a command-line limit on Win < XP WIN_INCLUDETEMP= win32:count(MOC_INCLUDEPATH, 40, >) { - WIN_INCLUDETEMP = $$MOC_DIR/mocinclude.tmp + WIN_INCLUDETEMP = $$MOC_DIR/mocinclude.opt WIN_INCLUDETEMP_CONT = for (inc, MOC_INCLUDEPATH): \ diff --git a/mkspecs/features/qgltf.prf b/mkspecs/features/qgltf.prf new file mode 100644 index 0000000000..c62e8c2ee8 --- /dev/null +++ b/mkspecs/features/qgltf.prf @@ -0,0 +1,11 @@ +qtPrepareTool(QMAKE_QGLTF, qgltf) + +isEmpty(QGLTF_DIR): QGLTF_DIR = . + +qgltf.input = QT3D_MODELS +qgltf.output = $$QGLTF_DIR/${QMAKE_FILE_BASE}.qrc +qgltf.variable_out += RESOURCES +qgltf.commands = $$QMAKE_QGLTF -d $$QGLTF_DIR $$QGLTF_PARAMS ${QMAKE_FILE_NAME} +silent: qgltf.commands = @echo qgltf ${QMAKE_FILE_IN} && $$qgltf.commands -s +qgltf.CONFIG += no_link +QMAKE_EXTRA_COMPILERS += qgltf diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf index a639ac2969..daedeca3a0 100644 --- a/mkspecs/features/qml_plugin.prf +++ b/mkspecs/features/qml_plugin.prf @@ -19,6 +19,8 @@ if(win32|mac):!macx-xcode { contains(QT_CONFIG, build_all):CONFIG += build_all } +CONFIG += relative_qt_rpath # Qt's QML plugins should be relocatable + !no_cxx_module:isEmpty(CXX_MODULE) { CXX_MODULE = $$TARGET TARGET = declarative_$${TARGET} @@ -88,7 +90,6 @@ load(qt_common) qmlplugindump = qmlplugindump importpath.name = QML2_IMPORT_PATH } - qtPrepareTool(QMLPLUGINDUMP, $$qmlplugindump) importpath.value = for(qmod, QTREPOS) { qml1_target: \ @@ -98,7 +99,9 @@ load(qt_common) exists($$qmod): importpath.value += $$shell_path($$qmod) } importpath.value = $$unique(importpath.value) - qtAddToolEnv(QMLPLUGINDUMP, importpath) + QT_TOOL_ENV = importpath + qtPrepareTool(QMLPLUGINDUMP, $$qmlplugindump) + QT_TOOL_ENV = TARGETPATHBASE = $$replace(TARGETPATH, \\.\\d+\$, ) qmltypes.target = qmltypes qmltypes.commands = $$QMLPLUGINDUMP -nonrelocatable $$replace(TARGETPATHBASE, /, .) $$IMPORT_VERSION > $$QMLTYPEFILE diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index ce93105f4b..c3448718b9 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -14,18 +14,6 @@ no_keywords:DEFINES += QT_NO_KEYWORDS plugin { #Qt plugins static:DEFINES += QT_STATICPLUGIN DEFINES += QT_PLUGIN - - # Triggers both on Qt being configured with -arch boundschecker, - # and if you qmake CONFIG+=boundchecker on your plugin project - boundschecker|contains(QT_CONFIG,boundschecker) { - # This option is added for plugins when Qt is configured for Boundschecker, - # since we want Boundschecker to not instrument the qt_plugin_query_verification_data - # function, as we call that function without the plugin's dependent DLLs, thus - # Boundscheckers instrumentation will fail. The function only returns a const char *, - # so no instrumentation is really needed on that function anyways. - QMAKE_CFLAGS += /nmignore:*:qt_plugin_query_verification_data - QMAKE_CXXFLAGS += /nmignore:*:qt_plugin_query_verification_data - } } qtestlib { @@ -57,23 +45,145 @@ qaxserver { QT += axserver } +# target variable, flag source variable +defineTest(qtProcessModuleFlags) { + for(flag, $$2) { + contains(flag, ^-.*): \ + $$1 -= $$replace(flag, ^-, ) + else: \ + $$1 += $$flag + } + export($$1) +} + unset(using_privates) -qtAddModules(QT, LIBS) -qtAddModules(QT_PRIVATE, LIBS_PRIVATE) +var_sfx = +for(ever) { + # qmake variables cannot contain dashes, so normalize the names first + CLEAN_QT$$var_sfx = $$replace(QT$$var_sfx, -private$, _private) + # Topological resolution of modules based on their QT.<module>.depends variable + FULL_QT$$var_sfx = $$resolve_depends(CLEAN_QT$$var_sfx, "QT.") + # Finally actually add the modules + unset(BAD_QT) + for(QTLIB, FULL_QT$$var_sfx) { + MODULE_NAME = $$eval(QT.$${QTLIB}.name) + MODULE_INCLUDES = $$eval(QT.$${QTLIB}.includes) + MODULE_LIBS = $$eval(QT.$${QTLIB}.libs) + MODULE_CONFIG = $$eval(QT.$${QTLIB}.module_config) + + isEmpty(MODULE_NAME) { + BAD_QT += $$QTLIB + next() + } + + contains(MODULE_CONFIG, internal_module): \ + using_privates = true + contains(MODULE_CONFIG, ltcg): \ + CONFIG += link_ltcg + + qtProcessModuleFlags(CONFIG, QT.$${QTLIB}.CONFIG) + qtProcessModuleFlags(DEFINES, QT.$${QTLIB}.DEFINES) + + MODULE_INCLUDES -= $$QMAKE_DEFAULT_INCDIRS + MODULE_LIBS_ADD = $$MODULE_LIBS + MODULE_LIBS_ADD -= $$QMAKE_DEFAULT_LIBDIRS + + LINKAGE = + contains(MODULE_CONFIG, lib_bundle) { + FRAMEWORK_INCLUDE = $${MODULE_LIBS}/$${MODULE_NAME}.framework/Headers + !qt_no_framework_direct_includes { + INCLUDEPATH *= $$FRAMEWORK_INCLUDE + } + contains(MODULE_CONFIG, internal_module): \ + INCLUDEPATH += \ + $$FRAMEWORK_INCLUDE/$$eval(QT.$${QTLIB}.VERSION) \ + $$FRAMEWORK_INCLUDE/$$eval(QT.$${QTLIB}.VERSION)/$$MODULE_NAME + QMAKE_FRAMEWORKPATH *= $${MODULE_LIBS} + !contains(MODULE_CONFIG, no_link): \ + LINKAGE += -framework $${MODULE_NAME}$${QT_LIBINFIX} + } else { + INCLUDEPATH *= $$MODULE_INCLUDES + } + + # Only link to this module if a libs directory is set, else this is just a module + # to give access to sources or include files, and not for linking. + !isEmpty(MODULE_LIBS):!contains(MODULE_CONFIG, no_link) { + + # Re-insert the major version in the library name (cf qt5LibraryTarget above) + # unless it's a framework build + !contains(MODULE_CONFIG, lib_bundle): \ + MODULE_NAME ~= s,^Qt,Qt$$QT_MAJOR_VERSION, + + isEmpty(LINKAGE) { + !isEmpty(MODULE_LIBS_ADD): \ + LINKAGE = -L$$MODULE_LIBS_ADD + lib = $${MODULE_NAME}$${QT_LIBINFIX}$$qtPlatformTargetSuffix() + LINKAGE += -l$$lib + + contains(MODULE_CONFIG, staticlib): \ + PRE_TARGETDEPS *= $$MODULE_LIBS/$${QMAKE_PREFIX_STATICLIB}$${lib}.$${QMAKE_EXTENSION_STATICLIB} + } + + LIBS$$var_sfx += $$LINKAGE + + !isEmpty(QMAKE_LSB) { + !isEmpty(MODULE_LIBS_ADD): \ + QMAKE_LFLAGS *= --lsb-libpath=$$MODULE_LIBS_ADD + QMAKE_LFLAGS *= --lsb-shared-libs=$${MODULE_NAME}$${QT_LIBINFIX} + QMAKE_LIBDIR *= /opt/lsb/lib + } + } + } + !isEmpty(BAD_QT):error("Unknown module(s) in QT$$var_sfx: $$replace(BAD_QT, _private$, -private)") + + !isEmpty(var_sfx): break() + var_sfx = _PRIVATE +} !isEmpty(using_privates):!no_private_qt_headers_warning:if(!debug_and_release|!build_pass) { message("This project is using private headers and will therefore be tied to this specific Qt module build version.") message("Running this project against other versions of the Qt modules may crash at any arbitrary point.") message("This is not a bug, but a result of using Qt internals. You have been warned!") } -qtAddRpathLink($$QT $$QT_PRIVATE) -wince:static:gui { - QTLIB += qmenu_wce.res +qt_module_deps = $$CLEAN_QT $$CLEAN_QT_PRIVATE +qt_module_deps = $$resolve_depends(qt_module_deps, "QT.") + +!no_qt_rpath:!static:contains(QT_CONFIG, rpath):!contains(QT_CONFIG, static):\ + contains(qt_module_deps, core) { + relative_qt_rpath:!isEmpty(QMAKE_REL_RPATH_BASE):contains(INSTALLS, target):\ + isEmpty(target.files):isEmpty(target.commands):isEmpty(target.extra) { + mac { + if(equals(TEMPLATE, app):app_bundle)|\ + if(equals(TEMPLATE, lib):plugin:plugin_bundle) { + ios: binpath = $$target.path/$${TARGET}.app + else: binpath = $$target.path/$${TARGET}.app/Contents/MacOS + } else: equals(TEMPLATE, lib):!plugin:lib_bundle { + binpath = $$target.path/$${TARGET}.framework/Versions/Current + } else { + binpath = $$target.path + } + } else { + binpath = $$target.path + } + # NOT the /dev property, as INSTALLS use host paths + QMAKE_RPATHDIR += $$relative_path($$[QT_INSTALL_LIBS], $$binpath) + } else { + QMAKE_RPATHDIR += $$[QT_INSTALL_LIBS/dev] + } } -qt_module_deps = $$QT $$QT_PRIVATE -qt_module_deps = $$replace(qt_module_deps, -private$, _private) -qt_module_deps = $$resolve_depends(qt_module_deps, "QT.") +!isEmpty(QMAKE_LFLAGS_RPATHLINK):!contains(QT_CONFIG, static) { + # -rpath-link is used by the linker to find dependencies of dynamic + # libraries which were NOT specified on the command line. + # This means that paths of direct dependencies (QT & QT_PRIVATE) + # don't need to be listed, unlike their private dependencies' paths. + privdep = $$resolve_depends(qt_module_deps, "QT.", ".depends" ".run_depends") + privdep -= $$qt_module_deps + rpaths = + for(dep, privdep): \ + rpaths += $$eval(QT.$${dep}.libs) + QMAKE_RPATHLINKDIR *= $$unique(rpaths) +} # static builds: link qml import plugins into the app. contains(qt_module_deps, qml): \ @@ -234,11 +344,7 @@ for(QT_CURRENT_VERIFY, $$list($$QT_PLUGIN_VERIFY)) { QT_PLUGINPATH = $$eval(QT_PLUGIN.$${QTPLUG}.TYPE) # Generate the plugin linker line - target_qt:isEqual(TARGET, QTPLUG) { - warning($$TARGET cannot have a QTPLUGIN of $$QTPLUG) - } else { - QT_LINKAGE = -l$${QTPLUG}$$qtPlatformTargetSuffix() - } + QT_LINKAGE = -l$${QTPLUG}$$qtPlatformTargetSuffix() # Only link against plugin in static builds isEqual(QT_CURRENT_VERIFY, QTPLUGIN): { diff --git a/mkspecs/features/qt_app.prf b/mkspecs/features/qt_app.prf index 0f83fd7270..823a4c9490 100644 --- a/mkspecs/features/qt_app.prf +++ b/mkspecs/features/qt_app.prf @@ -21,7 +21,7 @@ QMAKE_LFLAGS += $$QMAKE_LFLAGS_GCSECTIONS host_build: QT -= gui # no host tool will ever use gui host_build:force_bootstrap { - !build_pass: CONFIG += release + !build_pass:contains(QT_CONFIG, release_tools): CONFIG += release contains(QT, core(-private)?|xml) { QT -= core core-private xml QT += bootstrap-private @@ -30,6 +30,7 @@ host_build:force_bootstrap { } else { !build_pass:contains(QT_CONFIG, debug_and_release):contains(QT_CONFIG, build_all): CONFIG += release target.path = $$[QT_INSTALL_BINS] + CONFIG += relative_qt_rpath # Qt's tools and apps should be relocatable } INSTALLS += target diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf index 7197f84c9a..eaf23cf63a 100644 --- a/mkspecs/features/qt_build_config.prf +++ b/mkspecs/features/qt_build_config.prf @@ -55,6 +55,9 @@ QMAKE_DIR_REPLACE_SANE = PRECOMPILED_DIR OBJECTS_DIR MOC_DIR RCC_DIR UI_DIR cross_compile: \ CONFIG += force_bootstrap +android|ios|winrt: \ + CONFIG += builtin_testdata + CONFIG += \ create_prl link_prl \ prepare_docs qt_docs_targets \ diff --git a/mkspecs/features/qt_build_paths.prf b/mkspecs/features/qt_build_paths.prf index 9163ac30b2..1848f00e90 100644 --- a/mkspecs/features/qt_build_paths.prf +++ b/mkspecs/features/qt_build_paths.prf @@ -20,10 +20,9 @@ isEmpty(MODULE_QMAKE_OUTDIR): MODULE_QMAKE_OUTDIR = $$MODULE_BASE_OUTDIR exists($$MODULE_BASE_INDIR/.git): \ CONFIG += git_build -!prefix_build { - QTDIR = $$[QT_HOST_PREFIX] - # Permit modules to enforce being built outside QTDIR ... - !force_independent: MODULE_BASE_OUTDIR = $$QTDIR - # ... though this sort of breaks the idea. - MODULE_QMAKE_OUTDIR = $$QTDIR +!force_independent { + # If the module is not built independently, everything ends up in qtbase. + # This is the case in non-prefix builds, except for selected modules. + MODULE_BASE_OUTDIR = $$[QT_HOST_PREFIX] + MODULE_QMAKE_OUTDIR = $$[QT_HOST_PREFIX] } diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf index 2ed43e5063..38602f642d 100644 --- a/mkspecs/features/qt_common.prf +++ b/mkspecs/features/qt_common.prf @@ -13,6 +13,8 @@ QMAKE_DIR_REPLACE_SANE += DESTDIR CONFIG -= debug_and_release_target contains(QT_CONFIG, c++11): CONFIG += c++11 strict_c++ +contains(QT_CONFIG, c++14): CONFIG += c++14 +contains(QT_CONFIG, c++1z): CONFIG += c++1z contains(TEMPLATE, .*lib) { # module and plugins !host_build:contains(QT_CONFIG, reduce_exports): CONFIG += hide_symbols @@ -46,18 +48,18 @@ warnings_are_errors:warning_clean { # If the module declares that it has does its clean-up of warnings, enable -Werror. # This setting is compiler-dependent anyway because it depends on the version of the # compiler. - clang { - # Apple clang 4.0-4.2,5.0-5.1 - # Regular clang 3.3-3.6 + clang:!ios { + # Apple clang 4.0-4.2,5.0-5.1,6.0-6.4 + # Regular clang 3.3-3.7 apple_ver = $${QT_APPLE_CLANG_MAJOR_VERSION}.$${QT_APPLE_CLANG_MINOR_VERSION} reg_ver = $${QT_CLANG_MAJOR_VERSION}.$${QT_CLANG_MINOR_VERSION} - contains(apple_ver, "4\\.[012]|5\\.[01]")|contains(reg_ver, "3\\.[3-6]") { + contains(apple_ver, "4\\.[012]|5\\.[01]|6\\.[01234]")|contains(reg_ver, "3\\.[3-7]") { QMAKE_CXXFLAGS_WARN_ON += -Werror -Wno-error=\\$${LITERAL_HASH}warnings -Wno-error=deprecated-declarations $$WERROR } } else:intel_icc:linux { - # Intel CC 13.0 - 15.0, on Linux only + # Intel CC 13.0 - 16.0, on Linux only ver = $${QT_ICC_MAJOR_VERSION}.$${QT_ICC_MINOR_VERSION} - linux:contains(ver, "(1[34]\\.|15\\.0)") { + linux:contains(ver, "(1[345]\\.|16\\.0)") { # 177: function "entity" was declared but never referenced # (too aggressive; ICC reports even for functions created due to template instantiation) # 1224: #warning directive diff --git a/mkspecs/features/qt_docs.prf b/mkspecs/features/qt_docs.prf index bcc16ada78..15bd12072a 100644 --- a/mkspecs/features/qt_docs.prf +++ b/mkspecs/features/qt_docs.prf @@ -18,7 +18,19 @@ QMAKE_DOCS_TARGET = $$replace(QMAKE_DOCS, ^(.*/)?(.*)\\.qdocconf$, \\2) isEmpty(QMAKE_DOCS_TARGETDIR): QMAKE_DOCS_TARGETDIR = $$QMAKE_DOCS_TARGET QMAKE_DOCS_OUTPUTDIR = $$QMAKE_DOCS_BASE_OUTDIR/$$QMAKE_DOCS_TARGETDIR +qtver.name = QT_VERSION +qtver.value = $$VERSION +isEmpty(qtver.value): qtver.value = $$MODULE_VERSION +isEmpty(qtver.value): error("No version for documentation specified.") +qtmver.name = QT_VER +qtmver.value = $$replace(qtver.value, ^(\\d+\\.\\d+).*$, \\1) +qtvertag.name = QT_VERSION_TAG +qtvertag.value = $$replace(qtver.value, \.,) +qtdocs.name = QT_INSTALL_DOCS +qtdocs.value = $$[QT_INSTALL_DOCS/src] +QT_TOOL_ENV = qtver qtmver qtvertag qtdocs qtPrepareTool(QDOC, qdoc) +QT_TOOL_ENV = QDOC += -outputdir $$QMAKE_DOCS_OUTPUTDIR !build_online_docs: \ QDOC += -installdir $$[QT_INSTALL_DOCS] @@ -43,17 +55,6 @@ DOC_INDEXES = PREP_DOC_INDEXES += -indexdir $$[QT_INSTALL_DOCS/get] DOC_INDEXES += -indexdir $$[QT_INSTALL_DOCS/get] } -qtver.name = QT_VERSION -qtver.value = $$VERSION -isEmpty(qtver.value): qtver.value = $$MODULE_VERSION -isEmpty(qtver.value): error("No version for documentation specified.") -qtmver.name = QT_VER -qtmver.value = $$replace(qtver.value, ^(\\d+\\.\\d+).*$, \\1) -qtvertag.name = QT_VERSION_TAG -qtvertag.value = $$replace(qtver.value, \.,) -qtdocs.name = QT_INSTALL_DOCS -qtdocs.value = $$[QT_INSTALL_DOCS/src] -qtAddToolEnv(QDOC, qtver qtmver qtvertag qtdocs) doc_command = $$QDOC $$QMAKE_DOCS prepare_docs { prepare_docs.commands += $$doc_command -prepare $$PREP_DOC_INDEXES -no-link-errors diff --git a/mkspecs/features/qt_example_installs.prf b/mkspecs/features/qt_example_installs.prf index ff842ca754..a644904981 100644 --- a/mkspecs/features/qt_example_installs.prf +++ b/mkspecs/features/qt_example_installs.prf @@ -9,6 +9,8 @@ # We mean it. # +contains(TEMPLATE, "vc.*"): return() + defineTest(addInstallFiles) { for(sf, 2) { sf = $$relative_path($$sf, $$_PRO_FILE_PWD_) @@ -99,5 +101,7 @@ probase = $$relative_path($$_PRO_FILE_PWD_, $$dirname(_QMAKE_CONF_)/examples) SOURCES = OBJECTIVE_SOURCES = INSTALLS -= target + } else { + CONFIG += relative_qt_rpath # Examples built as part of Qt should be relocatable } } diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index a1c499610b..00f4bdf93e 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -15,7 +15,7 @@ defineReplace(qtPlatformTargetSuffix) { defineReplace(qtLibraryTarget) { LIBRARY_NAME = $$1 - mac:CONFIG(shared, static|shared):contains(QT_CONFIG, qt_framework) { + CONFIG(shared, static|shared):contains(QT_CONFIG, qt_framework) { QMAKE_FRAMEWORK_BUNDLE_NAME = $$LIBRARY_NAME export(QMAKE_FRAMEWORK_BUNDLE_NAME) } @@ -38,24 +38,14 @@ defineTest(qtAddLibrary) { # Reverse-engineer the module name from the library name. for(var, QT_MODULES) { isEqual(QT.$${var}.name, $$1) { - qtAddModule($$var, LIBS) + QT += $$var + export(QT) return(true) } } error("No module matching library '$$1' found.") } -# target variable, flag source variable -defineTest(qtProcessModuleFlags) { - for(flag, $$2) { - contains(flag, ^-.*): \ - $$1 -= $$replace(flag, ^-, ) - else: \ - $$1 += $$flag - } - export($$1) -} - # qt module defineTest(qtHaveModule) { !isEmpty(QT.$$replace(1, -, _).name): \ @@ -63,137 +53,6 @@ defineTest(qtHaveModule) { return(false) } -# qt module, libs variable -defineTest(qtAddModule) { - MODULE_NAME = $$eval(QT.$${1}.name) - MODULE_INCLUDES = $$eval(QT.$${1}.includes) - MODULE_LIBS = $$eval(QT.$${1}.libs) - MODULE_CONFIG = $$eval(QT.$${1}.module_config) - - contains(MODULE_CONFIG, internal_module) { - using_privates = true - export(using_privates) - } - contains(MODULE_CONFIG, ltcg): CONFIG += link_ltcg - - qtProcessModuleFlags(CONFIG, QT.$${1}.CONFIG) - qtProcessModuleFlags(DEFINES, QT.$${1}.DEFINES) - - MODULE_INCLUDES -= $$QMAKE_DEFAULT_INCDIRS - MODULE_LIBS_ADD = $$MODULE_LIBS - MODULE_LIBS_ADD -= $$QMAKE_DEFAULT_LIBDIRS - - unset(LINKAGE) - mac:contains(MODULE_CONFIG, lib_bundle) { - FRAMEWORK_INCLUDE = $${MODULE_LIBS}/$${MODULE_NAME}.framework/Headers - !qt_no_framework_direct_includes { - INCLUDEPATH *= $$FRAMEWORK_INCLUDE - } - contains(MODULE_CONFIG, internal_module): \ - INCLUDEPATH += \ - $$FRAMEWORK_INCLUDE/$$eval(QT.$${1}.VERSION) \ - $$FRAMEWORK_INCLUDE/$$eval(QT.$${1}.VERSION)/$$MODULE_NAME - QMAKE_FRAMEWORKPATH *= $${MODULE_LIBS} - export(QMAKE_FRAMEWORKPATH) - !contains(MODULE_CONFIG, no_link): \ - LINKAGE += -framework $${MODULE_NAME}$${QT_LIBINFIX} - } else { - INCLUDEPATH *= $$MODULE_INCLUDES - } - export(INCLUDEPATH) - - # Only link to this module if a libs directory is set, else this is just a module - # to give access to sources or include files, and not for linking. - !isEmpty(MODULE_LIBS):!contains(MODULE_CONFIG, no_link) { - - # Re-insert the major version in the library name (cf qt5LibraryTarget above) - # unless it's a framework build - !mac|!contains(MODULE_CONFIG, lib_bundle): \ - MODULE_NAME ~= s,^Qt,Qt$$QT_MAJOR_VERSION, - - win32 { - # Make sure the version number isn't appended again to the lib name - ver_var = QMAKE_$${upper($$MODULE_NAME$$QT_LIBINFIX)}_VERSION_OVERRIDE - dver_var = QMAKE_$${upper($$MODULE_NAME$$QT_LIBINFIX)}D_VERSION_OVERRIDE - $$ver_var = 0 - $$dver_var = 0 - export($$ver_var) - export($$dver_var) - } - - isEmpty(LINKAGE) { - !isEmpty(MODULE_LIBS_ADD): \ - LINKAGE = -L$$MODULE_LIBS_ADD - lib = $${MODULE_NAME}$${QT_LIBINFIX}$$qtPlatformTargetSuffix() - LINKAGE += -l$$lib - - contains(QT_CONFIG, rpath) { - QMAKE_RPATHDIR *= $$eval(QT.$${1}.rpath) - export(QMAKE_RPATHDIR) - } - - contains(MODULE_CONFIG, staticlib) { - PRE_TARGETDEPS *= $$MODULE_LIBS/$${QMAKE_PREFIX_STATICLIB}$${lib}.$${QMAKE_EXTENSION_STATICLIB} - export(PRE_TARGETDEPS) - } - } - - $$2 += $$LINKAGE - export($$2) - - !isEmpty(QMAKE_LSB) { - !isEmpty(MODULE_LIBS_ADD): \ - QMAKE_LFLAGS *= --lsb-libpath=$$MODULE_LIBS_ADD - QMAKE_LFLAGS *= --lsb-shared-libs=$${MODULE_NAME}$${QT_LIBINFIX} - QMAKE_LIBDIR *= /opt/lsb/lib - export(QMAKE_LFLAGS) - export(QMAKE_LIBDIR) - } - } -} - -# qt variable, libs variable -defineTest(qtAddModules) { - # qmake variables cannot contain dashes, so normalize the names first - $$1 = $$replace($$1, -private$, _private) - # Topological resolution of modules based on their QT.<module>.depends variable - $$1 = $$resolve_depends($$1, "QT.") - # Finally actually add the modules - unset(BAD_QT) - for(QTLIB, $$1) { - QTLIBNAME = $$eval(QT.$${QTLIB}.name) - isEmpty(QTLIBNAME) { - BAD_QT += $$QTLIB - next() - } - - target_qt:isEqual(TARGET, $$QTLIBNAME) { - warning("$$TARGET cannot have a $$1 of $$QTLIB") - next() - } - - qtAddModule($$QTLIB, $$2) - } - !isEmpty(BAD_QT):error("Unknown module(s) in $$1: $$replace(BAD_QT, _private$, -private)") -} - -defineTest(qtAddRpathLink) { - # -rpath-link is used by the linker to find dependencies of dynamic - # libraries which were NOT specified on the command line. - # This means that paths of direct dependencies (QT & QT_PRIVATE) - # don't need to appear here. However, their private dependencies' - # paths OTOH need to be put there. - pubqt = $$replace(1, -private$, _private) - pubdep = $$resolve_depends(pubqt, "QT.") - privdep = $$resolve_depends(pubqt, "QT.", ".depends" ".run_depends") - privdep -= $$pubdep - rpaths = - for(dep, privdep): \ - rpaths += $$eval(QT.$${dep}.libs) - QMAKE_RPATHLINKDIR *= $$unique(rpaths) - export(QMAKE_RPATHLINKDIR) -} - # variable, default, [suffix for variable for system() use], [prepare primary variable for system() use] defineTest(qtPrepareTool) { cmd = $$eval(QT_TOOL.$${2}.binary) @@ -261,15 +120,9 @@ defineTest(qtAddTargetEnv) { deps = $$replace($$2, -private$, _private) deps = $$resolve_depends(deps, "QT.", ".depends" ".run_depends") !isEmpty(deps) { - ptypes = - for(dep, deps) { - isEmpty(3): \ - deppath += $$shell_path($$eval(QT.$${dep}.libs)) - else: \ - deppath += $$system_path($$eval(QT.$${dep}.libs)) - ptypes += $$eval(QT.$${dep}.plugin_types) - } + libs = libs equals(QMAKE_HOST.os, Windows) { + libs = bins deppath.name = PATH } else:contains(QMAKE_HOST.os, Linux|FreeBSD|OpenBSD|NetBSD|DragonFly|SunOS|HP-UX|QNX|GNU) { deppath.name = LD_LIBRARY_PATH @@ -285,6 +138,14 @@ defineTest(qtAddTargetEnv) { } else { error("Operating system not supported.") } + ptypes = + for(dep, deps) { + isEmpty(3): \ + deppath += $$shell_path($$eval(QT.$${dep}.$$libs)) + else: \ + deppath += $$system_path($$eval(QT.$${dep}.$$libs)) + ptypes += $$eval(QT.$${dep}.plugin_types) + } deppath.value = $$unique(deppath) deppath.CONFIG = prepend diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index c89b6d2793..9a4ed20af8 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -32,7 +32,7 @@ host_build { QMAKE_CFLAGS += $$QMAKE_CFLAGS_SPLIT_SECTIONS QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_SPLIT_SECTIONS force_bootstrap { - !build_pass: CONFIG += release + !build_pass:contains(QT_CONFIG, release_tools): CONFIG += release contains(QT, core(-private)?|xml) { QT -= core core-private xml QT += bootstrap-private @@ -42,6 +42,11 @@ host_build { } } +CONFIG(shared, static|shared):contains(QT_CONFIG, qt_framework): \ + CONFIG += lib_bundle + +CONFIG += relative_qt_rpath # Qt libraries should be relocatable + ucmodule = $$upper($$MODULE) isEmpty(MODULE_INCNAME): MODULE_INCNAME = $$TARGET @@ -51,6 +56,8 @@ internal_module: \ else: \ MODULE_DEPENDS = $$replace(QT, -private$, ) MODULE_DEPENDS = $$unique(MODULE_DEPENDS) +contains(MODULE_DEPENDS, $$MODULE): \ + error("$$TARGET depends on itself.") contains(TARGET, QtAddOn.*): \ MODULE_DEFINE = QT_ADDON_$${ucmodule}_LIB @@ -86,7 +93,7 @@ INCLUDEPATH *= $$eval(QT.$${MODULE}.includes) $$eval(QT.$${MODULE}_private.inclu contains(QT_CONFIG, build_all):CONFIG += build_all } -linux*:QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF +QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF QT += $$QT_FOR_PRIVATE unset(QT_FOR_PRIVATE) @@ -99,17 +106,15 @@ else: \ DEFINES += QT_BUILD_$${ucmodule}_LIB # OS X and iOS frameworks -mac:CONFIG(shared, static|shared):contains(QT_CONFIG, qt_framework) { +lib_bundle { # Set the CFBundleIdentifier prefix for Qt frameworks QMAKE_TARGET_BUNDLE_PREFIX = org.qt-project #QMAKE_FRAMEWORK_VERSION = 4.0 - CONFIG += sliced_bundle qt_framework + CONFIG += sliced_bundle header_module { CONFIG += bundle QMAKE_BUNDLE_EXTENSION = .framework QMAKE_INFO_PLIST = $$QMAKESPEC/Info.plist.lib - } else { - CONFIG += lib_bundle } CONFIG -= qt_install_headers #no need to install these as well !debug_and_release|!build_all|CONFIG(release, debug|release) { @@ -185,7 +190,46 @@ equals(QT_ARCH, i386):contains(QT_CPU_FEATURES.$$QT_ARCH, sse2):compiler_support QMAKE_CXXFLAGS += -mfpmath=sse } -android: CONFIG += qt_android_deps +android: CONFIG += qt_android_deps no_linker_version_script + +!header_module:unix:!isEmpty(QMAKE_LFLAGS_VERSION_SCRIPT):!no_linker_version_script:!static { + verscript = $$OUT_PWD/$${TARGET}.version + QMAKE_LFLAGS += $${QMAKE_LFLAGS_VERSION_SCRIPT}$$verscript + + internal_module { + verscript_content = "Qt_$${QT_MAJOR_VERSION}_PRIVATE_API { *; };" + } else { + verscript_content = "Qt_$${QT_MAJOR_VERSION}_PRIVATE_API {" \ + " qt_private_api_tag*;" "@CLASSLIST@" "};" + + current = Qt_$$QT_MAJOR_VERSION + verscript_content += "$$current { *; };" + isEmpty(QT_NAMESPACE): tag_symbol = qt_version_tag + else: tag_symbol = qt_version_tag_$$QT_NAMESPACE + + for(i, 0..$$QT_MINOR_VERSION) { + previous = $$current + current = Qt_$${QT_MAJOR_VERSION}.$$i + equals(i, $$QT_MINOR_VERSION): verscript_content += "$$current { $$tag_symbol; } $$previous;" + else: verscript_content += "$$current {} $$previous;" + } + + # Add a post-processing step to replace the @CLASSLIST@ + verscriptprocess.commands = perl $${PWD}/data/unix/findclasslist.pl < $^ > $@ + verscriptprocess.target = $$verscript + verscriptprocess.depends = $${verscript}.in + for(header, SYNCQT.PRIVATE_HEADER_FILES): \ + verscriptprocess.depends += $${_PRO_FILE_PWD_}/$$header + QMAKE_EXTRA_TARGETS += verscriptprocess + PRE_TARGETDEPS += $$verscript + verscript = $${verscript}.in + } + write_file($$verscript, verscript_content)|error("Aborting.") + unset(current) + unset(previous) + unset(verscript) + unset(verscript_content) +} #install directives load(qt_installs) @@ -193,7 +237,7 @@ load(qt_installs) load(qt_targets) # this builds on top of qt_common -unix|mingw { +!internal_module:!lib_bundle:if(unix|mingw) { CONFIG += create_pc QMAKE_PKGCONFIG_DESTDIR = pkgconfig host_build: \ diff --git a/mkspecs/features/qt_module_headers.prf b/mkspecs/features/qt_module_headers.prf index 3f2383c120..892a9a2c4b 100644 --- a/mkspecs/features/qt_module_headers.prf +++ b/mkspecs/features/qt_module_headers.prf @@ -25,9 +25,12 @@ load(qt_build_paths) !silent: message($$QMAKE_SYNCQT) system($$QMAKE_SYNCQT)|error("Failed to run: $$QMAKE_SYNCQT") - include-distclean.commands = $$QMAKE_DEL_TREE $$shell_quote($$shell_path($$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME)) - QMAKE_EXTRA_TARGETS += include-distclean - DISTCLEAN_DEPS += include-distclean + !minimal_syncqt { + include-distclean.commands = \ + $$QMAKE_DEL_TREE $$shell_quote($$shell_path($$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME)) + QMAKE_EXTRA_TARGETS += include-distclean + DISTCLEAN_DEPS += include-distclean + } } minimal_syncqt: return() @@ -38,6 +41,9 @@ git_build: \ else: \ INC_PATH = $$MODULE_BASE_INDIR include($$INC_PATH/include/$$MODULE_INCNAME/headers.pri, "", true) +CONFIG += qt_install_headers + +alien_syncqt: return() for (injection, SYNCQT.INJECTIONS) { injects = $$split(injection, :) @@ -82,8 +88,6 @@ SYNCQT.HEADER_FILES += $$MODULE_MASTER_DEPS_HEADER isEmpty(PRECOMPILED_HEADER): PRECOMPILED_HEADER = $$MODULE_MASTER_DEPS_HEADER } -CONFIG += qt_install_headers - headersclean:!internal_module { # Make sure that the header compiles with our strict options hcleanDEFS = -DQT_NO_CAST_TO_ASCII=1 \ diff --git a/mkspecs/features/qt_module_pris.prf b/mkspecs/features/qt_module_pris.prf index 1d727847e2..3f21a0f7d5 100644 --- a/mkspecs/features/qt_module_pris.prf +++ b/mkspecs/features/qt_module_pris.prf @@ -49,22 +49,13 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri module_libs = "\$\$QT_MODULE_HOST_LIB_BASE" else: \ module_libs = "\$\$QT_MODULE_LIB_BASE" - unix:!static { - host_build: \ - module_rpath = $$[QT_HOST_LIBS] - else: \ - module_rpath = $$[QT_INSTALL_LIBS/dev] - module_rpath = "QT.$${MODULE_ID}.rpath = $$val_escape(module_rpath)" - } else { - module_rpath = - } !isEmpty(QT_PRIVATE): \ module_rundep = "QT.$${MODULE_ID}.run_depends = $$replace(QT_PRIVATE, -private$, _private)" else: \ module_rundep = static: \ module_build_type = staticlib - else:mac:contains(QT_CONFIG, qt_framework): \ + else: lib_bundle: \ module_build_type = lib_bundle else: \ module_build_type = @@ -115,7 +106,6 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri "" \ "QT.$${MODULE_ID}.name = $$TARGET" \ "QT.$${MODULE_ID}.libs = $$module_libs" \ - $$module_rpath \ $$module_master \ "QT.$${MODULE_ID}.includes = $$MODULE_INCLUDES" !host_build: MODULE_PRI_CONT += \ diff --git a/mkspecs/features/qt_plugin.prf b/mkspecs/features/qt_plugin.prf index 17748e518a..220f11bd75 100644 --- a/mkspecs/features/qt_plugin.prf +++ b/mkspecs/features/qt_plugin.prf @@ -30,6 +30,8 @@ tool_plugin { contains(QT_CONFIG, build_all):CONFIG += build_all } +CONFIG += relative_qt_rpath # Qt's plugins should be relocatable + CONFIG(static, static|shared)|prefix_build { isEmpty(MODULE): MODULE = $$basename(TARGET) diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf index 1d3e88cbe9..3f0301a292 100644 --- a/mkspecs/features/qt_tool.prf +++ b/mkspecs/features/qt_tool.prf @@ -12,6 +12,7 @@ load(qt_app) CONFIG += console +DEFINES *= QT_USE_QSTRINGBUILDER # If we are doing a prefix build, create a "module" pri which enables # qtPrepareTool() to work with the non-installed build. diff --git a/mkspecs/features/resolve_target.prf b/mkspecs/features/resolve_target.prf index 911e6b85f0..ecfb73cbba 100644 --- a/mkspecs/features/resolve_target.prf +++ b/mkspecs/features/resolve_target.prf @@ -54,13 +54,13 @@ win32 { } else { equals(TEMPLATE, lib) { static { - QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${LIBPREFIX}$${TARGET}.a + QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${LIBPREFIX}$${TARGET}.$${QMAKE_EXTENSION_STATICLIB} } else: plugin|unversioned_libname { - QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${LIBPREFIX}$${TARGET}.so + QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${LIBPREFIX}$${TARGET}.$${QMAKE_EXTENSION_SHLIB} } else { TEMP_VERSION = $$VERSION isEmpty(TEMP_VERSION):TEMP_VERSION = 1.0.0 - QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${LIBPREFIX}$${TARGET}.so.$${TEMP_VERSION} + QMAKE_RESOLVED_TARGET = $${QMAKE_RESOLVED_TARGET}$${LIBPREFIX}$${TARGET}.$${QMAKE_EXTENSION_SHLIB}.$${TEMP_VERSION} } } else { nacl { diff --git a/mkspecs/features/spec_pre.prf b/mkspecs/features/spec_pre.prf index cdc1d7ee1e..ff310d9793 100644 --- a/mkspecs/features/spec_pre.prf +++ b/mkspecs/features/spec_pre.prf @@ -7,6 +7,8 @@ QMAKE_DIRLIST_SEP = $$DIRLIST_SEPARATOR QMAKE_EXT_C = .c QMAKE_EXT_CPP = .cpp .cc .cxx +QMAKE_EXT_OBJC = .m +QMAKE_EXT_OBJCXX = .mm QMAKE_EXT_CPP_MOC = .moc QMAKE_EXT_H = .h .hpp .hh .hxx QMAKE_EXT_H_MOC = .cpp diff --git a/mkspecs/features/testcase.prf b/mkspecs/features/testcase.prf index a6ef930128..6bac0546c3 100644 --- a/mkspecs/features/testcase.prf +++ b/mkspecs/features/testcase.prf @@ -27,7 +27,7 @@ check.commands += $(TESTRUNNER) unix { isEmpty(TEST_TARGET_DIR): TEST_TARGET_DIR = . - mac:app_bundle: \ + app_bundle: \ check.commands += $${TEST_TARGET_DIR}/$(QMAKE_TARGET).app/Contents/MacOS/$(QMAKE_TARGET) else: \ check.commands += $${TEST_TARGET_DIR}/$(QMAKE_TARGET) @@ -79,7 +79,7 @@ isEmpty(BUILDS)|build_pass { INSTALLS += target } -contains(INSTALLS, target) { +!builtin_testdata:contains(INSTALLS, target) { # Install testdata and helpers as well, but only if we're actually installing the test. # # Testdata is installed relative to the directory containing the testcase @@ -180,6 +180,20 @@ contains(INSTALLS, target) { } } +builtin_testdata { + ALL_TESTDATA = $$TESTDATA $$GENERATED_TESTDATA + # RESOURCES does not support wildcards (for good reasons) + for(td, ALL_TESTDATA): \ + testdata.files += $$files($$absolute_path($$td, $$_PRO_FILE_PWD_)) + !isEmpty(testdata.files) { + testdata.base = $$_PRO_FILE_PWD_ + RESOURCES += testdata + } + + !isEmpty(TEST_HELPER_INSTALLS): \ + error("This platform does not support tests which require helpers.") +} + macx-xcode:bundle:isEmpty(QMAKE_BUNDLE_EXTENSION) { QMAKE_PBX_PRODUCT_TYPE = com.apple.product-type.bundle.unit-test QMAKE_PBX_BUNDLE_TYPE = wrapper.cfbundle diff --git a/mkspecs/features/unix/hide_symbols.prf b/mkspecs/features/unix/hide_symbols.prf index 4af99c2eac..f4d3921cb1 100644 --- a/mkspecs/features/unix/hide_symbols.prf +++ b/mkspecs/features/unix/hide_symbols.prf @@ -1,4 +1,3 @@ QMAKE_CFLAGS += $$QMAKE_CFLAGS_HIDESYMS QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_HIDESYMS -QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_HIDESYMS QMAKE_LFLAGS += $$QMAKE_LFLAGS_HIDESYMS diff --git a/mkspecs/features/warn_off.prf b/mkspecs/features/warn_off.prf index e37979c035..072a7aca15 100644 --- a/mkspecs/features/warn_off.prf +++ b/mkspecs/features/warn_off.prf @@ -1,4 +1,3 @@ CONFIG -= warn_on QMAKE_CFLAGS += $$QMAKE_CFLAGS_WARN_OFF QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_WARN_OFF -QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_WARN_OFF
\ No newline at end of file diff --git a/mkspecs/features/warn_on.prf b/mkspecs/features/warn_on.prf index 7e78a8e0d3..03a4a24a61 100644 --- a/mkspecs/features/warn_on.prf +++ b/mkspecs/features/warn_on.prf @@ -1,5 +1,4 @@ CONFIG -= warn_off QMAKE_CFLAGS += $$QMAKE_CFLAGS_WARN_ON QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_WARN_ON -QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_OBJECTIVE_CFLAGS_WARN_ON diff --git a/mkspecs/features/winrt/default_pre.prf b/mkspecs/features/winrt/default_pre.prf new file mode 100644 index 0000000000..44e3c94b8a --- /dev/null +++ b/mkspecs/features/winrt/default_pre.prf @@ -0,0 +1,12 @@ +*msvc2015 { + # Note that the order is important, ucrt(d) has to be first + # Otherwise the linker might use malloc from a different library + # but free_dbg() from the runtime, causing assert when deleting + # items from different heaps + CONFIG(debug, debug|release): \ + QMAKE_LIBS = ucrtd.lib $$QMAKE_LIBS + else: \ + QMAKE_LIBS = ucrt.lib $$QMAKE_LIBS +} + +load(default_pre) diff --git a/mkspecs/features/winrt/font_deployment.prf b/mkspecs/features/winrt/font_deployment.prf deleted file mode 100644 index c767d5bc1a..0000000000 --- a/mkspecs/features/winrt/font_deployment.prf +++ /dev/null @@ -1,62 +0,0 @@ -# Provide default fonts for windows phone -# The DEFAULTFONTS variable indicates, whether the default set of fonts is -# used for deployment. The check below won't work after the fonts are added -# so this helper variable is added and used for the user warning check later. -!defined(FONTS, var):winphone { - FONTS = \ - $$[QT_HOST_PREFIX/src]/lib/fonts/DejaVuSans.ttf \ - $$[QT_HOST_PREFIX/src]/lib/fonts/DejaVuSans-Bold.ttf \ - $$[QT_HOST_PREFIX/src]/lib/fonts/DejaVuSans-BoldOblique.ttf \ - $$[QT_HOST_PREFIX/src]/lib/fonts/DejaVuSansMono.ttf \ - $$[QT_HOST_PREFIX/src]/lib/fonts/DejaVuSansMono-Bold.ttf \ - $$[QT_HOST_PREFIX/src]/lib/fonts/DejaVuSansMono-BoldOblique.ttf \ - $$[QT_HOST_PREFIX/src]/lib/fonts/DejaVuSansMono-Oblique.ttf \ - $$[QT_HOST_PREFIX/src]/lib/fonts/DejaVuSans-Oblique.ttf \ - $$[QT_HOST_PREFIX/src]/lib/fonts/DejaVuSerif.ttf \ - $$[QT_HOST_PREFIX/src]/lib/fonts/DejaVuSerif-Bold.ttf \ - $$[QT_HOST_PREFIX/src]/lib/fonts/DejaVuSerif-BoldOblique.ttf \ - $$[QT_HOST_PREFIX/src]/lib/fonts/DejaVuSerif-Oblique.ttf - DEFAULTFONTS = -} - -if(build_pass:equals(TEMPLATE, "app"))| \ -if(!build_pass:equals(TEMPLATE, "vcapp")) { - defined(DEFAULTFONTS, var) { - message(Default fonts will automatically be deployed with your application. \ - To avoid automatic deployment unset the \"FONTS\" variable (\"FONTS =\") in your .pro file. \ - You can also customize which fonts are deployed by setting the \"FONTS\" variable.) - } - - contains(TEMPLATE, "vc.*") { - BUILD_DIR = $$OUT_PWD - } else { - load(resolve_target) - BUILD_DIR = $$dirname(QMAKE_RESOLVED_TARGET) - } - - for (FONT, FONTS) { - font_$${FONT}.input = $$FONT - font_$${FONT}.output = $$BUILD_DIR/fonts/$$basename(FONT) - font_$${FONT}.CONFIG = verbatim - QMAKE_SUBSTITUTES += font_$${FONT} - } - - !isEmpty(FONTS):equals(TEMPLATE, "app") { - fonts.files = $$BUILD_DIR/fonts/* - isEmpty(target.path) { - fonts.path = $$OUT_PWD/fonts - } else { - fonts.path = $$target.path/fonts - } - - INSTALLS += fonts - } -} - -!isEmpty(FONTS):winphone:equals(TEMPLATE, "vcapp"):build_pass { - for (FONT, FONTS) { - fonts.files += $$OUT_PWD/fonts/$$basename(FONT) - } - fonts.path = fonts - DEPLOYMENT += fonts -} diff --git a/mkspecs/features/winrt/package_manifest.prf b/mkspecs/features/winrt/package_manifest.prf index 7e5effa438..3520fcdf93 100644 --- a/mkspecs/features/winrt/package_manifest.prf +++ b/mkspecs/features/winrt/package_manifest.prf @@ -58,9 +58,11 @@ VCLIBS = Microsoft.VCLibs.$$replace(MSVC_VER, \\., ).00 winphone: VCLIBS = $${VCLIBS}.Phone CONFIG(debug, debug|release): \ - WINRT_MANIFEST.dependencies += $${VCLIBS}.Debug + VCLIBS = $${VCLIBS}.Debug else: \ - WINRT_MANIFEST.dependencies += $$VCLIBS + VCLIBS = $${VCLIBS} + contains(MSVC_VER, "14.0"): VCLIBS = "$${VCLIBS}\" MinVersion=\"14.0.0.0\" Publisher=\"CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" + WINRT_MANIFEST.dependencies += $$VCLIBS } # Provide default values for required variables @@ -106,6 +108,10 @@ INDENT = "$$escape_expand(\\r\\n) " + # All Windows 10 applications need to have internetClient. It is also not marked as additional + # capability anymore and is assumed to be standard. + *-msvc2015: WINRT_MANIFEST.capabilities += internetClient + # Capabilities are given as a string list and may change with the configuration (network, sensors, etc.) WINRT_MANIFEST.capabilities = $$unique(WINRT_MANIFEST.capabilities) WINRT_MANIFEST.capabilities_device = $$unique(WINRT_MANIFEST.capabilities_device) @@ -122,12 +128,15 @@ } # Dependencies are given as a string list. The CRT dependency is added automatically above. + # For MSVC2015 the dependencies are added in conjunction with TargetDeviceFamily + # Due to the hard coded dependency on "Windows.Universal" the <Dependencies> tag + # is already inside the MSVC2015 manifest. WINRT_MANIFEST.dependencies = $$unique(WINRT_MANIFEST.dependencies) !isEmpty(WINRT_MANIFEST.dependencies) { - MANIFEST_DEPENDENCIES += "<Dependencies>" + *-msvc2013: MANIFEST_DEPENDENCIES += "<Dependencies>" for(DEPENDENCY, WINRT_MANIFEST.dependencies): \ MANIFEST_DEPENDENCIES += " <PackageDependency Name=\"$$DEPENDENCY\" />" - MANIFEST_DEPENDENCIES += "</Dependencies>" + *-msvc2013: MANIFEST_DEPENDENCIES += "</Dependencies>" WINRT_MANIFEST.dependencies = $$join(MANIFEST_DEPENDENCIES, $$INDENT, $$INDENT) } @@ -159,5 +168,13 @@ WINRT_MANIFEST.$${ICON_NAME} = assets/$$basename(ICON_FILE) } + !contains(TEMPLATE, "vc.*") { + winrt_manifest_install.files = $$manifest_file.output + winrt_manifest_install.path = $$target.path + winrt_assets_install.files = $$BUILD_DIR/assets/* + winrt_assets_install.path = $$target.path/assets + INSTALLS += winrt_manifest_install winrt_assets_install + } + QMAKE_SUBSTITUTES += manifest_file } diff --git a/mkspecs/features/yacc.prf b/mkspecs/features/yacc.prf index 22fe4cb0a2..e78dd8cbb3 100644 --- a/mkspecs/features/yacc.prf +++ b/mkspecs/features/yacc.prf @@ -21,11 +21,11 @@ !yacc_no_name_mangle:QMAKE_YACCDECLFLAGS += $$QMAKE_YACCFLAGS_MANGLE yacc_decl.commands = \ - -$(DEL_FILE) $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}_yacc$${first(QMAKE_EXT_H)} $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}_yacc$${first(QMAKE_EXT_CPP)}$$escape_expand(\\n\\t) \ + -$(DEL_FILE) $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_MOD_YACC}$${first(QMAKE_EXT_H)} $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_MOD_YACC}$${first(QMAKE_EXT_CPP)}$$escape_expand(\\n\\t) \ $$QMAKE_YACC $$QMAKE_YACCDECLFLAGS ${QMAKE_FILE_IN}$$escape_expand(\\n\\t) \ - $(MOVE) $${QMAKE_YACC_HEADER} $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}_yacc$${first(QMAKE_EXT_H)}$$escape_expand(\\n\\t) \ - $(MOVE) $${QMAKE_YACC_SOURCE} $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}_yacc$${first(QMAKE_EXT_CPP)}$$escape_expand(\\n\\t) - yacc_decl.output = $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}_yacc$${first(QMAKE_EXT_H)} + $(MOVE) $${QMAKE_YACC_HEADER} $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_MOD_YACC}$${first(QMAKE_EXT_H)}$$escape_expand(\\n\\t) \ + $(MOVE) $${QMAKE_YACC_SOURCE} $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_MOD_YACC}$${first(QMAKE_EXT_CPP)}$$escape_expand(\\n\\t) + yacc_decl.output = $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_MOD_YACC}$${first(QMAKE_EXT_H)} silent:yacc_decl.commands = @echo Yacc ${QMAKE_FILE_IN} && $$yacc_decl.commands QMAKE_EXTRA_COMPILERS += yacc_decl @@ -36,7 +36,7 @@ yacc_impl.input = YACCSOURCES yacc_impl.variable_out = GENERATED_SOURCES yacc_impl.commands = $$escape_expand(\\n) # We don't want any commands where, but if command is empty no rules are created - yacc_impl.depends = $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}_yacc$${first(QMAKE_EXT_H)} # Make sure we depend on the step above - yacc_impl.output = $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}_yacc$${first(QMAKE_EXT_CPP)} # Faked output from this step, output really created in step above + yacc_impl.depends = $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_MOD_YACC}$${first(QMAKE_EXT_H)} # Make sure we depend on the step above + yacc_impl.output = $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_MOD_YACC}$${first(QMAKE_EXT_CPP)} # Faked output from this step, output really created in step above QMAKE_EXTRA_COMPILERS += yacc_impl } diff --git a/mkspecs/freebsd-g++/qmake.conf b/mkspecs/freebsd-g++/qmake.conf index 47505fc06a..282b6bdfa7 100644 --- a/mkspecs/freebsd-g++/qmake.conf +++ b/mkspecs/freebsd-g++/qmake.conf @@ -5,6 +5,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = freebsd bsd +include(../common/unix.conf) + QMAKE_CFLAGS_THREAD = -pthread -D_THREAD_SAFE QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD @@ -27,7 +29,6 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) load(qt_config) diff --git a/mkspecs/freebsd-g++46/qmake.conf b/mkspecs/freebsd-g++46/qmake.conf index 277997ab28..b930fca78b 100644 --- a/mkspecs/freebsd-g++46/qmake.conf +++ b/mkspecs/freebsd-g++46/qmake.conf @@ -5,6 +5,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = freebsd bsd +include(../common/unix.conf) + QMAKE_CFLAGS_THREAD = -pthread -D_THREAD_SAFE QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD @@ -27,7 +29,6 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) diff --git a/mkspecs/freebsd-icc/qmake.conf b/mkspecs/freebsd-icc/qmake.conf index fb419f7e5b..d72ea73278 100644 --- a/mkspecs/freebsd-icc/qmake.conf +++ b/mkspecs/freebsd-icc/qmake.conf @@ -30,6 +30,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = freebsd bsd +include(../common/unix.conf) + QMAKE_COMPILER = gcc intel_icc # icc pretends to be gcc QMAKE_CC = icc @@ -90,5 +92,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/haiku-g++/qmake.conf b/mkspecs/haiku-g++/qmake.conf index 6144392385..ac28069864 100644 --- a/mkspecs/haiku-g++/qmake.conf +++ b/mkspecs/haiku-g++/qmake.conf @@ -5,6 +5,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = haiku +include(../common/unix.conf) + # Choose haiku QPA Plugin as default QT_QPA_DEFAULT_PLATFORM = haiku @@ -23,5 +25,5 @@ QMAKE_RANLIB = include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) -include(../common/unix.conf) + load(qt_config) diff --git a/mkspecs/hpux-acc-64/qmake.conf b/mkspecs/hpux-acc-64/qmake.conf index 2156b448fe..f0b879de83 100644 --- a/mkspecs/hpux-acc-64/qmake.conf +++ b/mkspecs/hpux-acc-64/qmake.conf @@ -49,6 +49,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = hpux QMAKE_COMPILER_DEFINES += __hpux __HP_aCC +include(../common/unix.conf) + QMAKE_COMPILER = hp_acc QMAKE_CC = cc @@ -111,5 +113,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/hpux-acc-o64/qmake.conf b/mkspecs/hpux-acc-o64/qmake.conf index 69c3df1375..750bb99155 100644 --- a/mkspecs/hpux-acc-o64/qmake.conf +++ b/mkspecs/hpux-acc-o64/qmake.conf @@ -48,6 +48,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = hpux +include(../common/unix.conf) + QMAKE_COMPILER = hp_acc QMAKE_CC = cc @@ -109,5 +111,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/hpux-acc/qmake.conf b/mkspecs/hpux-acc/qmake.conf index eaa8888fbe..2f1ce1054c 100644 --- a/mkspecs/hpux-acc/qmake.conf +++ b/mkspecs/hpux-acc/qmake.conf @@ -28,6 +28,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = hpux QMAKE_COMPILER_DEFINES += __hpux __HP_aCC +include(../common/unix.conf) + QMAKE_COMPILER = hp_acc QMAKE_CC = cc @@ -90,5 +92,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/hpux-g++-64/qmake.conf b/mkspecs/hpux-g++-64/qmake.conf index 3e822edbfb..a27333fa18 100644 --- a/mkspecs/hpux-g++-64/qmake.conf +++ b/mkspecs/hpux-g++-64/qmake.conf @@ -8,6 +8,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = hpux +include(../common/unix.conf) + QMAKE_COMPILER = gcc QMAKE_CC = gcc @@ -73,5 +75,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/hpux-g++/qmake.conf b/mkspecs/hpux-g++/qmake.conf index 866a3416bc..b488da7178 100644 --- a/mkspecs/hpux-g++/qmake.conf +++ b/mkspecs/hpux-g++/qmake.conf @@ -9,6 +9,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = hpux CONFIG += plugin_no_soname +include(../common/unix.conf) + QMAKE_COMPILER = gcc QMAKE_CC = gcc @@ -74,5 +76,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/hpuxi-acc-32/qmake.conf b/mkspecs/hpuxi-acc-32/qmake.conf index 79bf20fbb2..e80a7973fe 100644 --- a/mkspecs/hpuxi-acc-32/qmake.conf +++ b/mkspecs/hpuxi-acc-32/qmake.conf @@ -6,6 +6,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = hpux CONFIG += plugin_no_soname +include(../common/unix.conf) + QMAKE_COMPILER = hp_acc QMAKE_CC = cc @@ -66,5 +68,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/hpuxi-acc-64/qmake.conf b/mkspecs/hpuxi-acc-64/qmake.conf index aaec3eab14..360e35c5d6 100644 --- a/mkspecs/hpuxi-acc-64/qmake.conf +++ b/mkspecs/hpuxi-acc-64/qmake.conf @@ -49,6 +49,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = hpux CONFIG += plugin_no_soname +include(../common/unix.conf) + QMAKE_COMPILER = hp_acc QMAKE_CC = cc @@ -109,5 +111,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/hpuxi-g++-64/qmake.conf b/mkspecs/hpuxi-g++-64/qmake.conf index 8a05a5f611..4c376de719 100644 --- a/mkspecs/hpuxi-g++-64/qmake.conf +++ b/mkspecs/hpuxi-g++-64/qmake.conf @@ -13,6 +13,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = hpux +include(../common/unix.conf) + QMAKE_COMPILER = gcc QMAKE_CC = gcc @@ -76,5 +78,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/hurd-g++/qmake.conf b/mkspecs/hurd-g++/qmake.conf index e7e4e3a82d..f2e3242627 100644 --- a/mkspecs/hurd-g++/qmake.conf +++ b/mkspecs/hurd-g++/qmake.conf @@ -7,6 +7,8 @@ QMAKE_PLATFORM += hurd CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib +include(../common/unix.conf) + QMAKE_CFLAGS_THREAD += -D_REENTRANT QMAKE_CXXFLAGS_THREAD += $$QMAKE_CFLAGS_THREAD QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections @@ -46,7 +48,6 @@ QMAKE_RANLIB = QMAKE_STRIP = strip QMAKE_STRIPFLAGS_LIB += --strip-unneeded -include(../common/unix.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) load(qt_config) diff --git a/mkspecs/irix-cc-64/qmake.conf b/mkspecs/irix-cc-64/qmake.conf index 05c8b6fc84..ad5c6a3ee1 100644 --- a/mkspecs/irix-cc-64/qmake.conf +++ b/mkspecs/irix-cc-64/qmake.conf @@ -38,6 +38,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = irix QMAKE_COMPILER_DEFINES += __sgi __EDG +include(../common/unix.conf) + QMAKE_COMPILER = sgi_cc QMAKE_CC = cc @@ -103,5 +105,4 @@ QMAKE_RANLIB = QMAKE_CLEAN = -r $(OBJECTS_DIR)so_locations $(OBJECTS_DIR)ii_files -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/irix-cc/qmake.conf b/mkspecs/irix-cc/qmake.conf index 72d4e65474..52abdf8578 100644 --- a/mkspecs/irix-cc/qmake.conf +++ b/mkspecs/irix-cc/qmake.conf @@ -38,6 +38,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = irix QMAKE_COMPILER_DEFINES += __sgi __EDG +include(../common/unix.conf) + QMAKE_COMPILER = sgi_cc QMAKE_CC = cc @@ -103,5 +105,4 @@ QMAKE_RANLIB = QMAKE_CLEAN = -r $(OBJECTS_DIR)so_locations $(OBJECTS_DIR)ii_files -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/irix-g++-64/qmake.conf b/mkspecs/irix-g++-64/qmake.conf index 12c224b5c0..bd258df5e8 100644 --- a/mkspecs/irix-g++-64/qmake.conf +++ b/mkspecs/irix-g++-64/qmake.conf @@ -6,6 +6,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = irix QMAKE_COMPILER_DEFINES += __sgi __GNUC__ +include(../common/unix.conf) + QMAKE_COMPILER = gcc QMAKE_CC = gcc @@ -73,5 +75,4 @@ QMAKE_RANLIB = QMAKE_CLEAN = so_locations -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/irix-g++/qmake.conf b/mkspecs/irix-g++/qmake.conf index 2c02165e0d..57a27b6a1b 100644 --- a/mkspecs/irix-g++/qmake.conf +++ b/mkspecs/irix-g++/qmake.conf @@ -6,6 +6,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = irix QMAKE_COMPILER_DEFINES += __sgi __GNUC__ +include(../common/unix.conf) + QMAKE_COMPILER = gcc QMAKE_CC = gcc @@ -73,5 +75,4 @@ QMAKE_RANLIB = QMAKE_CLEAN = so_locations -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/linux-cxx/qmake.conf b/mkspecs/linux-cxx/qmake.conf index 1c7cafc6f2..b156bea084 100644 --- a/mkspecs/linux-cxx/qmake.conf +++ b/mkspecs/linux-cxx/qmake.conf @@ -7,6 +7,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = linux +include(../common/unix.conf) + QMAKE_COMPILER = compaq_cc QMAKE_CC = ccc @@ -61,5 +63,4 @@ QMAKE_LIBS_OPENGL = -lGL QMAKE_AR = ar cqs QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/linux-g++-32/qmake.conf b/mkspecs/linux-g++-32/qmake.conf index 340aa85e7c..f09abeeec0 100644 --- a/mkspecs/linux-g++-32/qmake.conf +++ b/mkspecs/linux-g++-32/qmake.conf @@ -6,10 +6,12 @@ MAKEFILE_GENERATOR = UNIX CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib +include(../common/linux.conf) + QMAKE_CFLAGS = -m32 QMAKE_LFLAGS = -m32 -include(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) + load(qt_config) diff --git a/mkspecs/linux-g++-64/qmake.conf b/mkspecs/linux-g++-64/qmake.conf index 36fb6a83eb..a79b69ff31 100644 --- a/mkspecs/linux-g++-64/qmake.conf +++ b/mkspecs/linux-g++-64/qmake.conf @@ -9,10 +9,11 @@ MAKEFILE_GENERATOR = UNIX CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib +include(../common/linux.conf) + QMAKE_CFLAGS = -m64 QMAKE_LFLAGS = -m64 -include(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) diff --git a/mkspecs/linux-g++/qplatformdefs.h b/mkspecs/linux-g++/qplatformdefs.h index 5c18632e5d..95a57585d9 100644 --- a/mkspecs/linux-g++/qplatformdefs.h +++ b/mkspecs/linux-g++/qplatformdefs.h @@ -78,10 +78,10 @@ #undef QT_SOCKLEN_T -#if defined(__GLIBC__) && (__GLIBC__ >= 2) -#define QT_SOCKLEN_T socklen_t -#else +#if defined(__GLIBC__) && (__GLIBC__ < 2) #define QT_SOCKLEN_T int +#else +#define QT_SOCKLEN_T socklen_t #endif #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) diff --git a/mkspecs/linux-icc/qmake.conf b/mkspecs/linux-icc/qmake.conf index ca9e81512e..57f6c45ac1 100644 --- a/mkspecs/linux-icc/qmake.conf +++ b/mkspecs/linux-icc/qmake.conf @@ -18,13 +18,15 @@ QMAKE_CFLAGS_WARN_ON = -w1 -Wall -Wcheck -wd1572,873,2259,2261 QMAKE_CFLAGS_WARN_OFF = -w QMAKE_CFLAGS_RELEASE = -O2 -falign-functions=16 -ansi-alias -fstrict-aliasing QMAKE_CFLAGS_DEBUG = -O0 -g -QMAKE_CFLAGS_SHLIB = -fPIC -fno-jump-tables +QMAKE_CFLAGS_SHLIB = -fPIC QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB QMAKE_CFLAGS_YACC = QMAKE_CFLAGS_ISYSTEM = -isystem QMAKE_CFLAGS_THREAD = -D_REENTRANT QMAKE_CFLAGS_SPLIT_SECTIONS = -ffunction-sections -QMAKE_CFLAGS_LTCG = -ipo +QMAKE_CFLAGS_LTCG = -ipo -fno-fat-lto-objects +QMAKE_CFLAGS_LTCG_FATOBJECTS = -ffat-lto-objects +QMAKE_CFLAGS_DISABLE_LTCG = -no-ipo QMAKE_CFLAGS_SSE2 += -xSSE2 QMAKE_CFLAGS_SSE3 += -xSSE3 @@ -50,8 +52,14 @@ QMAKE_CXXFLAGS_SPLIT_SECTIONS = $$QMAKE_CFLAGS_SPLIT_SECTIONS # Disabling exceptions disabled - workaround for QTBUG-36577 #QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions QMAKE_CXXFLAGS_CXX11 = -std=c++0x +QMAKE_CXXFLAGS_CXX14 = -std=c++1y +QMAKE_CXXFLAGS_CXX1Z = -std=c++1z QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++0x +QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++1y +QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG +QMAKE_CXXFLAGS_LTCG_FATOBJECTS = $$QMAKE_CFLAGS_LTCG_FATOBJECTS +QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG QMAKE_INCDIR = QMAKE_LIBDIR = @@ -73,6 +81,8 @@ QMAKE_LFLAGS_NOUNDEF = -Wl,-z,defs QMAKE_LFLAGS_RPATH = -Wl,-rpath, QMAKE_LFLAGS_RPATHLINK = -Wl,-rpath-link, QMAKE_LFLAGS_CXX11 = +QMAKE_LFLAGS_CXX14 = +QMAKE_LFLAGS_CXX1Z = QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG QMAKE_LIBS = @@ -98,6 +108,7 @@ QMAKE_CXXFLAGS_PRECOMPILE = -c -pch-create ${QMAKE_PCH_OUTPUT} -include ${QMAKE_ # -Bsymbolic-functions (ld) support QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list, +QMAKE_LFLAGS_VERSION_SCRIPT = -Wl,--version-script, # Symbol visibility control QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden diff --git a/mkspecs/linux-kcc/qmake.conf b/mkspecs/linux-kcc/qmake.conf index 06efc8c12c..591a59537f 100644 --- a/mkspecs/linux-kcc/qmake.conf +++ b/mkspecs/linux-kcc/qmake.conf @@ -16,6 +16,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = linux +include(../common/unix.conf) + QMAKE_COMPILER = kai_cc QMAKE_CC = KCC @@ -78,5 +80,4 @@ QMAKE_RANLIB = QMAKE_CLEAN = -r $(OBJECTS_DIR)ti_files -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/linux-pgcc/qmake.conf b/mkspecs/linux-pgcc/qmake.conf index 286f937b0e..c41823ba94 100644 --- a/mkspecs/linux-pgcc/qmake.conf +++ b/mkspecs/linux-pgcc/qmake.conf @@ -7,6 +7,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = linux +include(../common/unix.conf) + QMAKE_COMPILER = portland_cc QMAKE_CC = pgcc @@ -67,5 +69,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/lynxos-g++/qmake.conf b/mkspecs/lynxos-g++/qmake.conf index a53d6a8ec7..91bcc6b85d 100644 --- a/mkspecs/lynxos-g++/qmake.conf +++ b/mkspecs/lynxos-g++/qmake.conf @@ -9,6 +9,8 @@ QMAKE_PLATFORM = lynxos CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib +include(../common/unix.conf) + QMAKE_COMPILER = gcc QMAKE_CC = gcc @@ -74,5 +76,4 @@ QMAKE_RANLIB = QMAKE_STRIP = strip QMAKE_STRIPFLAGS_LIB += --strip-unneeded -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/macx-clang-32/qmake.conf b/mkspecs/macx-clang-32/qmake.conf index 87c601ee74..ec33c02e93 100644 --- a/mkspecs/macx-clang-32/qmake.conf +++ b/mkspecs/macx-clang-32/qmake.conf @@ -14,7 +14,6 @@ include(../common/clang-mac.conf) QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7 QMAKE_CFLAGS += -arch i386 -QMAKE_OBJECTIVE_CFLAGS += -arch i386 QMAKE_CXXFLAGS += -arch i386 QMAKE_LFLAGS += -arch i386 diff --git a/mkspecs/macx-g++-32/qmake.conf b/mkspecs/macx-g++-32/qmake.conf index 2a8197ebbd..af6fe5689e 100644 --- a/mkspecs/macx-g++-32/qmake.conf +++ b/mkspecs/macx-g++-32/qmake.conf @@ -17,7 +17,6 @@ include(../common/g++-macx.conf) QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7 QMAKE_CFLAGS += -arch i386 -QMAKE_OBJECTIVE_CFLAGS += -arch i386 QMAKE_CXXFLAGS += -arch i386 QMAKE_LFLAGS += -arch i386 diff --git a/mkspecs/macx-icc/qmake.conf b/mkspecs/macx-icc/qmake.conf index c145c2c8f3..70ea5ee80f 100644 --- a/mkspecs/macx-icc/qmake.conf +++ b/mkspecs/macx-icc/qmake.conf @@ -18,12 +18,13 @@ QMAKE_CFLAGS_WARN_ON = -w1 -Wcheck -wd654,1572,411,873,1125,2259,2261,3280 QMAKE_CFLAGS_WARN_OFF = -w QMAKE_CFLAGS_RELEASE = QMAKE_CFLAGS_DEBUG = -g -QMAKE_CFLAGS_SHLIB = -fPIC -fno-jump-tables +QMAKE_CFLAGS_SHLIB = -fPIC QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses QMAKE_CFLAGS_THREAD = QMAKE_CFLAGS_SPLIT_SECTIONS = -ffunction-sections QMAKE_CFLAGS_LTCG = -ipo +QMAKE_CFLAGS_DISABLE_LTCG = -no-ipo QMAKE_CFLAGS_SSE2 += -msse2 QMAKE_CFLAGS_SSE3 += -msse3 @@ -33,14 +34,6 @@ QMAKE_CFLAGS_SSE4_2 += -msse4.2 QMAKE_CFLAGS_AVX += -mavx QMAKE_CFLAGS_AVX2 += -march=core-avx2 -QMAKE_OBJECTIVE_CC = clang -QMAKE_OBJECTIVE_CFLAGS = -pipe -QMAKE_OBJECTIVE_CFLAGS_WARN_ON = -Wall -W -QMAKE_OBJECTIVE_CFLAGS_WARN_OFF = -w -QMAKE_OBJECTIVE_CFLAGS_RELEASE = -Os -QMAKE_OBJECTIVE_CFLAGS_DEBUG = -g -QMAKE_OBJECTIVE_CFLAGS_HIDESYMS = -fvisibility=hidden - QMAKE_CXX = icpc QMAKE_CXXFLAGS = $$QMAKE_CFLAGS QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS @@ -53,9 +46,14 @@ QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD QMAKE_CXXFLAGS_CXX11 = -std=c++11 +QMAKE_CXXFLAGS_CXX14 = -std=c++1y +QMAKE_CXXFLAGS_CXX1Z = -std=c++1z QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++11 +QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++1y +QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z QMAKE_CXXFLAGS_SPLIT_SECTIONS = $$QMAKE_CFLAGS_SPLIT_SECTIONS QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG +QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG QMAKE_LINK = icpc QMAKE_LINK_SHLIB = icpc diff --git a/mkspecs/macx-ios-clang/features/default_post.prf b/mkspecs/macx-ios-clang/features/default_post.prf index 3acd35a038..40e7a893de 100644 --- a/mkspecs/macx-ios-clang/features/default_post.prf +++ b/mkspecs/macx-ios-clang/features/default_post.prf @@ -41,24 +41,24 @@ macx-xcode { # Set up default 4-inch iPhone/iPod launch image so that our apps # support the full screen resolution of those devices. - launch_image = Default-568h@2x.png - copy_image.input = $$QMAKESPEC/$$launch_image - copy_image.output = $$OUT_PWD/$${TARGET}.xcodeproj/$$launch_image - copy_image.CONFIG = verbatim - QMAKE_SUBSTITUTES += copy_image - launch_images.files = $$copy_image.output - QMAKE_BUNDLE_DATA += launch_images + qmake_launch_image = Default-568h@2x.png + qmake_copy_image.input = $$QMAKESPEC/$$qmake_launch_image + qmake_copy_image.output = $$OUT_PWD/$${TARGET}.xcodeproj/$$qmake_launch_image + qmake_copy_image.CONFIG = verbatim + QMAKE_SUBSTITUTES += qmake_copy_image + qmake_launch_images.files = $$qmake_copy_image.output + QMAKE_BUNDLE_DATA += qmake_launch_images lessThan(QMAKE_XCODE_VERSION, "6.0") { warning("You need to update Xcode to version 6 or newer to fully support iPhone6/6+") } else { # Set up default LaunchScreen to support iPhone6/6+ - launch_screen = LaunchScreen.xib - copy_launch_screen.input = $$QMAKESPEC/$$launch_screen - copy_launch_screen.output = $$OUT_PWD/$${TARGET}.xcodeproj/$$launch_screen - QMAKE_SUBSTITUTES += copy_launch_screen - launch_screens.files = $$copy_launch_screen.output - QMAKE_BUNDLE_DATA += launch_screens + qmake_launch_screen = LaunchScreen.xib + qmake_copy_launch_screen.input = $$QMAKESPEC/$$qmake_launch_screen + qmake_copy_launch_screen.output = $$OUT_PWD/$${TARGET}.xcodeproj/$$qmake_launch_screen + QMAKE_SUBSTITUTES += qmake_copy_launch_screen + qmake_launch_screens.files = $$qmake_copy_launch_screen.output + QMAKE_BUNDLE_DATA += qmake_launch_screens } } @@ -93,6 +93,5 @@ macx-xcode { QMAKE_CFLAGS += $$arch_flags QMAKE_CXXFLAGS += $$arch_flags - QMAKE_OBJECTIVE_CFLAGS += $$arch_flags QMAKE_LFLAGS += $$arch_flags } diff --git a/mkspecs/macx-ios-clang/ios_destinations.sh b/mkspecs/macx-ios-clang/ios_destinations.sh index aebf8f6403..e7b13c212c 100755 --- a/mkspecs/macx-ios-clang/ios_destinations.sh +++ b/mkspecs/macx-ios-clang/ios_destinations.sh @@ -33,7 +33,7 @@ ## ############################################################################# -booted_simulator=$(xcrun simctl list devices | grep -v unavailable | grep Booted | perl -lne 'print $1 if /\((.*?)\)/') +booted_simulator=$(xcrun simctl list devices | grep -E "iPhone|iPad" | grep -v unavailable | grep Booted | perl -lne 'print $1 if /\((.*?)\)/') echo "IPHONESIMULATOR_DEVICES = $booted_simulator" xcodebuild test -scheme $1 -destination 'id=0' -destination-timeout 1 2>&1| sed -n 's/{ \(platform:.*\) }/\1/p' | while read destination; do diff --git a/mkspecs/macx-ios-clang/xcodebuild.mk b/mkspecs/macx-ios-clang/xcodebuild.mk index f50010abc1..1bd18430df 100644 --- a/mkspecs/macx-ios-clang/xcodebuild.mk +++ b/mkspecs/macx-ios-clang/xcodebuild.mk @@ -40,6 +40,10 @@ $(EXPORT_SUBTARGETS): % : %-build %-install: ACTION = install %-install: xcodebuild-% ; +# iOS Simulator doesn't support archiving +%-iphonesimulator-install: ACTION = build +iphonesimulator-install: ACTION = build + # Limit check to a single configuration %-iphoneos-check: check-iphoneos ; %-iphonesimulator-check: check-iphonesimulator ; @@ -67,7 +71,7 @@ endif %-iphoneos: DEVICES = $(IPHONEOS_DEVICES) IPHONEOS_GENERIC_DESTINATION := "generic/platform=iOS" -IPHONESIMULATOR_GENERIC_DESTINATION := "id=$(shell xcrun simctl list devices | grep -v unavailable | perl -lne 'print $$1 if /\((.*?)\)/' | tail -n 1)" +IPHONESIMULATOR_GENERIC_DESTINATION := "id=$(shell xcrun simctl list devices | grep -E 'iPhone|iPad' | grep -v unavailable | perl -lne 'print $$1 if /\((.*?)\)/' | tail -n 1)" DESTINATION = $(if $(DESTINATION_ID),"id=$(DESTINATION_ID)",$(value $(call toupper,$(call basesdk,$(SDK)))_GENERIC_DESTINATION)) diff --git a/mkspecs/macx-xcode/default.xcscheme b/mkspecs/macx-xcode/default.xcscheme index 4a16fefca0..ab2f6a8ab7 100644 --- a/mkspecs/macx-xcode/default.xcscheme +++ b/mkspecs/macx-xcode/default.xcscheme @@ -73,6 +73,13 @@ ReferencedContainer = "container:@QMAKE_ORIG_TARGET@.xcodeproj"> </BuildableReference> </BuildableProductRunnable> + <EnvironmentVariables> + <EnvironmentVariable + key = "DYLD_IMAGE_SUFFIX" + value = "$(QT_LIBRARY_SUFFIX)" + isEnabled = "YES"> + </EnvironmentVariable> + </EnvironmentVariables> <AdditionalOptions> </AdditionalOptions> </LaunchAction> diff --git a/mkspecs/netbsd-g++/qmake.conf b/mkspecs/netbsd-g++/qmake.conf index 6cb24d9bf9..04c675da24 100644 --- a/mkspecs/netbsd-g++/qmake.conf +++ b/mkspecs/netbsd-g++/qmake.conf @@ -5,6 +5,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = netbsd bsd +include(../common/unix.conf) + QMAKE_COMPILER = gcc QMAKE_CC = gcc @@ -68,5 +70,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = ranlib -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/openbsd-g++/qmake.conf b/mkspecs/openbsd-g++/qmake.conf index 2fdbd2c469..10330bc081 100644 --- a/mkspecs/openbsd-g++/qmake.conf +++ b/mkspecs/openbsd-g++/qmake.conf @@ -5,6 +5,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = openbsd bsd +include(../common/unix.conf) + QMAKE_COMPILER = gcc QMAKE_CC = gcc @@ -69,5 +71,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = ranlib -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/sco-g++/qmake.conf b/mkspecs/sco-g++/qmake.conf index ebf60a3954..27fc1cffe3 100644 --- a/mkspecs/sco-g++/qmake.conf +++ b/mkspecs/sco-g++/qmake.conf @@ -7,6 +7,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = sco +include(../common/unix.conf) + QMAKE_COMPILER = gcc QMAKE_CC = gcc @@ -65,5 +67,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/solaris-cc-64/qmake.conf b/mkspecs/solaris-cc-64/qmake.conf index 6e1d35ef43..1c7b43c29c 100644 --- a/mkspecs/solaris-cc-64/qmake.conf +++ b/mkspecs/solaris-cc-64/qmake.conf @@ -24,6 +24,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = solaris +include(../common/unix.conf) + QMAKE_COMPILER = sun_cc QMAKE_CC = cc @@ -90,5 +92,4 @@ QMAKE_RANLIB = QMAKE_CLEAN = -r $(OBJECTS_DIR)Templates.DB $(OBJECTS_DIR)SunWS_cache -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/solaris-cc/qmake.conf b/mkspecs/solaris-cc/qmake.conf index 23814135b6..045ab033dd 100644 --- a/mkspecs/solaris-cc/qmake.conf +++ b/mkspecs/solaris-cc/qmake.conf @@ -7,6 +7,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = solaris +include(../common/unix.conf) + QMAKE_COMPILER = sun_cc QMAKE_CC = cc @@ -73,5 +75,4 @@ QMAKE_RANLIB = QMAKE_CLEAN = -r $(OBJECTS_DIR)Templates.DB $(OBJECTS_DIR)SunWS_cache -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/solaris-g++-64/qmake.conf b/mkspecs/solaris-g++-64/qmake.conf index 34fd044f3e..91ffb9193e 100644 --- a/mkspecs/solaris-g++-64/qmake.conf +++ b/mkspecs/solaris-g++-64/qmake.conf @@ -28,6 +28,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = solaris +include(../common/unix.conf) + QMAKE_COMPILER = gcc QMAKE_CC = gcc @@ -92,5 +94,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/solaris-g++/qmake.conf b/mkspecs/solaris-g++/qmake.conf index ccc178395b..594646353d 100644 --- a/mkspecs/solaris-g++/qmake.conf +++ b/mkspecs/solaris-g++/qmake.conf @@ -11,6 +11,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = solaris +include(../common/unix.conf) + QMAKE_COMPILER = gcc QMAKE_CC = gcc @@ -75,5 +77,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/tru64-cxx/qmake.conf b/mkspecs/tru64-cxx/qmake.conf index a2e0112623..024590bf91 100644 --- a/mkspecs/tru64-cxx/qmake.conf +++ b/mkspecs/tru64-cxx/qmake.conf @@ -6,6 +6,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = tru64 CONFIG += plugin_no_soname +include(../common/unix.conf) + QMAKE_COMPILER = dec_cc QMAKE_CC = cc @@ -65,5 +67,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/tru64-g++/qmake.conf b/mkspecs/tru64-g++/qmake.conf index dd7eb6c9c3..193e2694ea 100644 --- a/mkspecs/tru64-g++/qmake.conf +++ b/mkspecs/tru64-g++/qmake.conf @@ -6,6 +6,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = tru64 CONFIG += plugin_no_soname +include(../common/unix.conf) + QMAKE_COMPILER = gcc QMAKE_CC = gcc @@ -67,5 +69,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/unixware-cc/qmake.conf b/mkspecs/unixware-cc/qmake.conf index 483b8c0bb3..1a36a3e76b 100644 --- a/mkspecs/unixware-cc/qmake.conf +++ b/mkspecs/unixware-cc/qmake.conf @@ -10,6 +10,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = unixware +include(../common/unix.conf) + QMAKE_COMPILER = sco_cc QMAKE_CC = cc @@ -69,5 +71,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/unixware-g++/qmake.conf b/mkspecs/unixware-g++/qmake.conf index feca5a4c9e..abe2773deb 100644 --- a/mkspecs/unixware-g++/qmake.conf +++ b/mkspecs/unixware-g++/qmake.conf @@ -7,6 +7,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = unixware +include(../common/unix.conf) + QMAKE_COMPILER = gcc QMAKE_CC = gcc @@ -68,5 +70,4 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../common/unix.conf) load(qt_config) diff --git a/mkspecs/unsupported/freebsd-clang/qmake.conf b/mkspecs/unsupported/freebsd-clang/qmake.conf index 92b7c47590..9d9815a7b3 100644 --- a/mkspecs/unsupported/freebsd-clang/qmake.conf +++ b/mkspecs/unsupported/freebsd-clang/qmake.conf @@ -5,6 +5,8 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = freebsd bsd +include(../common/unix.conf) + QMAKE_CFLAGS_THREAD = -pthread -D_THREAD_SAFE QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD @@ -28,7 +30,7 @@ QMAKE_OBJCOPY = objcopy QMAKE_NM = nm -P QMAKE_RANLIB = -include(../../common/unix.conf) include(../../common/gcc-base-unix.conf) include(../../common/clang.conf) + load(qt_config) diff --git a/mkspecs/unsupported/linux-armcc/qmake.conf b/mkspecs/unsupported/linux-armcc/qmake.conf deleted file mode 100644 index 2c7eb7c2d8..0000000000 --- a/mkspecs/unsupported/linux-armcc/qmake.conf +++ /dev/null @@ -1,29 +0,0 @@ -# -# qmake configuration for linux-armcc -# - -MAKEFILE_GENERATOR = UNIX -CONFIG += incremental armcc_linker -QMAKE_INCREMENTAL_STYLE = sublib - -include(../../common/linux.conf) -include(../../common/armcc.conf) -load(qt_config) - -# use armcc for linking since armlink doesn't understand the arm_linux_config_file option -QMAKE_LINK = armcc -QMAKE_LINK_SHLIB = armcc -QMAKE_LINK_C = armcc -QMAKE_LINK_C_SHLIB = armcc - -QMAKE_LFLAGS_SHLIB += --apcs=/fpic --shared -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB - -QMAKE_LIBS += libstdc++.so librt.so - -CONFIG -= rvct_linker - -QMAKE_CFLAGS += --gnu --arm_linux --dllimport_runtime --thumb --cpu Cortex-A9 --arm_linux_config_file="$(HOME)/qt_rvct_config" --arm-linux-paths --apcs=/interwork --visibility_inlines_hidden --diag_suppress 1300,2523 -QMAKE_CXXFLAGS += $$QMAKE_CFLAGS --cpp - -QMAKE_LFLAGS += --diag_suppress 6331,6780,6439 --arm_linux_config_file="$(HOME)/qt_rvct_config" --arm-linux-paths diff --git a/mkspecs/unsupported/linux-host-g++/qmake.conf b/mkspecs/unsupported/linux-host-g++/qmake.conf index 1523126eaa..3aa7520776 100644 --- a/mkspecs/unsupported/linux-host-g++/qmake.conf +++ b/mkspecs/unsupported/linux-host-g++/qmake.conf @@ -17,6 +17,8 @@ QMAKE_PLATFORM = linux CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib +include(../common/unix.conf) + # # qmake configuration for common gcc # @@ -71,6 +73,7 @@ QMAKE_PCH_OUTPUT_EXT = .gch # -Bsymbolic-functions (ld) support QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list, +QMAKE_LFLAGS_VERSION_SCRIPT = -Wl,--version-script, # # qmake configuration for common linux @@ -110,5 +113,4 @@ QMAKE_RANLIB = QMAKE_STRIP = host-strip QMAKE_STRIPFLAGS_LIB += --strip-unneeded -include(../../common/unix.conf) load(qt_config) diff --git a/mkspecs/unsupported/qnx-X11-g++/qmake.conf b/mkspecs/unsupported/qnx-X11-g++/qmake.conf index 8d2c63f330..79a5609dbf 100644 --- a/mkspecs/unsupported/qnx-X11-g++/qmake.conf +++ b/mkspecs/unsupported/qnx-X11-g++/qmake.conf @@ -7,9 +7,9 @@ MAKEFILE_GENERATOR = UNIX QMAKE_PLATFORM = qnx +include(../common/unix.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) -include(../common/unix.conf) QMAKE_CFLAGS_THREAD = -D_REENTRANT QMAKE_CXXFLAGS_THREAD = $$QMAKE_CLFAGS_THREAD diff --git a/mkspecs/unsupported/vxworks-ppc-dcc/qmake.conf b/mkspecs/unsupported/vxworks-ppc-dcc/qmake.conf index a4cf23df9c..16e3127803 100644 --- a/mkspecs/unsupported/vxworks-ppc-dcc/qmake.conf +++ b/mkspecs/unsupported/vxworks-ppc-dcc/qmake.conf @@ -7,6 +7,8 @@ QMAKE_PLATFORM = vxworks CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib +include(../common/unix.conf) + VXWORKS_ARCH = ppc VXWORKS_CPU = PPC32 VXWORKS_DIAB_SPEC = -tPPC7400FV:vxworks66 @@ -88,6 +90,5 @@ QMAKE_RANLIB = QMAKE_STRIP = strip QMAKE_STRIPFLAGS_LIB += --strip-unneeded -include(../../common/unix.conf) load(qt_config) diff --git a/mkspecs/unsupported/vxworks-ppc-g++/qmake.conf b/mkspecs/unsupported/vxworks-ppc-g++/qmake.conf index 1d3e9f4eb4..49cacdba43 100644 --- a/mkspecs/unsupported/vxworks-ppc-g++/qmake.conf +++ b/mkspecs/unsupported/vxworks-ppc-g++/qmake.conf @@ -8,13 +8,14 @@ CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib DEFINES += VXWORKS +include(../../common/linux.conf) + VXWORKS_ARCH = ppc VXWORKS_CPU = PPC32 VXWORKS_ARCH_MUNCH = ppc include(../../common/gcc-base-unix.conf) include(../../common/g++-unix.conf) -include(../../common/linux.conf) QMAKE_CC = cc$$VXWORKS_ARCH_MUNCH QMAKE_CFLAGS = -fno-builtin -I$(WIND_BASE)/target/h -I$(WIND_BASE)/target/h/wrn/coreip -DCPU=$$upper($$VXWORKS_ARCH) -DVX_CPU_FAMILY=$$VXWORKS_ARCH -DTOOL_FAMILY=gnu -DTOOL=gnu -D_WRS_KERNEL -D_VSB_CONFIG_FILE=\'<../lib/h/config/vsbConfig.h>\' diff --git a/mkspecs/unsupported/vxworks-simpentium-dcc/qmake.conf b/mkspecs/unsupported/vxworks-simpentium-dcc/qmake.conf index 49f0c21d4a..44e39a8a8c 100644 --- a/mkspecs/unsupported/vxworks-simpentium-dcc/qmake.conf +++ b/mkspecs/unsupported/vxworks-simpentium-dcc/qmake.conf @@ -7,6 +7,8 @@ QMAKE_PLATFORM = vxworks CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib +include(../common/unix.conf) + VXWORKS_ARCH = simlinux VXWORKS_CPU = SIMLINUX VXWORKS_DIAB_SPEC = -tX86LH:vxworks66 @@ -87,6 +89,5 @@ QMAKE_RANLIB = QMAKE_STRIP = strip QMAKE_STRIPFLAGS_LIB += --strip-unneeded -include(../../common/unix.conf) load(qt_config) diff --git a/mkspecs/unsupported/vxworks-simpentium-g++/qmake.conf b/mkspecs/unsupported/vxworks-simpentium-g++/qmake.conf index 3c8fd12d4a..4d5cc97fad 100644 --- a/mkspecs/unsupported/vxworks-simpentium-g++/qmake.conf +++ b/mkspecs/unsupported/vxworks-simpentium-g++/qmake.conf @@ -8,13 +8,14 @@ CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublib DEFINES += VXWORKS +include(../../common/linux.conf) + VXWORKS_ARCH = simlinux VXWORKS_CPU = SIMLINUX VXWORKS_ARCH_MUNCH = pentium include(../../common/gcc-base-unix.conf) include(../../common/g++-unix.conf) -include(../../common/linux.conf) QMAKE_CC = cc$$VXWORKS_ARCH_MUNCH QMAKE_CFLAGS = -fno-builtin -I$(WIND_BASE)/target/h -I$(WIND_BASE)/target/h/wrn/coreip -DCPU=$$upper($$VXWORKS_ARCH) -DVX_CPU_FAMILY=$$VXWORKS_ARCH -DTOOL_FAMILY=gnu -DTOOL=gnu -D_WRS_KERNEL -D_VSB_CONFIG_FILE=\'<../lib/h/config/vsbConfig.h>\' diff --git a/mkspecs/win32-g++/qmake.conf b/mkspecs/win32-g++/qmake.conf index 019c220de5..9cb811b5bf 100644 --- a/mkspecs/win32-g++/qmake.conf +++ b/mkspecs/win32-g++/qmake.conf @@ -8,6 +8,7 @@ # load(device_config) +include(../common/angle.conf) MAKEFILE_GENERATOR = MINGW QMAKE_PLATFORM = win32 mingw @@ -56,7 +57,11 @@ QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions QMAKE_CXXFLAGS_CXX11 = -std=c++0x +QMAKE_CXXFLAGS_CXX14 = -std=c++1y +QMAKE_CXXFLAGS_CXX1Z = -std=c++1z QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++0x +QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++1y +QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z QMAKE_CXXFLAGS_SPLIT_SECTIONS = $$QMAKE_CFLAGS_SPLIT_SECTIONS QMAKE_INCDIR = @@ -77,20 +82,25 @@ QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows QMAKE_LFLAGS_DLL = -shared QMAKE_LFLAGS_CXX11 = +QMAKE_LFLAGS_CXX14 = +QMAKE_LFLAGS_CXX1Z = QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections QMAKE_LFLAGS_USE_GOLD = -fuse-ld=gold QMAKE_LINK_OBJECT_MAX = 10 QMAKE_LINK_OBJECT_SCRIPT = object_script +QMAKE_PREFIX_SHLIB = +QMAKE_EXTENSION_SHLIB = dll QMAKE_PREFIX_STATICLIB = lib QMAKE_EXTENSION_STATICLIB = a +QMAKE_LIB_EXTENSIONS = a dll.a QMAKE_LIBS = QMAKE_LIBS_CORE = -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 QMAKE_LIBS_GUI = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lws2_32 -lole32 -luuid -luser32 -ladvapi32 QMAKE_LIBS_NETWORK = -lws2_32 QMAKE_LIBS_OPENGL = -lglu32 -lopengl32 -lgdi32 -luser32 -QMAKE_LIBS_OPENGL_ES2 = -llibEGL -llibGLESv2 -lgdi32 -luser32 -QMAKE_LIBS_OPENGL_ES2_DEBUG = -llibEGLd -llibGLESv2d -lgdi32 -luser32 +QMAKE_LIBS_OPENGL_ES2 = -l$${LIBEGL_NAME} -l$${LIBGLESV2_NAME} -lgdi32 -luser32 +QMAKE_LIBS_OPENGL_ES2_DEBUG = -l$${LIBEGL_NAME}d -l$${LIBGLESV2_NAME}d -lgdi32 -luser32 QMAKE_LIBS_COMPAT = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32 QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqtmain diff --git a/mkspecs/win32-g++/qplatformdefs.h b/mkspecs/win32-g++/qplatformdefs.h index b4ba092d3b..ef3c518262 100644 --- a/mkspecs/win32-g++/qplatformdefs.h +++ b/mkspecs/win32-g++/qplatformdefs.h @@ -52,7 +52,6 @@ #include <errno.h> #include <sys/stat.h> #include <stdlib.h> -#include <qt_windows.h> #include <limits.h> #if !defined(_WIN32_WINNT) || (_WIN32_WINNT-0 < 0x0500) diff --git a/mkspecs/win32-icc/qmake.conf b/mkspecs/win32-icc/qmake.conf index 31c87fff26..3b440d143f 100644 --- a/mkspecs/win32-icc/qmake.conf +++ b/mkspecs/win32-icc/qmake.conf @@ -17,13 +17,14 @@ QMAKE_LEX = flex QMAKE_LEXFLAGS = QMAKE_YACC = bison -y QMAKE_YACCFLAGS = -d -QMAKE_CFLAGS = -nologo -Zm200 /Qprec /Qwd1744,1738 +QMAKE_CFLAGS = -nologo -Zm200 /Qprec /Qwd1744,1738,809 QMAKE_CFLAGS_WARN_ON = -W3 /Qwd673 QMAKE_CFLAGS_WARN_OFF = -W0 /Qwd673 QMAKE_CFLAGS_RELEASE = -O2 -MD QMAKE_CFLAGS_DEBUG = -Zi -MDd -Od QMAKE_CFLAGS_YACC = QMAKE_CFLAGS_LTCG = -Qipo +QMAKE_CFLAGS_DISABLE_LTCG = -Qno-ipo QMAKE_CFLAGS_SSE2 = -QxSSE2 QMAKE_CFLAGS_SSE3 = -QxSSE3 QMAKE_CFLAGS_SSSE3 = -QxSSSE3 @@ -46,7 +47,11 @@ QMAKE_CXXFLAGS_RTTI_OFF = QMAKE_CXXFLAGS_EXCEPTIONS_ON = -EHsc QMAKE_CXXFLAGS_EXCEPTIONS_OFF = QMAKE_CXXFLAGS_CXX11 = -Qstd=c++11 +# ICC supports the following but Qt won't compile +#QMAKE_CXXFLAGS_CXX14 = -Qstd=c++14 +#QMAKE_CXXFLAGS_CXX1Z = -Qstd=c++1z QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG +QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG QMAKE_INCDIR = @@ -65,6 +70,9 @@ QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:console QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:windows QMAKE_LFLAGS_DLL = /DLL QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG +QMAKE_PREFIX_SHLIB = +QMAKE_EXTENSION_SHLIB = dll +QMAKE_PREFIX_STATICLIB = QMAKE_EXTENSION_STATICLIB = lib QMAKE_LIBS = diff --git a/mkspecs/wince70embedded-armv4i-msvc2008/qmake.conf b/mkspecs/wince70embedded-armv4i-msvc2008/qmake.conf index 772a514b89..860fbc0e6a 100644 --- a/mkspecs/wince70embedded-armv4i-msvc2008/qmake.conf +++ b/mkspecs/wince70embedded-armv4i-msvc2008/qmake.conf @@ -21,7 +21,7 @@ QMAKE_LIBS_NETWORK = ws2.lib $$QMAKE_LIBS_GUI QMAKE_LIBS_OPENGL = QMAKE_LIBS_COMPAT = QMAKE_LIBS_OPENVG = libopenvg.lib -QMAKE_LIBS_OPENGL_ES2 = libEGL.lib libGLESv2.lib +QMAKE_LIBS_OPENGL_ES2 = $${LIBEGL_NAME}.lib $${LIBGLESV2_NAME}.lib QMAKE_RC = rc diff --git a/mkspecs/wince80colibri-armv7-msvc2012/qmake.conf b/mkspecs/wince80colibri-armv7-msvc2012/qmake.conf index 47c512bbda..3712c94778 100644 --- a/mkspecs/wince80colibri-armv7-msvc2012/qmake.conf +++ b/mkspecs/wince80colibri-armv7-msvc2012/qmake.conf @@ -5,11 +5,11 @@ include(../common/wince/qmake.conf) -CE_SDK = Toradex_CE8_SDK # replace with actual SDK name +CE_SDK = Toradex_CE800 # replace with actual SDK name CE_ARCH = ARMV7 QT_CONFIG -= accessibility -DEFINES += QT_NO_CLIPBOARD QT_NO_ACCESSIBILITY QT_NO_NATIVE_GESTURES QT_NOSTANDARDSHELL_UI_MODEL _CRT_SECURE_NO_DEPRECATE _WIN32_WCE=0x800 $$CE_ARCH _AMRV7_ armv7 _ARM_ UNDER_CE WINCE ARM +DEFINES += QT_NO_CLIPBOARD QT_NO_ACCESSIBILITY QT_NO_NATIVE_GESTURES QT_NOSTANDARDSHELL_UI_MODEL _CRT_SECURE_NO_DEPRECATE _WIN32_WCE=0x800 $$CE_ARCH _AMRV7_ armv7 _ARM_ UNDER_CE WINCE ARM QT_NO_WINCE_SHELLSDK QT_NO_WINCE_NUIOUSER #QMAKE_CXXFLAGS += /P QMAKE_CFLAGS_RELEASE += -O2 -MT @@ -25,7 +25,7 @@ QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO -= -MD QMAKE_CXXFLAGS_DEBUG -= -MDd QMAKE_CXXFLAGS_DEBUG += -MTd QMAKE_INCDIR_OPENGL_ES2 += $$(NV_WINCE_T2_PLAT)/include -QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,8.00 /MACHINE:ARM /ENTRY:mainCRTStartup +QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:WINDOWSCE,8.00 /MACHINE:ARM QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWSCE,8.00 /MACHINE:ARM QMAKE_LFLAGS_DLL = /SUBSYSTEM:WINDOWSCE,8.00 /MACHINE:ARM /DLL /SAFESEH:NO QMAKE_LIBFLAGS_RELEASE = /LTCG @@ -33,13 +33,10 @@ QMAKE_LIBS = coredll.lib QMAKE_LIBS_CORE = ole32.lib oleaut32.lib uuid.lib commctrl.lib coredll.lib winsock.lib QMAKE_LIBS_GUI = ole32.lib $$QMAKE_LIBS_CORE QMAKE_LIBS_NETWORK = ws2.lib $$QMAKE_LIBS_GUI -QMAKE_LIBS_OPENGL = -QMAKE_LIBS_COMPAT = -QMAKE_LIBS_OPENVG = -QMAKE_LIBS_OPENGL_ES2 = libEGL.lib libGLESv2.lib -QMAKE_LIBDIR_OPENGL_ES2 = $$(NV_WINCE_T2_PLAT)/lib/Test -QMAKE_INCDIR_EGL = $$(NV_WINCE_T2_PLAT)/include -QMAKE_LIBDIR_EGL = $$(NV_WINCE_T2_PLAT)/lib/Test +QMAKE_LIBS_OPENGL_ES2 = $${LIBEGL_NAME}.lib $${LIBGLESV2_NAME}.lib + +MAKEFILE_GENERATOR = MSBUILD +VCPROJ_EXTENSION = .vcxproj QMAKE_RC = rc diff --git a/mkspecs/winphone-arm-msvc2013/qmake.conf b/mkspecs/winphone-arm-msvc2013/qmake.conf index e848d254d4..ca2cc50e84 100644 --- a/mkspecs/winphone-arm-msvc2013/qmake.conf +++ b/mkspecs/winphone-arm-msvc2013/qmake.conf @@ -8,6 +8,7 @@ include(../common/winrt_winphone/qmake.conf) QMAKE_COMPILER_DEFINES += _MSC_VER=1800 QMAKE_PLATFORM = winphone $$QMAKE_PLATFORM DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP ARM __ARM__ __ARM__ +CONFIG += no_generated_target_info QMAKE_CFLAGS += -FS QMAKE_CXXFLAGS += -FS diff --git a/mkspecs/winphone-x86-msvc2013/qmake.conf b/mkspecs/winphone-x86-msvc2013/qmake.conf index 18d8402822..ad8dbe1fee 100644 --- a/mkspecs/winphone-x86-msvc2013/qmake.conf +++ b/mkspecs/winphone-x86-msvc2013/qmake.conf @@ -8,6 +8,7 @@ include(../common/winrt_winphone/qmake.conf) QMAKE_COMPILER_DEFINES += _MSC_VER=1800 QMAKE_PLATFORM = winphone $$QMAKE_PLATFORM DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP X86 __X86__ __x86__ +CONFIG += no_generated_target_info QMAKE_CFLAGS += -FS QMAKE_CXXFLAGS += -FS diff --git a/mkspecs/winrt-arm-msvc2013/qmake.conf b/mkspecs/winrt-arm-msvc2013/qmake.conf index d1ab60723d..f8b48b0829 100644 --- a/mkspecs/winrt-arm-msvc2013/qmake.conf +++ b/mkspecs/winrt-arm-msvc2013/qmake.conf @@ -6,7 +6,7 @@ include(../common/winrt_winphone/qmake.conf) QMAKE_COMPILER_DEFINES += _MSC_VER=1800 -DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_APP ARM __ARM__ __arm__ +DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_PC_APP ARM __ARM__ __arm__ QMAKE_CFLAGS += -FS QMAKE_CXXFLAGS += -FS diff --git a/mkspecs/winrt-arm-msvc2015/qmake.conf b/mkspecs/winrt-arm-msvc2015/qmake.conf index fcb6d99aa9..7a9375246d 100644 --- a/mkspecs/winrt-arm-msvc2015/qmake.conf +++ b/mkspecs/winrt-arm-msvc2015/qmake.conf @@ -4,25 +4,16 @@ # Written for Microsoft Visual C++ 2015 # +MSC_VER = 1900 include(../common/winrt_winphone/qmake.conf) QMAKE_COMPILER_DEFINES += _MSC_VER=1900 -DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_APP ARM __ARM__ __arm__ +DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_PC_APP WINAPI_PARTITION_PHONE_APP=1 ARM __ARM__ __arm__ QMAKE_CFLAGS += -FS QMAKE_CXXFLAGS += -FS QMAKE_LFLAGS += /MACHINE:ARM /NODEFAULTLIB:kernel32.lib -QMAKE_LIBS += windowscodecs.lib WindowsApp.lib runtimeobject.lib - -# Note that the order is important, ucrt(d) has to be first -# Otherwise the linker might use malloc from a different library -# but free_dbg() from the runtime, causing assert when deleting -# items from different heaps -CONFIG(debug, debug|release) { - QMAKE_LIBS = ucrtd.lib $$QMAKE_LIBS -} else { - QMAKE_LIBS = ucrt.lib $$QMAKE_LIBS -} +QMAKE_LIBS += windowscodecs.lib WindowsApp.lib runtimeobject.lib OneCore.lib VCPROJ_ARCH = ARM MSVC_VER = 14.0 diff --git a/mkspecs/winrt-x64-msvc2015/qmake.conf b/mkspecs/winrt-x64-msvc2015/qmake.conf index e8062f5364..ca2dc88bf0 100644 --- a/mkspecs/winrt-x64-msvc2015/qmake.conf +++ b/mkspecs/winrt-x64-msvc2015/qmake.conf @@ -4,25 +4,16 @@ # Written for Microsoft Visual C++ 2015 # +MSC_VER = 1900 include(../common/winrt_winphone/qmake.conf) QMAKE_COMPILER_DEFINES += _MSC_VER=1900 _WIN32 -DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_APP X64 __X64__ __x64__ +DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_PC_APP WINAPI_PARTITION_PHONE_APP=1 X64 __X64__ __x64__ QMAKE_CFLAGS += -FS QMAKE_CXXFLAGS += -FS QMAKE_LFLAGS += /MACHINE:X64 /NODEFAULTLIB:kernel32.lib -QMAKE_LIBS += windowscodecs.lib WindowsApp.lib runtimeobject.lib - -# Note that the order is important, ucrt(d) has to be first -# Otherwise the linker might use malloc from a different library -# but free_dbg() from the runtime, causing assert when deleting -# items from different heaps -CONFIG(debug, debug|release) { - QMAKE_LIBS = ucrtd.lib $$QMAKE_LIBS -} else { - QMAKE_LIBS = ucrt.lib $$QMAKE_LIBS -} +QMAKE_LIBS += windowscodecs.lib WindowsApp.lib runtimeobject.lib OneCore.lib VCPROJ_ARCH = x64 MSVC_VER = 14.0 diff --git a/mkspecs/winrt-x86-msvc2013/qmake.conf b/mkspecs/winrt-x86-msvc2013/qmake.conf index 77b906c7d3..3359102e7e 100644 --- a/mkspecs/winrt-x86-msvc2013/qmake.conf +++ b/mkspecs/winrt-x86-msvc2013/qmake.conf @@ -6,7 +6,7 @@ include(../common/winrt_winphone/qmake.conf) QMAKE_COMPILER_DEFINES += _MSC_VER=1800 _WIN32 -DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_APP X86 __X86__ __x86__ +DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_PC_APP X86 __X86__ __x86__ QMAKE_CFLAGS += -FS QMAKE_CXXFLAGS += -FS diff --git a/mkspecs/winrt-x86-msvc2015/qmake.conf b/mkspecs/winrt-x86-msvc2015/qmake.conf index 5b44a97e8d..3b2681e93d 100644 --- a/mkspecs/winrt-x86-msvc2015/qmake.conf +++ b/mkspecs/winrt-x86-msvc2015/qmake.conf @@ -4,26 +4,16 @@ # Written for Microsoft Visual C++ 2015 # +MSC_VER = 1900 include(../common/winrt_winphone/qmake.conf) QMAKE_COMPILER_DEFINES += _MSC_VER=1900 _WIN32 -DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_APP X86 __X86__ __x86__ +DEFINES += WINAPI_FAMILY=WINAPI_FAMILY_PC_APP WINAPI_PARTITION_PHONE_APP=1 X86 __X86__ __x86__ QMAKE_CFLAGS += -FS QMAKE_CXXFLAGS += -FS QMAKE_LFLAGS += /SAFESEH /MACHINE:X86 /NODEFAULTLIB:kernel32.lib -QMAKE_LIBS += windowscodecs.lib WindowsApp.lib runtimeobject.lib - -# Note that the order is important, ucrt(d) has to be first -# Otherwise the linker might use malloc from a different library -# but free_dbg() from the runtime, causing assert when deleting -# items from different heaps -CONFIG(debug, debug|release) { - QMAKE_LIBS = ucrtd.lib $$QMAKE_LIBS -} else { - QMAKE_LIBS = ucrt.lib $$QMAKE_LIBS -} - +QMAKE_LIBS += windowscodecs.lib WindowsApp.lib runtimeobject.lib OneCore.lib VCPROJ_ARCH = Win32 MSVC_VER = 14.0 WINSDK_VER = 10.0 |