summaryrefslogtreecommitdiffstats
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)
downloadmeta-qt5-b78a292a584f084cc15715c3a68693b008ef6682.tar.gz
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"
21export OE_QMAKE_UIC = "${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/uic" 21export OE_QMAKE_UIC = "${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/uic"
22export OE_QMAKE_MOC = "${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/moc" 22export OE_QMAKE_MOC = "${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/moc"
23export OE_QMAKE_RCC = "${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/rcc" 23export OE_QMAKE_RCC = "${STAGING_BINDIR_NATIVE}/${QT_DIR_NAME}/rcc"
24export OE_QMAKE_COMPILER = "${CC}"
24export OE_QMAKE_CC = "${CC}" 25export OE_QMAKE_CC = "${CC}"
25export OE_QMAKE_CFLAGS = "${CFLAGS}" 26export OE_QMAKE_CFLAGS = "${CFLAGS}"
26export OE_QMAKE_CXX = "${CXX}" 27export 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 @@
1#
2# qmake configuration for common gcc
3#
4
5QMAKE_CC = $(OE_QMAKE_CC)
6QMAKE_CFLAGS += -pipe $(OE_QMAKE_CFLAGS)
7QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $(OE_QMAKE_CFLAGS)
8QMAKE_CFLAGS_DEPS += -M
9QMAKE_CFLAGS_WARN_ON += -Wall -W
10QMAKE_CFLAGS_WARN_OFF += -w
11QMAKE_CFLAGS_RELEASE +=
12QMAKE_CFLAGS_DEBUG += -g
13QMAKE_CFLAGS_SHLIB += -fPIC
14QMAKE_CFLAGS_STATIC_LIB += -fPIC
15QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses
16QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden
17QMAKE_CFLAGS_PRECOMPILE += -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
18QMAKE_CFLAGS_USE_PRECOMPILE += -include ${QMAKE_PCH_OUTPUT_BASE}
19
20QMAKE_CXX = $(OE_QMAKE_CXX)
21QMAKE_CXXFLAGS += $$QMAKE_CFLAGS $$QMAKE_CXXFLAGS $(OE_QMAKE_CXXFLAGS)
22QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS
23QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON
24QMAKE_CXXFLAGS_WARN_OFF += $$QMAKE_CFLAGS_WARN_OFF
25QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_RELEASE
26QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
27QMAKE_CXXFLAGS_DEBUG += $$QMAKE_CFLAGS_DEBUG
28QMAKE_CXXFLAGS_SHLIB += $$QMAKE_CFLAGS_SHLIB
29QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB
30QMAKE_CXXFLAGS_YACC += $$QMAKE_CFLAGS_YACC
31QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden
32QMAKE_CXXFLAGS_PRECOMPILE += -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
33QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
34
35QMAKE_LINK = $(OE_QMAKE_LINK)
36QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK)
37QMAKE_LINK_C = $(OE_QMAKE_LINK)
38QMAKE_LINK_C_SHLIB = $(OE_QMAKE_LINK)
39QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS)
40QMAKE_LFLAGS_RELEASE +=
41QMAKE_LFLAGS_DEBUG +=
42QMAKE_LFLAGS_APP +=
43QMAKE_LFLAGS_NOUNDEF += -Wl,--no-undefined
44QMAKE_LFLAGS_RPATH = -Wl,-rpath-link,
45
46QMAKE_PCH_OUTPUT_EXT = .gch
47
48# -Bsymbolic-functions (ld) support
49QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions
50QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list,
51
52# some linking helper...
53CONFIG += rpath_libdirs
54
55# for the SDK
56isEmpty(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 @@
1#
2# qmake configuration for common linux
3#
4
5QMAKE_CFLAGS_THREAD += -D_REENTRANT
6QMAKE_CXXFLAGS_THREAD += $$QMAKE_CFLAGS_THREAD
7
8QMAKE_INCDIR =
9QMAKE_LIBDIR =
10QMAKE_INCDIR_X11 =
11QMAKE_LIBDIR_X11 =
12QMAKE_INCDIR_QT = $(OE_QMAKE_INCDIR_QT)
13QMAKE_LIBDIR_QT = $(OE_QMAKE_LIBDIR_QT)
14QMAKE_INCDIR_OPENGL =
15QMAKE_LIBDIR_OPENGL =
16QMAKE_INCDIR_OPENGL_ES1 = $$QMAKE_INCDIR_OPENGL
17QMAKE_LIBDIR_OPENGL_ES1 = $$QMAKE_LIBDIR_OPENGL
18QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL
19QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL
20QMAKE_INCDIR_EGL =
21QMAKE_LIBDIR_EGL =
22QMAKE_INCDIR_OPENVG =
23QMAKE_LIBDIR_OPENVG =
24
25QMAKE_LIBS =
26QMAKE_LIBS_DYNLOAD = -ldl
27QMAKE_LIBS_X11 = $(OE_QMAKE_LIBS_X11)
28QMAKE_LIBS_X11SM = $(OE_QMAKE_LIBS_X11SM)
29QMAKE_LIBS_NIS = -lnsl
30QMAKE_LIBS_EGL = -lEGL
31QMAKE_LIBS_OPENGL = -lGL
32QMAKE_LIBS_OPENGL_QT = -lGL
33QMAKE_LIBS_OPENGL_ES1 = -lGLES_CM
34QMAKE_LIBS_OPENGL_ES2 = -lGLESv2
35QMAKE_LIBS_OPENVG = -lOpenVG
36QMAKE_LIBS_THREAD = -lpthread
37QMAKE_LIBS_LIBUDEV = -ludev
38
39QMAKE_CFLAGS_WAYLAND =
40QMAKE_INCDIR_WAYLAND =
41QMAKE_LIBS_WAYLAND_CLIENT = -lwayland-client
42QMAKE_LIBS_WAYLAND_SERVER = -lwayland-server
43QMAKE_LIBDIR_WAYLAND =
44QMAKE_DEFINES_WAYLAND =
45QMAKE_WAYLAND_SCANNER = wayland-scanner
46
47QMAKE_MOC = $(OE_QMAKE_MOC)
48QMAKE_UIC = $(OE_QMAKE_UIC)
49QMAKE_UIC3 = $(OE_QMAKE_UIC3)
50QMAKE_RCC = $(OE_QMAKE_RCC)
51QMAKE_QDBUSCPP2XML = $(OE_QMAKE_QDBUSCPP2XML)
52QMAKE_QDBUSXML2CPP = $(OE_QMAKE_QDBUSXML2CPP)
53
54QMAKE_AR = $(OE_QMAKE_AR) cqs
55QMAKE_OBJCOPY = objcopy
56QMAKE_RANLIB =
57
58QMAKE_TAR = tar -cf
59QMAKE_GZIP = gzip -9f
60
61QMAKE_COPY = cp -f
62QMAKE_COPY_FILE = $(COPY)
63QMAKE_COPY_DIR = $(COPY) -r
64QMAKE_MOVE = mv -f
65QMAKE_DEL_FILE = rm -f
66QMAKE_DEL_DIR = rmdir
67QMAKE_STRIP = $(OE_QMAKE_STRIP)
68QMAKE_STRIPFLAGS_LIB += --strip-unneeded
69QMAKE_CHK_DIR_EXISTS = test -d
70QMAKE_MKDIR = mkdir -p
71QMAKE_INSTALL_FILE = install -m 644 -p
72QMAKE_INSTALL_PROGRAM = install -m 755 -p
73
74include(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 @@
3# each module needs to define valid SRCREV 3# each module needs to define valid SRCREV
4SRC_URI += " \ 4SRC_URI += " \
5 git://qt.gitorious.org/qt/${QT_MODULE}.git;protocol=git;branch=stable \ 5 git://qt.gitorious.org/qt/${QT_MODULE}.git;protocol=git;branch=stable \
6 file://linux.conf \
7 file://g++.conf \
8" 6"
9 7
10S = "${WORKDIR}/git" 8S = "${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}"
4 4
5SRC_URI += " \ 5SRC_URI += " \
6 http://releases.qt-project.org/qt5/${QT_VERSION}/submodules_tar/${QT_MODULE}-opensource-src-${QT_VERSION}.tar.xz \ 6 http://releases.qt-project.org/qt5/${QT_VERSION}/submodules_tar/${QT_MODULE}-opensource-src-${QT_VERSION}.tar.xz \
7 file://linux.conf \
8 file://g++.conf \
9" 7"
10 8
11S = "${WORKDIR}/${QT_MODULE}-opensource-src-${QT_VERSION}" 9S = "${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 += " \
56" 56"
57 57
58do_configure() { 58do_configure() {
59# set_arch 59 set_arch
60 set_endian 60 set_endian
61 61
62 if [ ! -e bin/qmake ]; then
63 ln -sf ${OE_QMAKE_QMAKE} bin/qmake
64 fi
65
66 if [ ! -e mkspecs/${TARGET_OS}-oe-g++ ]; then
67 ln -sf linux-g++ mkspecs/${TARGET_OS}-oe-g++
68 fi
69
70 # replace common files with our version
71 cp -f ${WORKDIR}/g++.conf mkspecs/common/g++-unix.conf
72 cp -f ${WORKDIR}/linux.conf mkspecs/common/linux.conf
73
74 # Avoid problems with the linkers, since we want the linker to be g++ 62 # Avoid problems with the linkers, since we want the linker to be g++
75 unset LD 63 unset LD
76} 64}
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"
15SRC_URI += " \ 15SRC_URI += " \
16 file://0001-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \ 16 file://0001-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \
17 file://0001-Always-build-uic.patch \ 17 file://0001-Always-build-uic.patch \
18 file://qmake.conf \
18" 19"
19 20
20EXTRA_ENV = 'MAKE="make -e ${PARALLEL_MAKE}"' 21EXTRA_ENV = 'MAKE="make -e ${PARALLEL_MAKE}"'
@@ -56,6 +57,20 @@ EXTRA_OECONF = " \
56 -no-rpath \ 57 -no-rpath \
57" 58"
58 59
60# qtbase is exception, we need to use mkspecs from ${S}
61QMAKE_MKSPEC_PATH_NATIVE = "${S}/mkspecs"
62
63do_configure_prepend() {
64 if [ ! -e ${OE_QMAKESPEC} ]; then
65 mkdir -p ${OE_QMAKESPEC}
66 fi
67 # use default qplatformdefs.h from linux-g++
68 cp -va ${QMAKE_MKSPEC_PATH_NATIVE}/linux-g++/qplatformdefs.h ${OE_QMAKESPEC}/
69 # use modified qmake.conf which is using OE_QMAKE_* shell variables
70 # exported from qmake5_base.bbclass to define toolchain and flags
71 cp -va ${WORKDIR}/qmake.conf ${OE_QMAKESPEC}/
72}
73
59do_configure() { 74do_configure() {
60 # Avoid setting QMAKE_LINK from LD (since we want the linker to be g++) 75 # Avoid setting QMAKE_LINK from LD (since we want the linker to be g++)
61 unset LD 76 unset LD
@@ -65,9 +80,4 @@ do_configure() {
65 80
66do_install() { 81do_install() {
67 oe_runmake install INSTALL_ROOT=${D} 82 oe_runmake install INSTALL_ROOT=${D}
68 ln -sf linux-g++ ${D}${datadir}/${QT_DIR_NAME}/mkspecs/${BUILD_OS}-oe-g++
69
70 # replace common files with our version
71 cp -f ${WORKDIR}/g++.conf ${D}${datadir}/${QT_DIR_NAME}/mkspecs/common/g++-unix.conf
72 cp -f ${WORKDIR}/linux.conf ${D}${datadir}/${QT_DIR_NAME}/mkspecs/common/linux.conf
73} 83}
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 += " \
5 file://0002-qmake-is-already-built-in-qt5-tools-native.patch \ 5 file://0002-qmake-is-already-built-in-qt5-tools-native.patch \
6 file://0003-Allow-building-a-separate-qmake-for-the-target.patch \ 6 file://0003-Allow-building-a-separate-qmake-for-the-target.patch \
7 file://0004-configure-eval-QMAKE_CXX.patch \ 7 file://0004-configure-eval-QMAKE_CXX.patch \
8 file://qmake.conf \
8" 9"
9 10
10DEPENDS += "qtbase-native virtual/libgl freetype jpeg libpng zlib openssl glib-2.0 ${ICU}" 11DEPENDS += "qtbase-native virtual/libgl freetype jpeg libpng zlib openssl glib-2.0 ${ICU}"
@@ -48,9 +49,19 @@ EOF
48} 49}
49 50
50# qtbase is exception, we need to use mkspecs from ${S} 51# qtbase is exception, we need to use mkspecs from ${S}
52QMAKE_MKSPEC_PATH = "${S}/mkspecs"
51OE_XQMAKESPEC="${S}/mkspecs/${TARGET_OS}-oe-g++" 53OE_XQMAKESPEC="${S}/mkspecs/${TARGET_OS}-oe-g++"
52 54
53do_configure_append() { 55do_configure_append() {
56 if [ ! -e ${OE_XQMAKESPEC} ]; then
57 mkdir -p ${OE_XQMAKESPEC}
58 fi
59 # use default qplatformdefs.h from linux-g++
60 cp -va ${QMAKE_MKSPEC_PATH}/linux-g++/qplatformdefs.h ${OE_XQMAKESPEC}/
61 # use modified qmake.conf which is using OE_QMAKE_* shell variables
62 # exported from qmake5_base.bbclass to define toolchain and flags
63 cp -va ${WORKDIR}/qmake.conf ${OE_XQMAKESPEC}/
64
54 ./configure -v \ 65 ./configure -v \
55 -dont-process \ 66 -dont-process \
56 -opensource -confirm-license \ 67 -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 @@
1#
2# qmake configuration for linux-g++ with modifications for building with OpenEmbedded
3#
4
5MAKEFILE_GENERATOR = UNIX
6CONFIG += incremental gdb_dwarf_index
7QMAKE_INCREMENTAL_STYLE = sublib
8
9include(../common/linux.conf)
10
11# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar and strip
12QMAKE_AR = $(OE_QMAKE_AR) cqs
13QMAKE_STRIP = $(OE_QMAKE_STRIP)
14
15include(../common/gcc-base-unix.conf)
16
17# *FLAGS from gcc-base.conf
18QMAKE_CFLAGS += $(OE_QMAKE_CFLAGS)
19QMAKE_CXXFLAGS += $(OE_QMAKE_CXXFLAGS)
20QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS)
21
22include(../common/g++-unix.conf)
23
24# tc settings from g++-base.conf
25QMAKE_COMPILER = $(OE_QMAKE_COMPILER)
26QMAKE_CC = $(OE_QMAKE_CC)
27QMAKE_CXX = $(OE_QMAKE_CXX)
28
29QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $(OE_QMAKE_CFLAGS)
30
31QMAKE_LINK = $(OE_QMAKE_LINK)
32QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK)
33QMAKE_LINK_C = $(OE_QMAKE_LINK)
34QMAKE_LINK_C_SHLIB = $(OE_QMAKE_LINK)
35
36# for the SDK
37isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $(OE_QMAKE_QT_CONFIG)
38
39load(qt_config)