[vlc-commits] contrib: qt: pass compiler flags directly to the mkspec file
Pierre Lamot
git at videolan.org
Mon Sep 21 10:23:38 CEST 2020
vlc | branch: master | Pierre Lamot <pierre at videolabs.io> | Wed Aug 19 12:02:51 2020 +0200| [8797b88121e000a8bef7cd25c51f4f25dfcf4ba1] | committer: Pierre Lamot
contrib: qt: pass compiler flags directly to the mkspec file
the -I flags passed to Qt configure script is applied to both target and host
compilation.
This may cause issues to compile host tools as the headers of the target may
be incompatible with the host (ie: pthread header)
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=8797b88121e000a8bef7cd25c51f4f25dfcf4ba1
---
...pass-user-defined-compilation-flags-to-qt.patch | 53 ++++++++++++++++++++++
contrib/src/qt/rules.mak | 6 ++-
2 files changed, 58 insertions(+), 1 deletion(-)
diff --git a/contrib/src/qt/0001-allow-to-pass-user-defined-compilation-flags-to-qt.patch b/contrib/src/qt/0001-allow-to-pass-user-defined-compilation-flags-to-qt.patch
new file mode 100644
index 0000000000..71e707daae
--- /dev/null
+++ b/contrib/src/qt/0001-allow-to-pass-user-defined-compilation-flags-to-qt.patch
@@ -0,0 +1,53 @@
+From 691cced4d252d3b76dce02963c18ca85d125bf09 Mon Sep 17 00:00:00 2001
+From: Pierre Lamot <pierre at videolabs.io>
+Date: Tue, 18 Aug 2020 16:06:06 +0200
+Subject: [PATCH] allow to pass user defined compilation flags to qt
+
+---
+ mkspecs/darwin-g++/qmake.conf | 4 ++++
+ mkspecs/win32-clang-g++/qmake.conf | 4 ++++
+ mkspecs/win32-g++/qmake.conf | 4 ++++
+ 3 files changed, 12 insertions(+)
+
+diff --git a/mkspecs/darwin-g++/qmake.conf b/mkspecs/darwin-g++/qmake.conf
+index 85955f7..8602b78 100644
+--- a/mkspecs/darwin-g++/qmake.conf
++++ b/mkspecs/darwin-g++/qmake.conf
+@@ -86,4 +86,8 @@ 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
+
++QMAKE_CFLAGS += $${VLC_EXTRA_CFLAGS}
++QMAKE_CXXFLAGS += $${VLC_EXTRA_CXXFLAGS}
++QMAKE_LDFLAGS += $${VLC_EXTRA_LDFLAGS}
++
+ load(qt_config)
+diff --git a/mkspecs/win32-clang-g++/qmake.conf b/mkspecs/win32-clang-g++/qmake.conf
+index 4630ec4..149f779 100644
+--- a/mkspecs/win32-clang-g++/qmake.conf
++++ b/mkspecs/win32-clang-g++/qmake.conf
+@@ -24,4 +24,8 @@ QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
+ QMAKE_LINK = $${CROSS_COMPILE}clang++
+ QMAKE_LINK_C = $${CROSS_COMPILE}clang
+
++QMAKE_CFLAGS += $${VLC_EXTRA_CFLAGS}
++QMAKE_CXXFLAGS += $${VLC_EXTRA_CXXFLAGS}
++QMAKE_LDFLAGS += $${VLC_EXTRA_LDFLAGS}
++
+ load(qt_config)
+diff --git a/mkspecs/win32-g++/qmake.conf b/mkspecs/win32-g++/qmake.conf
+index 5e99233..b22cbce 100644
+--- a/mkspecs/win32-g++/qmake.conf
++++ b/mkspecs/win32-g++/qmake.conf
+@@ -26,4 +26,8 @@ QMAKE_CFLAGS_LTCG = -flto
+ QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
+ QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
+
++QMAKE_CFLAGS += $${VLC_EXTRA_CFLAGS}
++QMAKE_CXXFLAGS += $${VLC_EXTRA_CXXFLAGS}
++QMAKE_LDFLAGS += $${VLC_EXTRA_LDFLAGS}
++
+ load(qt_config)
+--
+2.25.1
+
diff --git a/contrib/src/qt/rules.mak b/contrib/src/qt/rules.mak
index 1eb09d87ae..901f6f6ce6 100644
--- a/contrib/src/qt/rules.mak
+++ b/contrib/src/qt/rules.mak
@@ -28,6 +28,7 @@ $(TARBALLS)/qtbase-everywhere-src-$(QT_VERSION_FULL).tar.xz:
qt: qtbase-everywhere-src-$(QT_VERSION_FULL).tar.xz .sum-qt
$(UNPACK)
+ $(APPLY) $(SRC)/qt/0001-allow-to-pass-user-defined-compilation-flags-to-qt.patch
ifdef HAVE_WIN32
$(APPLY) $(SRC)/qt/0001-Windows-QPA-prefer-lower-value-when-rounding-fractio.patch
$(APPLY) $(SRC)/qt/0002-Windows-QPA-Disable-systray-notification-sounds.patch
@@ -81,6 +82,9 @@ endif
endif
+QT_PLATFORM += -device-option VLC_EXTRA_CFLAGS="-isystem $(PREFIX)/include" \
+ -device-option VLC_EXTRA_CXXFLAGS="-isystem $(PREFIX)/include"
+
QT_CONFIG := -static -no-shared -opensource -confirm-license -no-pkg-config \
-no-sql-sqlite -no-gif -qt-libjpeg -no-openssl $(QT_OPENGL) -no-dbus \
-no-vulkan -no-sql-odbc -no-pch \
@@ -102,7 +106,7 @@ ENV_VARS := $(HOSTVARS) DXSDK_DIR=$(PREFIX)/bin
.qt: qt
# Prevent all Qt contribs from generating and installing libtool .la files
cd $< && sed -i "/CONFIG/ s/ create_libtool/ -create_libtool/g" mkspecs/features/qt_module.prf
- +cd $< && $(ENV_VARS) ./configure $(QT_PLATFORM) $(QT_CONFIG) -prefix $(PREFIX) -I $(PREFIX)/include
+ +cd $< && $(ENV_VARS) ./configure $(QT_PLATFORM) $(QT_CONFIG) -prefix $(PREFIX)
# Make && Install libraries
cd $< && $(ENV_VARS) $(MAKE)
cd $< && $(MAKE) -C src sub-corelib-install_subtargets sub-gui-install_subtargets sub-widgets-install_subtargets sub-platformsupport-install_subtargets sub-zlib-install_subtargets sub-bootstrap-install_subtargets sub-network-install_subtargets sub-testlib-install_subtargets
More information about the vlc-commits
mailing list