aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2013-04-03 21:52:54 +0200
committerMartin Jansa <Martin.Jansa@gmail.com>2013-04-17 16:10:02 +0200
commitb78a292a584f084cc15715c3a68693b008ef6682 (patch)
tree8c6c649c586d57b615b08e3e59241002e0d6c52d
parentde250e3d0e437df09a8f23ad7fdb5fc39f17f7e8 (diff)
qtbase: replace g++.conf and linux.conf with qmake.conf
* g++.conf and linux.conf were outdated a lot, lacking new options like QMAKE_COMPILER causing a lot of warning like: Project WARNING: qmake spec does not announce the compiler family. Guessed gcc. * Instead of replacing whole common files, use custom qmake.conf which overwrites common setting after including it
-rw-r--r--classes/qmake5_base.bbclass1
-rw-r--r--recipes-qt/qt5/files/g++.conf56
-rw-r--r--recipes-qt/qt5/files/linux.conf74
-rw-r--r--recipes-qt/qt5/qt5-5.0.0+git.inc2
-rw-r--r--recipes-qt/qt5/qt5-5.0.1.inc2
-rw-r--r--recipes-qt/qt5/qt5.inc14
-rw-r--r--recipes-qt/qt5/qtbase-native.inc20
-rw-r--r--recipes-qt/qt5/qtbase.inc11
-rw-r--r--recipes-qt/qt5/qtbase/qmake.conf39
9 files changed, 67 insertions, 152 deletions
diff --git a/classes/qmake5_base.bbclass b/classes/qmake5_base.bbclass
index ba13242c..ed25e739 100644
--- a/classes/qmake5_base.bbclass
+++ b/classes/qmake5_base.bbclass
@@ -21,6 +21,7 @@ export OE_QMAKE_QMAKE = "${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/qmake"
export OE_QMAKE_UIC = "${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/uic"
export OE_QMAKE_MOC = "${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/moc"
export OE_QMAKE_RCC = "${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/rcc"
+export OE_QMAKE_COMPILER = "${CC}"
export OE_QMAKE_CC = "${CC}"
export OE_QMAKE_CFLAGS = "${CFLAGS}"
export OE_QMAKE_CXX = "${CXX}"
diff --git a/recipes-qt/qt5/files/g++.conf b/recipes-qt/qt5/files/g++.conf
deleted file mode 100644
index 14cd3e1d..00000000
--- a/recipes-qt/qt5/files/g++.conf
+++ /dev/null
@@ -1,56 +0,0 @@
-#
-# qmake configuration for common gcc
-#
-
-QMAKE_CC = $(OE_QMAKE_CC)
-QMAKE_CFLAGS += -pipe $(OE_QMAKE_CFLAGS)
-QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $(OE_QMAKE_CFLAGS)
-QMAKE_CFLAGS_DEPS += -M
-QMAKE_CFLAGS_WARN_ON += -Wall -W
-QMAKE_CFLAGS_WARN_OFF += -w
-QMAKE_CFLAGS_RELEASE +=
-QMAKE_CFLAGS_DEBUG += -g
-QMAKE_CFLAGS_SHLIB += -fPIC
-QMAKE_CFLAGS_STATIC_LIB += -fPIC
-QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses
-QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden
-QMAKE_CFLAGS_PRECOMPILE += -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
-QMAKE_CFLAGS_USE_PRECOMPILE += -include ${QMAKE_PCH_OUTPUT_BASE}
-
-QMAKE_CXX = $(OE_QMAKE_CXX)
-QMAKE_CXXFLAGS += $$QMAKE_CFLAGS $$QMAKE_CXXFLAGS $(OE_QMAKE_CXXFLAGS)
-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_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
-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 -fvisibility-inlines-hidden
-QMAKE_CXXFLAGS_PRECOMPILE += -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
-QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
-
-QMAKE_LINK = $(OE_QMAKE_LINK)
-QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK)
-QMAKE_LINK_C = $(OE_QMAKE_LINK)
-QMAKE_LINK_C_SHLIB = $(OE_QMAKE_LINK)
-QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS)
-QMAKE_LFLAGS_RELEASE +=
-QMAKE_LFLAGS_DEBUG +=
-QMAKE_LFLAGS_APP +=
-QMAKE_LFLAGS_NOUNDEF += -Wl,--no-undefined
-QMAKE_LFLAGS_RPATH = -Wl,-rpath-link,
-
-QMAKE_PCH_OUTPUT_EXT = .gch
-
-# -Bsymbolic-functions (ld) support
-QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions
-QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list,
-
-# some linking helper...
-CONFIG += rpath_libdirs
-
-# for the SDK
-isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $(OE_QMAKE_QT_CONFIG)
diff --git a/recipes-qt/qt5/files/linux.conf b/recipes-qt/qt5/files/linux.conf
deleted file mode 100644
index 08e84f23..00000000
--- a/recipes-qt/qt5/files/linux.conf
+++ /dev/null
@@ -1,74 +0,0 @@
-#
-# qmake configuration for common linux
-#
-
-QMAKE_CFLAGS_THREAD += -D_REENTRANT
-QMAKE_CXXFLAGS_THREAD += $$QMAKE_CFLAGS_THREAD
-
-QMAKE_INCDIR =
-QMAKE_LIBDIR =
-QMAKE_INCDIR_X11 =
-QMAKE_LIBDIR_X11 =
-QMAKE_INCDIR_QT = $(OE_QMAKE_INCDIR_QT)
-QMAKE_LIBDIR_QT = $(OE_QMAKE_LIBDIR_QT)
-QMAKE_INCDIR_OPENGL =
-QMAKE_LIBDIR_OPENGL =
-QMAKE_INCDIR_OPENGL_ES1 = $$QMAKE_INCDIR_OPENGL
-QMAKE_LIBDIR_OPENGL_ES1 = $$QMAKE_LIBDIR_OPENGL
-QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL
-QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL
-QMAKE_INCDIR_EGL =
-QMAKE_LIBDIR_EGL =
-QMAKE_INCDIR_OPENVG =
-QMAKE_LIBDIR_OPENVG =
-
-QMAKE_LIBS =
-QMAKE_LIBS_DYNLOAD = -ldl
-QMAKE_LIBS_X11 = $(OE_QMAKE_LIBS_X11)
-QMAKE_LIBS_X11SM = $(OE_QMAKE_LIBS_X11SM)
-QMAKE_LIBS_NIS = -lnsl
-QMAKE_LIBS_EGL = -lEGL
-QMAKE_LIBS_OPENGL = -lGL
-QMAKE_LIBS_OPENGL_QT = -lGL
-QMAKE_LIBS_OPENGL_ES1 = -lGLES_CM
-QMAKE_LIBS_OPENGL_ES2 = -lGLESv2
-QMAKE_LIBS_OPENVG = -lOpenVG
-QMAKE_LIBS_THREAD = -lpthread
-QMAKE_LIBS_LIBUDEV = -ludev
-
-QMAKE_CFLAGS_WAYLAND =
-QMAKE_INCDIR_WAYLAND =
-QMAKE_LIBS_WAYLAND_CLIENT = -lwayland-client
-QMAKE_LIBS_WAYLAND_SERVER = -lwayland-server
-QMAKE_LIBDIR_WAYLAND =
-QMAKE_DEFINES_WAYLAND =
-QMAKE_WAYLAND_SCANNER = wayland-scanner
-
-QMAKE_MOC = $(OE_QMAKE_MOC)
-QMAKE_UIC = $(OE_QMAKE_UIC)
-QMAKE_UIC3 = $(OE_QMAKE_UIC3)
-QMAKE_RCC = $(OE_QMAKE_RCC)
-QMAKE_QDBUSCPP2XML = $(OE_QMAKE_QDBUSCPP2XML)
-QMAKE_QDBUSXML2CPP = $(OE_QMAKE_QDBUSXML2CPP)
-
-QMAKE_AR = $(OE_QMAKE_AR) cqs
-QMAKE_OBJCOPY = objcopy
-QMAKE_RANLIB =
-
-QMAKE_TAR = tar -cf
-QMAKE_GZIP = gzip -9f
-
-QMAKE_COPY = cp -f
-QMAKE_COPY_FILE = $(COPY)
-QMAKE_COPY_DIR = $(COPY) -r
-QMAKE_MOVE = mv -f
-QMAKE_DEL_FILE = rm -f
-QMAKE_DEL_DIR = rmdir
-QMAKE_STRIP = $(OE_QMAKE_STRIP)
-QMAKE_STRIPFLAGS_LIB += --strip-unneeded
-QMAKE_CHK_DIR_EXISTS = test -d
-QMAKE_MKDIR = mkdir -p
-QMAKE_INSTALL_FILE = install -m 644 -p
-QMAKE_INSTALL_PROGRAM = install -m 755 -p
-
-include(unix.conf)
diff --git a/recipes-qt/qt5/qt5-5.0.0+git.inc b/recipes-qt/qt5/qt5-5.0.0+git.inc
index 9f2e2f31..a1ac0e76 100644
--- a/recipes-qt/qt5/qt5-5.0.0+git.inc
+++ b/recipes-qt/qt5/qt5-5.0.0+git.inc
@@ -3,8 +3,6 @@
# each module needs to define valid SRCREV
SRC_URI += " \
git://qt.gitorious.org/qt/${QT_MODULE}.git;protocol=git;branch=stable \
- file://linux.conf \
- file://g++.conf \
"
S = "${WORKDIR}/git"
diff --git a/recipes-qt/qt5/qt5-5.0.1.inc b/recipes-qt/qt5/qt5-5.0.1.inc
index 4bdfaeed..dcfc7d11 100644
--- a/recipes-qt/qt5/qt5-5.0.1.inc
+++ b/recipes-qt/qt5/qt5-5.0.1.inc
@@ -4,8 +4,6 @@ QT_VERSION ?= "${PV}"
SRC_URI += " \
http://releases.qt-project.org/qt5/${QT_VERSION}/submodules_tar/${QT_MODULE}-opensource-src-${QT_VERSION}.tar.xz \
- file://linux.conf \
- file://g++.conf \
"
S = "${WORKDIR}/${QT_MODULE}-opensource-src-${QT_VERSION}"
diff --git a/recipes-qt/qt5/qt5.inc b/recipes-qt/qt5/qt5.inc
index 2a0ae591..b8d09fe3 100644
--- a/recipes-qt/qt5/qt5.inc
+++ b/recipes-qt/qt5/qt5.inc
@@ -56,21 +56,9 @@ QT_CONFIG_FLAGS += " \
"
do_configure() {
-# set_arch
+ set_arch
set_endian
- if [ ! -e bin/qmake ]; then
- ln -sf ${OE_QMAKE_QMAKE} bin/qmake
- fi
-
- if [ ! -e mkspecs/${TARGET_OS}-oe-g++ ]; then
- ln -sf linux-g++ mkspecs/${TARGET_OS}-oe-g++
- fi
-
- # replace common files with our version
- cp -f ${WORKDIR}/g++.conf mkspecs/common/g++-unix.conf
- cp -f ${WORKDIR}/linux.conf mkspecs/common/linux.conf
-
# Avoid problems with the linkers, since we want the linker to be g++
unset LD
}
diff --git a/recipes-qt/qt5/qtbase-native.inc b/recipes-qt/qt5/qtbase-native.inc
index d9cc4870..0f196e4e 100644
--- a/recipes-qt/qt5/qtbase-native.inc
+++ b/recipes-qt/qt5/qtbase-native.inc
@@ -15,6 +15,7 @@ QT_DIR_NAME ?= "qt5"
SRC_URI += " \
file://0001-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \
file://0001-Always-build-uic.patch \
+ file://qmake.conf \
"
EXTRA_ENV = 'MAKE="make -e ${PARALLEL_MAKE}"'
@@ -56,6 +57,20 @@ EXTRA_OECONF = " \
-no-rpath \
"
+# qtbase is exception, we need to use mkspecs from ${S}
+QMAKE_MKSPEC_PATH_NATIVE = "${S}/mkspecs"
+
+do_configure_prepend() {
+ if [ ! -e ${OE_QMAKESPEC} ]; then
+ mkdir -p ${OE_QMAKESPEC}
+ fi
+ # use default qplatformdefs.h from linux-g++
+ cp -va ${QMAKE_MKSPEC_PATH_NATIVE}/linux-g++/qplatformdefs.h ${OE_QMAKESPEC}/
+ # use modified qmake.conf which is using OE_QMAKE_* shell variables
+ # exported from qmake5_base.bbclass to define toolchain and flags
+ cp -va ${WORKDIR}/qmake.conf ${OE_QMAKESPEC}/
+}
+
do_configure() {
# Avoid setting QMAKE_LINK from LD (since we want the linker to be g++)
unset LD
@@ -65,9 +80,4 @@ do_configure() {
do_install() {
oe_runmake install INSTALL_ROOT=${D}
- ln -sf linux-g++ ${D}${datadir}/${QT_DIR_NAME}/mkspecs/${BUILD_OS}-oe-g++
-
- # replace common files with our version
- cp -f ${WORKDIR}/g++.conf ${D}${datadir}/${QT_DIR_NAME}/mkspecs/common/g++-unix.conf
- cp -f ${WORKDIR}/linux.conf ${D}${datadir}/${QT_DIR_NAME}/mkspecs/common/linux.conf
}
diff --git a/recipes-qt/qt5/qtbase.inc b/recipes-qt/qt5/qtbase.inc
index e42dc350..644c122c 100644
--- a/recipes-qt/qt5/qtbase.inc
+++ b/recipes-qt/qt5/qtbase.inc
@@ -5,6 +5,7 @@ SRC_URI += " \
file://0002-qmake-is-already-built-in-qt5-tools-native.patch \
file://0003-Allow-building-a-separate-qmake-for-the-target.patch \
file://0004-configure-eval-QMAKE_CXX.patch \
+ file://qmake.conf \
"
DEPENDS += "qtbase-native virtual/libgl freetype jpeg libpng zlib openssl glib-2.0 ${ICU}"
@@ -48,9 +49,19 @@ EOF
}
# qtbase is exception, we need to use mkspecs from ${S}
+QMAKE_MKSPEC_PATH = "${S}/mkspecs"
OE_XQMAKESPEC="${S}/mkspecs/${TARGET_OS}-oe-g++"
do_configure_append() {
+ if [ ! -e ${OE_XQMAKESPEC} ]; then
+ mkdir -p ${OE_XQMAKESPEC}
+ fi
+ # use default qplatformdefs.h from linux-g++
+ cp -va ${QMAKE_MKSPEC_PATH}/linux-g++/qplatformdefs.h ${OE_XQMAKESPEC}/
+ # use modified qmake.conf which is using OE_QMAKE_* shell variables
+ # exported from qmake5_base.bbclass to define toolchain and flags
+ cp -va ${WORKDIR}/qmake.conf ${OE_XQMAKESPEC}/
+
./configure -v \
-dont-process \
-opensource -confirm-license \
diff --git a/recipes-qt/qt5/qtbase/qmake.conf b/recipes-qt/qt5/qtbase/qmake.conf
new file mode 100644
index 00000000..d60288e3
--- /dev/null
+++ b/recipes-qt/qt5/qtbase/qmake.conf
@@ -0,0 +1,39 @@
+#
+# qmake configuration for linux-g++ with modifications for building with OpenEmbedded
+#
+
+MAKEFILE_GENERATOR = UNIX
+CONFIG += incremental gdb_dwarf_index
+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)
+
+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/g++-unix.conf)
+
+# tc settings from g++-base.conf
+QMAKE_COMPILER = $(OE_QMAKE_COMPILER)
+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)
+
+load(qt_config)