mirror of
https://git.busybox.net/buildroot.git
synced 2024-12-15 08:13:34 +08:00
qt5base: use -device-option to set mkspec variables
Simplify our custom qmake.conf: - Include linux_device_{pre,post}.conf to inherit common device configuration. - Do not add $(STAGING_DIR)/usr/include to include path. It is redundant. In additon to the simplification of code, this change is a preparation to solve problems occurring when QMAKE_CXX is prepended with ccache path. Upstream patch is needed by configure to parse device options correctly. Another upstream patch is needed to remove ARM specific parts from linux_device_post.conf. Signed-off-by: Fatih Aşıcı <fatih.asici@gmail.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
571fd2ce74
commit
86db2a76e2
@ -14,50 +14,17 @@ Index: b/mkspecs/devices/linux-buildroot-g++/qmake.conf
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/mkspecs/devices/linux-buildroot-g++/qmake.conf
|
+++ b/mkspecs/devices/linux-buildroot-g++/qmake.conf
|
||||||
@@ -0,0 +1,44 @@
|
@@ -0,0 +1,11 @@
|
||||||
+MAKEFILE_GENERATOR = UNIX
|
+include(../common/linux_device_pre.conf)
|
||||||
+CONFIG += incremental gdb_dwarf_index
|
|
||||||
+QMAKE_INCREMENTAL_STYLE = sublib
|
|
||||||
+
|
|
||||||
+include(../../common/linux.conf)
|
|
||||||
+include(../../common/gcc-base-unix.conf)
|
|
||||||
+include(../../common/g++-unix.conf)
|
|
||||||
+
|
|
||||||
+load(device_config)
|
|
||||||
+
|
|
||||||
+QT_QPA_DEFAULT_PLATFORM = eglfs
|
|
||||||
+
|
|
||||||
+BUILDROOT_CROSS_COMPILE =
|
|
||||||
+BUILDROOT_COMPILER_CFLAGS =
|
|
||||||
+BUILDROOT_COMPILER_CXXFLAGS =
|
|
||||||
+BUILDROOT_INCLUDE_PATH =
|
|
||||||
+
|
|
||||||
+# modifications to g++.conf
|
|
||||||
+QMAKE_CC = $${BUILDROOT_CROSS_COMPILE}gcc
|
|
||||||
+QMAKE_CXX = $${BUILDROOT_CROSS_COMPILE}g++
|
|
||||||
+QMAKE_LINK = $${QMAKE_CXX}
|
|
||||||
+QMAKE_LINK_SHLIB = $${QMAKE_CXX}
|
|
||||||
+
|
|
||||||
+# modifications to linux.conf
|
|
||||||
+QMAKE_AR = $${BUILDROOT_CROSS_COMPILE}ar cqs
|
|
||||||
+QMAKE_OBJCOPY = $${BUILDROOT_CROSS_COMPILE}objcopy
|
|
||||||
+QMAKE_NM = $${BUILDROOT_CROSS_COMPILE}nm -P
|
|
||||||
+QMAKE_STRIP = $${BUILDROOT_CROSS_COMPILE}strip
|
|
||||||
+
|
+
|
||||||
+#modifications to gcc-base.conf
|
+#modifications to gcc-base.conf
|
||||||
+QMAKE_CFLAGS += $${BUILDROOT_COMPILER_CFLAGS}
|
+QMAKE_CFLAGS += $${BUILDROOT_COMPILER_CFLAGS}
|
||||||
+QMAKE_CXXFLAGS += $${BUILDROOT_COMPILER_CXXFLAGS}
|
+QMAKE_CXXFLAGS += $${BUILDROOT_COMPILER_CXXFLAGS}
|
||||||
+QMAKE_CXXFLAGS_RELEASE += -O3
|
+QMAKE_CXXFLAGS_RELEASE += -O3
|
||||||
+INCLUDEPATH += $${BUILDROOT_INCLUDE_PATH}
|
|
||||||
+
|
+
|
||||||
+QMAKE_LIBS += -lrt -lpthread -ldl
|
+QMAKE_LIBS += -lrt -lpthread -ldl
|
||||||
+
|
+
|
||||||
+# device specific glue code
|
+include(../common/linux_device_post.conf)
|
||||||
+EGLFS_PLATFORM_HOOKS_SOURCES =
|
|
||||||
+
|
|
||||||
+# Sanity check
|
|
||||||
+deviceSanityCheckCompiler()
|
|
||||||
+
|
|
||||||
+load(qt_config)
|
+load(qt_config)
|
||||||
Index: b/mkspecs/devices/linux-buildroot-g++/qplatformdefs.h
|
Index: b/mkspecs/devices/linux-buildroot-g++/qplatformdefs.h
|
||||||
===================================================================
|
===================================================================
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
From 4723f3fd04edf1aad6750ca91fd4648216d8b408 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Fatih=20A=C5=9F=C4=B1c=C4=B1?= <fatih.asici@gmail.com>
|
||||||
|
Date: Sat, 21 Sep 2013 00:14:39 +0300
|
||||||
|
Subject: [PATCH] configure: Parse -device-option value correctly
|
||||||
|
|
||||||
|
The regular expression does not parse correctly when a device option value
|
||||||
|
contains the character '=' (e.g. QMAKE_CFLAGS="-D_FILE_OFFSET_BITS=64").
|
||||||
|
|
||||||
|
In order to break string at the first equal sign and to simplify code,
|
||||||
|
use "cut" command as in other places in configure script.
|
||||||
|
|
||||||
|
Task-number: QTBUG-33584
|
||||||
|
Change-Id: I05b474d2ba6bff84c1e40d00475963bab36d94b6
|
||||||
|
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
|
||||||
|
Signed-off-by: Fatih Aşıcı <fatih.asici@gmail.com>
|
||||||
|
---
|
||||||
|
configure | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/configure b/configure
|
||||||
|
index 64568dd..388899e 100755
|
||||||
|
--- a/configure
|
||||||
|
+++ b/configure
|
||||||
|
@@ -1609,8 +1609,8 @@ while [ "$#" -gt 0 ]; do
|
||||||
|
[ "$XPLATFORM" = "undefined" ] && exit 101
|
||||||
|
;;
|
||||||
|
device-option)
|
||||||
|
- DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
|
||||||
|
- DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
|
||||||
|
+ DEV_VAR=`echo $VAL | cut -d '=' -f 1`
|
||||||
|
+ DEV_VAL=`echo $VAL | cut -d '=' -f 2-`
|
||||||
|
DeviceVar set $DEV_VAR "$DEV_VAL"
|
||||||
|
;;
|
||||||
|
qpa)
|
||||||
|
--
|
||||||
|
1.8.4.rc3
|
||||||
|
|
@ -0,0 +1,107 @@
|
|||||||
|
From f2a611ce6cb0f86d9331641a804de6a507900db7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tomasz Olszak <olszak.tomasz@gmail.com>
|
||||||
|
Date: Thu, 18 Jul 2013 20:45:47 +0000
|
||||||
|
Subject: [PATCH] Fixed mkspecs/devices/linux_device_post.conf for non-arm
|
||||||
|
platforms.
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Now arm specific -mfloat-abi flag is added to compiler flags
|
||||||
|
only for arm architecture in linux_arm_device_post.conf.
|
||||||
|
|
||||||
|
Change-Id: Ie77ac6e0717d9d1fd9c14e1d6a26e86f08ab418c
|
||||||
|
Reviewed-by: Jarosław Staniek <staniek@kde.org>
|
||||||
|
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
|
||||||
|
Signed-off-by: Fatih Aşıcı <fatih.asici@gmail.com>
|
||||||
|
---
|
||||||
|
mkspecs/devices/common/linux_arm_device_post.conf | 7 +++++++
|
||||||
|
mkspecs/devices/common/linux_device_post.conf | 6 ------
|
||||||
|
mkspecs/devices/linux-imx53qsb-g++/qmake.conf | 2 +-
|
||||||
|
mkspecs/devices/linux-imx6-g++/qmake.conf | 2 +-
|
||||||
|
mkspecs/devices/linux-rasp-pi-g++/qmake.conf | 2 +-
|
||||||
|
mkspecs/devices/linux-tegra2-g++/qmake.conf | 2 +-
|
||||||
|
6 files changed, 11 insertions(+), 10 deletions(-)
|
||||||
|
create mode 100644 mkspecs/devices/common/linux_arm_device_post.conf
|
||||||
|
|
||||||
|
diff --git a/mkspecs/devices/common/linux_arm_device_post.conf b/mkspecs/devices/common/linux_arm_device_post.conf
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..7ce4759
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/mkspecs/devices/common/linux_arm_device_post.conf
|
||||||
|
@@ -0,0 +1,7 @@
|
||||||
|
+contains(DISTRO_OPTS, hard-float) {
|
||||||
|
+ COMPILER_FLAGS += -mfloat-abi=hard
|
||||||
|
+} else {
|
||||||
|
+ COMPILER_FLAGS += -mfloat-abi=softfp
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+include(linux_device_post.conf)
|
||||||
|
diff --git a/mkspecs/devices/common/linux_device_post.conf b/mkspecs/devices/common/linux_device_post.conf
|
||||||
|
index f8dbf76..548e75a 100644
|
||||||
|
--- a/mkspecs/devices/common/linux_device_post.conf
|
||||||
|
+++ b/mkspecs/devices/common/linux_device_post.conf
|
||||||
|
@@ -3,12 +3,6 @@ contains(DISTRO_OPTS, deb-multi-arch) {
|
||||||
|
-Wl,-rpath-link,$$[QT_SYSROOT]/lib/$${GCC_MACHINE_DUMP}
|
||||||
|
}
|
||||||
|
|
||||||
|
-contains(DISTRO_OPTS, hard-float) {
|
||||||
|
- COMPILER_FLAGS += -mfloat-abi=hard
|
||||||
|
-} else {
|
||||||
|
- COMPILER_FLAGS += -mfloat-abi=softfp
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
QMAKE_CFLAGS += $$COMPILER_FLAGS
|
||||||
|
QMAKE_CXXFLAGS += $$COMPILER_FLAGS
|
||||||
|
|
||||||
|
diff --git a/mkspecs/devices/linux-imx53qsb-g++/qmake.conf b/mkspecs/devices/linux-imx53qsb-g++/qmake.conf
|
||||||
|
index 0a5ed89..3a9766c 100644
|
||||||
|
--- a/mkspecs/devices/linux-imx53qsb-g++/qmake.conf
|
||||||
|
+++ b/mkspecs/devices/linux-imx53qsb-g++/qmake.conf
|
||||||
|
@@ -32,6 +32,6 @@ QMAKE_CXXFLAGS_RELEASE += $$IMX5_CFLAGS_RELEASE
|
||||||
|
QMAKE_CFLAGS_DEBUG += $$IMX5_CFLAGS
|
||||||
|
QMAKE_CXXFLAGS_DEBUG += $$IMX5_CFLAGS
|
||||||
|
|
||||||
|
-include(../common/linux_device_post.conf)
|
||||||
|
+include(../common/linux_arm_device_post.conf)
|
||||||
|
|
||||||
|
load(qt_config)
|
||||||
|
diff --git a/mkspecs/devices/linux-imx6-g++/qmake.conf b/mkspecs/devices/linux-imx6-g++/qmake.conf
|
||||||
|
index 20f6d11..2b8dbf6 100644
|
||||||
|
--- a/mkspecs/devices/linux-imx6-g++/qmake.conf
|
||||||
|
+++ b/mkspecs/devices/linux-imx6-g++/qmake.conf
|
||||||
|
@@ -34,6 +34,6 @@ QMAKE_CXXFLAGS_RELEASE += $$IMX6_CFLAGS_RELEASE
|
||||||
|
QMAKE_CFLAGS_DEBUG += $$IMX6_CFLAGS
|
||||||
|
QMAKE_CXXFLAGS_DEBUG += $$IMX6_CFLAGS
|
||||||
|
|
||||||
|
-include(../common/linux_device_post.conf)
|
||||||
|
+include(../common/linux_arm_device_post.conf)
|
||||||
|
|
||||||
|
load(qt_config)
|
||||||
|
diff --git a/mkspecs/devices/linux-rasp-pi-g++/qmake.conf b/mkspecs/devices/linux-rasp-pi-g++/qmake.conf
|
||||||
|
index d6fea47..5f923ad 100644
|
||||||
|
--- a/mkspecs/devices/linux-rasp-pi-g++/qmake.conf
|
||||||
|
+++ b/mkspecs/devices/linux-rasp-pi-g++/qmake.conf
|
||||||
|
@@ -42,6 +42,6 @@ QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
|
||||||
|
EGLFS_PLATFORM_HOOKS_SOURCES = $$PWD/qeglfshooks_pi.cpp
|
||||||
|
EGLFS_PLATFORM_HOOKS_LIBS = -lbcm_host
|
||||||
|
|
||||||
|
-include(../common/linux_device_post.conf)
|
||||||
|
+include(../common/linux_arm_device_post.conf)
|
||||||
|
|
||||||
|
load(qt_config)
|
||||||
|
diff --git a/mkspecs/devices/linux-tegra2-g++/qmake.conf b/mkspecs/devices/linux-tegra2-g++/qmake.conf
|
||||||
|
index 1c7a8cc..320e1b8 100644
|
||||||
|
--- a/mkspecs/devices/linux-tegra2-g++/qmake.conf
|
||||||
|
+++ b/mkspecs/devices/linux-tegra2-g++/qmake.conf
|
||||||
|
@@ -26,6 +26,6 @@ TEGRA2_CFLAGS = -mtune=cortex-a9 -march=armv7-a -mhard-float -mfloat-a
|
||||||
|
QMAKE_CFLAGS += $$TEGRA2_CFLAGS
|
||||||
|
QMAKE_CXXFLAGS += $$TEGRA2_CFLAGS
|
||||||
|
|
||||||
|
-include(../common/linux_device_post.conf)
|
||||||
|
+include(../common/linux_arm_device_post.conf)
|
||||||
|
|
||||||
|
load(qt_config)
|
||||||
|
--
|
||||||
|
1.8.4.rc3
|
||||||
|
|
@ -152,21 +152,7 @@ QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_PRINTSUPPORT) += Qt5PrintSupport
|
|||||||
|
|
||||||
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_DBUS) += Qt5DBus
|
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_DBUS) += Qt5DBus
|
||||||
|
|
||||||
# Ideally, we could use -device-option to substitute variable values
|
|
||||||
# in our linux-buildroot-g++/qmake.config, but this mechanism doesn't
|
|
||||||
# nicely support variable values that contain spaces. So we use the
|
|
||||||
# good old sed solution here.
|
|
||||||
define QT5BASE_CONFIG_SET
|
|
||||||
$(SED) 's%^$(1).*%$(1) = $(2)%g' $(@D)/mkspecs/devices/linux-buildroot-g++/qmake.conf
|
|
||||||
endef
|
|
||||||
|
|
||||||
define QT5BASE_CONFIGURE_CMDS
|
define QT5BASE_CONFIGURE_CMDS
|
||||||
$(call QT5BASE_CONFIG_SET,BUILDROOT_CROSS_COMPILE,$(TARGET_CROSS))
|
|
||||||
$(call QT5BASE_CONFIG_SET,BUILDROOT_COMPILER_CFLAGS,$(TARGET_CFLAGS))
|
|
||||||
$(call QT5BASE_CONFIG_SET,BUILDROOT_COMPILER_CXXFLAGS,$(TARGET_CXXFLAGS))
|
|
||||||
$(call QT5BASE_CONFIG_SET,BUILDROOT_INCLUDE_PATH,$(STAGING_DIR)/usr/include)
|
|
||||||
$(call QT5BASE_CONFIG_SET,EGLFS_PLATFORM_HOOKS_SOURCES, \
|
|
||||||
$(QT5BASE_EGLFS_PLATFORM_HOOKS_SOURCES))
|
|
||||||
(cd $(@D); \
|
(cd $(@D); \
|
||||||
PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
|
PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
|
||||||
PKG_CONFIG_LIBDIR="$(STAGING_DIR)/usr/lib/pkgconfig" \
|
PKG_CONFIG_LIBDIR="$(STAGING_DIR)/usr/lib/pkgconfig" \
|
||||||
@ -181,6 +167,10 @@ define QT5BASE_CONFIGURE_CMDS
|
|||||||
-no-rpath \
|
-no-rpath \
|
||||||
-nomake examples -nomake tests \
|
-nomake examples -nomake tests \
|
||||||
-device buildroot \
|
-device buildroot \
|
||||||
|
-device-option CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||||
|
-device-option BUILDROOT_COMPILER_CFLAGS="$(TARGET_CFLAGS)" \
|
||||||
|
-device-option BUILDROOT_COMPILER_CXXFLAGS="$(TARGET_CXXFLAGS)" \
|
||||||
|
-device-option EGLFS_PLATFORM_HOOKS_SOURCES="$(QT5BASE_EGLFS_PLATFORM_HOOKS_SOURCES)" \
|
||||||
-no-c++11 \
|
-no-c++11 \
|
||||||
$(QT5BASE_CONFIGURE_OPTS) \
|
$(QT5BASE_CONFIGURE_OPTS) \
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user