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
This commit is contained in:
Martin Jansa 2013-04-03 21:52:54 +02:00
parent de250e3d0e
commit b78a292a58
9 changed files with 67 additions and 152 deletions

View File

@ -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}"

View File

@ -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)

View File

@ -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)

View File

@ -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"

View File

@ -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}"

View File

@ -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
}

View File

@ -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
}

View File

@ -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 \

View File

@ -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)