diff options
Diffstat (limited to '0001-Adjust-win32-g-profile-for-cross-compilation-with-mi.patch')
-rw-r--r-- | 0001-Adjust-win32-g-profile-for-cross-compilation-with-mi.patch | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/0001-Adjust-win32-g-profile-for-cross-compilation-with-mi.patch b/0001-Adjust-win32-g-profile-for-cross-compilation-with-mi.patch new file mode 100644 index 000000000000..013d327fd298 --- /dev/null +++ b/0001-Adjust-win32-g-profile-for-cross-compilation-with-mi.patch @@ -0,0 +1,174 @@ +From bd010d1fb00f61dd6cca52c93a4285c5d967029b Mon Sep 17 00:00:00 2001 +From: Martchus <martchus@gmx.net> +Date: Fri, 3 Feb 2017 18:30:51 +0100 +Subject: [PATCH 01/33] Adjust win32-g++ profile for cross compilation with + mingw-w64 + +Adding a new, separate mkspec instead of patching the existing one +might be the cleaner solution. However tools like windeployqt and +qbs do checks based on the hardcoded mkspec name to detect MinGW. +So for this to work, the mkspec must be called win32-g++. + +Also see the following issues: +* https://github.com/Martchus/PKGBUILDs/issues/59 +* https://github.com/Martchus/PKGBUILDs/issues/60 +--- + mkspecs/common/g++-win32.conf | 56 +++++++++++++++++++++--------- + mkspecs/win32-clang-g++/qmake.conf | 4 +-- + mkspecs/win32-g++/qmake.conf | 4 +-- + 3 files changed, 43 insertions(+), 21 deletions(-) + +diff --git a/mkspecs/common/g++-win32.conf b/mkspecs/common/g++-win32.conf +index 610503379d..f099380cca 100644 +--- a/mkspecs/common/g++-win32.conf ++++ b/mkspecs/common/g++-win32.conf +@@ -8,22 +8,31 @@ + # Compiler-specific settings go into win32-g++/qmake.conf and + # win32-clang-g++/qmake.conf + # ++# The device options CROSS_COMPILE_CUSTOM_CONFIG and CROSS_COMPILE_CFLAGS can be used ++# to specify custom config/flags for cross compilation. ++# + + load(device_config) + include(gcc-base.conf) + include(g++-base.conf) + ++include(angle.conf) ++include(windows-vulkan.conf) ++ + # modifications to gcc-base.conf and g++-base.conf + + MAKEFILE_GENERATOR = MINGW + QMAKE_PLATFORM = win32 mingw +-CONFIG += debug_and_release debug_and_release_target precompile_header +-DEFINES += UNICODE _UNICODE WIN32 +-QMAKE_COMPILER_DEFINES += __GNUC__ _WIN32 ++CONFIG += debug_and_release debug_and_release_target precompile_header $${CROSS_COMPILE_CUSTOM_CONFIG} ++DEFINES += UNICODE _UNICODE ++QMAKE_COMPILER_DEFINES += __GNUC__ _WIN32 WIN32 + # can't add 'DEFINES += WIN64' and 'QMAKE_COMPILER_DEFINES += _WIN64' defines for + # x86_64 platform similar to 'msvc-desktop.conf' toolchain, because, unlike for MSVC, + # 'QMAKE_TARGET.arch' is inherently unavailable. + ++# prevent definition of _xgetbv() in psdk_inc/intrin-impl.h (already defined in xsaveintrin.h) ++DEFINES += __INTRINSIC_DEFINED__xgetbv ++ + QMAKE_LEX = flex + QMAKE_LEXFLAGS = + QMAKE_YACC = bison -y +@@ -34,6 +43,7 @@ QMAKE_CFLAGS_SSE2 += -mstackrealign + QMAKE_CXXFLAGS_RTTI_ON = -frtti + QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti + QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads ++QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions + + QMAKE_INCDIR = + +@@ -42,41 +52,53 @@ QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $< + QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src + QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< + ++QMAKE_LFLAGS = -g + QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads +-QMAKE_LFLAGS_RELEASE = -Wl,-s ++QMAKE_LFLAGS_RELEASE = ++QMAKE_LFLAGS_DEBUG = + QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console + QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows + QMAKE_LFLAGS_DLL = -shared + QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections +-equals(QMAKE_HOST.os, Windows) { +- QMAKE_LINK_OBJECT_MAX = 10 +- QMAKE_LINK_OBJECT_SCRIPT = object_script +-} ++QMAKE_LINK_OBJECT_MAX = 10 ++QMAKE_LINK_OBJECT_SCRIPT = object_script + QMAKE_EXT_OBJ = .o + QMAKE_EXT_RES = _res.o + QMAKE_PREFIX_SHLIB = + QMAKE_EXTENSION_SHLIB = dll + QMAKE_PREFIX_STATICLIB = lib + QMAKE_EXTENSION_STATICLIB = a +-QMAKE_LIB_EXTENSIONS = a dll.a ++QMAKE_EXTENSION_IMPORTLIB = dll.a ++ ++PKG_CONFIG = $${CROSS_COMPILE}pkg-config ++QMAKE_PKG_CONFIG = $${CROSS_COMPILE}pkg-config + + QMAKE_LIBS = +-QMAKE_LIBS_GUI = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lws2_32 -lole32 -luuid -luser32 -ladvapi32 +-QMAKE_LIBS_NETWORK = -lws2_32 ++QMAKE_LIBS_CORE = -lz -lpcre2-16 -liconv -lversion -lnetapi32 -luserenv -lole32 -luuid -lwinmm -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 ++QMAKE_LIBS_GUI = -lopengl32 -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lws2_32 -lole32 -luuid -luser32 -ladvapi32 -ljpeg -lpng \ ++ $$system($${QMAKE_PKG_CONFIG} --libs harfbuzz) \ ++ $$system($${QMAKE_PKG_CONFIG} --libs freetype2) ++QMAKE_LIBS_GUI_STATIC = -lopengl32 -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lws2_32 -lole32 -luuid -luser32 -ladvapi32 -ljpeg -lpng \ ++ $$system($${QMAKE_PKG_CONFIG} --static --libs harfbuzz) \ ++ $$system($${QMAKE_PKG_CONFIG} --static --libs freetype2) ++QMAKE_LIBS_NETWORK = -lws2_32 -lcrypt32 -ldnsapi -liphlpapi ++QMAKE_LIBS_NETWORK_STATIC = $$system($${QMAKE_PKG_CONFIG} --static --libs openssl) -lws2_32 -lcrypt32 -ldnsapi -liphlpapi ++QMAKE_LIBS_DBUS = $$system($${QMAKE_PKG_CONFIG} --libs dbus-1) ++QMAKE_LIBS_DBUS_STATIC = $$system($${QMAKE_PKG_CONFIG} --static --libs dbus-1) ++QMAKE_LIBS_WIDGETS_STATIC = -ldwmapi -luxtheme + QMAKE_LIBS_OPENGL = -lglu32 -lopengl32 -lgdi32 -luser32 +-QMAKE_LIBS_OPENGL_ES2 = -lgdi32 -luser32 +-QMAKE_LIBS_OPENGL_ES2_DEBUG = -lgdi32 -luser32 ++QMAKE_LIBS_OPENGL_ES2 = -l$${LIBEGL_NAME} -l$${LIBGLESV2_NAME} -ld3d9 -ldxguid -lgdi32 -luser32 ++QMAKE_LIBS_OPENGL_ES2_DEBUG = -l$${LIBEGL_NAME} -l$${LIBGLESV2_NAME} -ld3d9 -ldxguid -lgdi32 -luser32 + QMAKE_LIBS_COMPAT = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32 + QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqtmain + +-QMAKE_IDL = midl ++QMAKE_IDL = $${CROSS_COMPILE}widl + QMAKE_LIB = $${CROSS_COMPILE}ar -rc + QMAKE_RC = $${CROSS_COMPILE}windres ++QMAKE_DLLTOOL = $${CROSS_COMPILE}dlltool ++QMAKE_LRELEASE = $${CROSS_COMPILE}lrelease-qt5 + + QMAKE_STRIP = $${CROSS_COMPILE}strip + QMAKE_STRIPFLAGS_LIB += --strip-unneeded + QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy + QMAKE_NM = $${CROSS_COMPILE}nm -P +- +-include(angle.conf) +-include(windows-vulkan.conf) +diff --git a/mkspecs/win32-clang-g++/qmake.conf b/mkspecs/win32-clang-g++/qmake.conf +index 4630ec4602..4981a28736 100644 +--- a/mkspecs/win32-clang-g++/qmake.conf ++++ b/mkspecs/win32-clang-g++/qmake.conf +@@ -14,11 +14,11 @@ include(../common/g++-win32.conf) + QMAKE_COMPILER += clang llvm # clang pretends to be gcc + + QMAKE_CC = $${CROSS_COMPILE}clang +-QMAKE_CFLAGS += ++QMAKE_CFLAGS += -g -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -fno-keep-inline-dllexport $${CROSS_COMPILE_CFLAGS} + QMAKE_CFLAGS_WARN_ON += -Wextra -Wno-ignored-attributes + + QMAKE_CXX = $${CROSS_COMPILE}clang++ +-QMAKE_CXXFLAGS += ++QMAKE_CXXFLAGS += $${QMAKE_CFLAGS} + QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON + + QMAKE_LINK = $${CROSS_COMPILE}clang++ +diff --git a/mkspecs/win32-g++/qmake.conf b/mkspecs/win32-g++/qmake.conf +index ed131c6823..b77d86cd6b 100644 +--- a/mkspecs/win32-g++/qmake.conf ++++ b/mkspecs/win32-g++/qmake.conf +@@ -12,11 +12,11 @@ include(../common/g++-win32.conf) + # modifications to g++-win32.conf + + QMAKE_CC = $${CROSS_COMPILE}gcc +-QMAKE_CFLAGS += -fno-keep-inline-dllexport ++QMAKE_CFLAGS += -g -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -fno-keep-inline-dllexport $${CROSS_COMPILE_CFLAGS} + QMAKE_CFLAGS_WARN_ON += -Wextra + + QMAKE_CXX = $${CROSS_COMPILE}g++ +-QMAKE_CXXFLAGS += -fno-keep-inline-dllexport ++QMAKE_CXXFLAGS += $${QMAKE_CFLAGS} + QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON + + QMAKE_LINK = $${CROSS_COMPILE}g++ +-- +2.17.0 + |