aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-qt
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2017-09-03 11:10:34 -0700
committerMartin Jansa <Martin.Jansa@gmail.com>2017-09-05 14:56:02 +0200
commit90d4a41621886ae5e738ec8a0b693e88b25d8267 (patch)
treee130f4c0a0455a302ff96e954217e869271c991f /recipes-qt
parent268429962056a12e0e899612dafb433c257af5cf (diff)
qtbase: Add OE clang specific mkspecs
We can not piggy back clang anymore on existing OE mkspecs since starting 5.9 the configure is asking compiler for include paths and it needs to know if platform is clang-linux or g++-linux Fixes: ERROR: failed to parse default search paths from compiler output Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'recipes-qt')
-rw-r--r--recipes-qt/qt5/qtbase-native_git.bb6
-rw-r--r--recipes-qt/qt5/qtbase/0010-Add-OE-specific-specs-for-clang-compiler.patch72
-rw-r--r--recipes-qt/qt5/qtbase_git.bb6
3 files changed, 82 insertions, 2 deletions
diff --git a/recipes-qt/qt5/qtbase-native_git.bb b/recipes-qt/qt5/qtbase-native_git.bb
index 54a0b785..72b977d3 100644
--- a/recipes-qt/qt5/qtbase-native_git.bb
+++ b/recipes-qt/qt5/qtbase-native_git.bb
@@ -38,10 +38,14 @@ SRC_URI += "\
# 5.9.meta-qt5-native.2
SRC_URI += " \
file://0009-Always-build-uic.patch \
+ file://0010-Add-OE-specific-specs-for-clang-compiler.patch \
"
CLEANBROKEN = "1"
+XPLATFORM_toolchain-clang = "linux-oe-clang"
+XPLATFORM ?= "linux-oe-g++"
+
PACKAGECONFIG_CONFARGS = " \
-sysroot ${STAGING_DIR_NATIVE} \
-no-gcc-sysroot \
@@ -79,7 +83,7 @@ PACKAGECONFIG_CONFARGS = " \
-nomake examples \
-nomake tests \
-no-rpath \
- -platform linux-oe-g++ \
+ -platform ${XPLATFORM} \
"
# for qtbase configuration we need default settings
diff --git a/recipes-qt/qt5/qtbase/0010-Add-OE-specific-specs-for-clang-compiler.patch b/recipes-qt/qt5/qtbase/0010-Add-OE-specific-specs-for-clang-compiler.patch
new file mode 100644
index 00000000..b019f67c
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/0010-Add-OE-specific-specs-for-clang-compiler.patch
@@ -0,0 +1,72 @@
+From 3a46fb7b47d19c5261e1590f8d70fe41443def64 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 3 Sep 2017 09:11:44 -0700
+Subject: [PATCH] Add OE specific specs for clang compiler
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ mkspecs/linux-oe-clang/qmake.conf | 43 ++++++++++++++++++++++++++++++++++
+ mkspecs/linux-oe-clang/qplatformdefs.h | 1 +
+ 2 files changed, 44 insertions(+)
+ create mode 100644 mkspecs/linux-oe-clang/qmake.conf
+ create mode 100644 mkspecs/linux-oe-clang/qplatformdefs.h
+
+diff --git a/mkspecs/linux-oe-clang/qmake.conf b/mkspecs/linux-oe-clang/qmake.conf
+new file mode 100644
+index 0000000000..ffc9f051db
+--- /dev/null
++++ b/mkspecs/linux-oe-clang/qmake.conf
+@@ -0,0 +1,43 @@
++#
++# qmake configuration for linux-g++ with modifications for building with OpenEmbedded
++#
++
++MAKEFILE_GENERATOR = UNIX
++CONFIG += incremental
++QMAKE_INCREMENTAL_STYLE = sublib
++
++include(../common/linux.conf)
++
++# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar and strip
++QMAKE_AR = $$(OE_QMAKE_AR) cqs
++QMAKE_STRIP = $$(OE_QMAKE_STRIP)
++QMAKE_WAYLAND_SCANNER = $$(OE_QMAKE_WAYLAND_SCANNER)
++
++include(../common/gcc-base-unix.conf)
++
++# *FLAGS from gcc-base.conf
++QMAKE_CFLAGS += $$(OE_QMAKE_CFLAGS)
++QMAKE_CXXFLAGS += $$(OE_QMAKE_CXXFLAGS)
++QMAKE_LFLAGS += $$(OE_QMAKE_LDFLAGS)
++
++include(../common/clang.conf)
++
++# tc settings from g++-base.conf
++QMAKE_COMPILER = $$(OE_QMAKE_COMPILER) clang
++QMAKE_CC = $$(OE_QMAKE_CC)
++QMAKE_CXX = $$(OE_QMAKE_CXX)
++
++QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$(OE_QMAKE_CFLAGS)
++
++QMAKE_LINK = $$(OE_QMAKE_LINK)
++QMAKE_LINK_SHLIB = $$(OE_QMAKE_LINK)
++QMAKE_LINK_C = $$(OE_QMAKE_LINK)
++QMAKE_LINK_C_SHLIB = $$(OE_QMAKE_LINK)
++
++# for the SDK
++isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $$(OE_QMAKE_QT_CONFIG)
++
++include(../oe-device-extra.pri)
++
++load(device_config)
++load(qt_config)
+diff --git a/mkspecs/linux-oe-clang/qplatformdefs.h b/mkspecs/linux-oe-clang/qplatformdefs.h
+new file mode 100644
+index 0000000000..880c927b21
+--- /dev/null
++++ b/mkspecs/linux-oe-clang/qplatformdefs.h
+@@ -0,0 +1 @@
++#include "../linux-clang/qplatformdefs.h"
+--
+2.14.1
+
diff --git a/recipes-qt/qt5/qtbase_git.bb b/recipes-qt/qt5/qtbase_git.bb
index aaa59f33..25d99e83 100644
--- a/recipes-qt/qt5/qtbase_git.bb
+++ b/recipes-qt/qt5/qtbase_git.bb
@@ -26,6 +26,7 @@ SRC_URI += "\
file://0006-Pretend-Qt5-wasn-t-found-if-OE_QMAKE_PATH_EXTERNAL_H.patch \
file://0007-Delete-qlonglong-and-qulonglong.patch \
file://0008-Replace-pthread_yield-with-sched_yield.patch \
+ file://0010-Add-OE-specific-specs-for-clang-compiler.patch \
file://run-ptest \
"
@@ -160,6 +161,9 @@ QT_CONFIG_FLAGS += " \
# since we cannot set empty set filename to a not existent file
deltask generate_qt_config_file
+XPLATFORM_toolchain-clang = "linux-oe-clang"
+XPLATFORM ?= "linux-oe-g++"
+
do_configure() {
# Avoid qmake error "Cannot read [...]/usr/lib/qt5/mkspecs/oe-device-extra.pri: No such file or directory" during configuration
touch ${S}/mkspecs/oe-device-extra.pri
@@ -188,7 +192,7 @@ do_configure() {
-external-hostbindir ${OE_QMAKE_PATH_EXTERNAL_HOST_BINS} \
-hostdatadir ${OE_QMAKE_PATH_HOST_DATA} \
-platform ${OE_QMAKE_PLATFORM_NATIVE} \
- -xplatform linux-oe-g++ \
+ -xplatform ${XPLATFORM} \
${QT_CONFIG_FLAGS}
}