From d7aaf31869621480977d0a8f2faee199b83fd699 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 1 Dec 2008 20:55:25 +0000 Subject: meta-moblin: Add basic qt support (from OE) --- .../packages/qmake/files/linux-oe-qmake.conf | 82 ++++++++++++++ meta-moblin/packages/qmake/qmake-native_1.07a.bb | 46 ++++++++ .../qmake2-cross-2.10a/0001-fix-mkspecs.patch | 123 +++++++++++++++++++++ .../qmake/qmake2-cross-2.10a/linux-oe-qmake.conf | 1 + .../qmake/qmake2-cross-2.10a/use-lflags-last.patch | 22 ++++ meta-moblin/packages/qmake/qmake2-cross_2.10a.bb | 69 ++++++++++++ 6 files changed, 343 insertions(+) create mode 100644 meta-moblin/packages/qmake/files/linux-oe-qmake.conf create mode 100644 meta-moblin/packages/qmake/qmake-native_1.07a.bb create mode 100644 meta-moblin/packages/qmake/qmake2-cross-2.10a/0001-fix-mkspecs.patch create mode 100644 meta-moblin/packages/qmake/qmake2-cross-2.10a/linux-oe-qmake.conf create mode 100644 meta-moblin/packages/qmake/qmake2-cross-2.10a/use-lflags-last.patch create mode 100644 meta-moblin/packages/qmake/qmake2-cross_2.10a.bb (limited to 'meta-moblin/packages/qmake') diff --git a/meta-moblin/packages/qmake/files/linux-oe-qmake.conf b/meta-moblin/packages/qmake/files/linux-oe-qmake.conf new file mode 100644 index 000000000..205b693fd --- /dev/null +++ b/meta-moblin/packages/qmake/files/linux-oe-qmake.conf @@ -0,0 +1,82 @@ +# +# qmake configuration for linux-oe-g++ / OpenEmbedded Build System / http://openembedded.org +# + +MAKEFILE_GENERATOR = UNIX +TEMPLATE = app +CONFIG += qt warn_on release + +QMAKE_CC = $(OE_QMAKE_CC) +QMAKE_LEX = flex +QMAKE_LEXFLAGS = +QMAKE_YACC = yacc +QMAKE_YACCFLAGS = -d +QMAKE_CFLAGS = -pipe $(OE_QMAKE_CFLAGS) $(CFLAGS_EXTRA) +QMAKE_CFLAGS_WARN_ON = -Wall -W +QMAKE_CFLAGS_WARN_OFF = +QMAKE_CFLAGS_RELEASE = $(if $(CFLAGS_RELEASE),$(CFLAGS_RELEASE), -O2) +QMAKE_CFLAGS_DEBUG = -g +QMAKE_CFLAGS_SHLIB = -fPIC +QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses +QMAKE_CFLAGS_THREAD = -D_REENTRANT + +QMAKE_CXX = $(OE_QMAKE_CXX) +QMAKE_CXXFLAGS = $$QMAKE_CFLAGS $(OE_QMAKE_CXXFLAGS) $(CXXFLAGS_EXTRA) +QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON +QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF +QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE +QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG +QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB +QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC +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_LINK = $(OE_QMAKE_LINK) +QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK) +QMAKE_LFLAGS = $(OE_QMAKE_LDFLAGS) $(LFLAGS_EXTRA) +QMAKE_LFLAGS_RELEASE = +QMAKE_LFLAGS_DEBUG = +QMAKE_LFLAGS_SHLIB = -shared +QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB +QMAKE_LFLAGS_SONAME = -Wl,-soname, +QMAKE_LFLAGS_THREAD = +QMAKE_RPATH = -Wl,-rpath-link, + +QMAKE_LIBS = $(LIBS_EXTRA) +QMAKE_LIBS_DYNLOAD = -ldl +QMAKE_LIBS_X11 = $(OE_QMAKE_LIBS_X11) +QMAKE_LIBS_X11SM = +QMAKE_LIBS_QT = -l$(OE_QMAKE_LIBS_QT) +QMAKE_LIBS_QT_THREAD = -l$(OE_QMAKE_LIBS_QT)-mt +QMAKE_LIBS_OPENGL = $(OE_QMAKE_LIBS_OPENGL) +QMAKE_LIBS_OPENGL_QT = $(OE_QMAKE_LIBS_OPENGL_QT) +QMAKE_LIBS_THREAD = -lpthread + +QMAKE_MOC = $(OE_QMAKE_MOC) +QMAKE_UIC = $(OE_QMAKE_UIC) + +QMAKE_AR = $(OE_QMAKE_AR) cqs +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 + diff --git a/meta-moblin/packages/qmake/qmake-native_1.07a.bb b/meta-moblin/packages/qmake/qmake-native_1.07a.bb new file mode 100644 index 000000000..29f736dea --- /dev/null +++ b/meta-moblin/packages/qmake/qmake-native_1.07a.bb @@ -0,0 +1,46 @@ +DESCRIPTION = "TrollTech Makefile Generator" +PRIORITY = "optional" +HOMEPAGE = "http://www.trolltech.com" +SECTION = "devel" +LICENSE = "GPL QPL" +PR = "r4" + +QTEVER = "qt-embedded-free-3.3.5" + +SRC_URI = "ftp://ftp.trolltech.com/pub/qt/source/${QTEVER}.tar.bz2 \ + file://linux-oe-qmake.conf" +S = "${WORKDIR}/${QTEVER}" + +inherit autotools native + +export QTDIR = "${S}" +EXTRA_OEMAKE = "-e" + +do_configure() { + # Install the OE build templates + for template in linux-oe-g++ linux-uclibc-oe-g++ linux-gnueabi-oe-g++ + do + install -d ${S}/mkspecs/$template + install -m 0644 ${WORKDIR}/linux-oe-qmake.conf ${S}/mkspecs/$template/qmake.conf + ln -sf ../linux-g++/qplatformdefs.h ${S}/mkspecs/$template/qplatformdefs.h + done + QMAKESPEC= + PLATFORM=${HOST_OS}-oe-g++ + export PLATFORM + oenote ./configure ${EXTRA_OECONF} + echo yes | ./configure ${EXTRA_OECONF} || die "Configuring qt failed" +} + +do_compile() { + : +} + +do_stage() { + install -m 0755 bin/qmake ${STAGING_BINDIR} + install -d ${QMAKE_MKSPEC_PATH} + cp -fPR mkspecs/* ${QMAKE_MKSPEC_PATH} +} + +do_install() { + : +} diff --git a/meta-moblin/packages/qmake/qmake2-cross-2.10a/0001-fix-mkspecs.patch b/meta-moblin/packages/qmake/qmake2-cross-2.10a/0001-fix-mkspecs.patch new file mode 100644 index 000000000..abebfdfa2 --- /dev/null +++ b/meta-moblin/packages/qmake/qmake2-cross-2.10a/0001-fix-mkspecs.patch @@ -0,0 +1,123 @@ +From 594157753a24d0575aaf948dc0e9500f6bdb2178 Mon Sep 17 00:00:00 2001 +From: Michael Krelin +Date: Sat, 2 Jun 2007 16:39:58 +0200 +Subject: [PATCH] fix mkspecs + +--- + mkspecs/common/g++.conf | 18 +++++++++--------- + mkspecs/common/linux.conf | 26 +++++++++++++------------- + 2 files changed, 22 insertions(+), 22 deletions(-) + +diff --git a/mkspecs/common/g++.conf b/mkspecs/common/g++.conf +index f5a5c8e..4007c7e 100644 +--- a/mkspecs/common/g++.conf ++++ b/mkspecs/common/g++.conf +@@ -2,12 +2,12 @@ + # qmake configuration for common gcc + # + +-QMAKE_CC = gcc +-QMAKE_CFLAGS += -pipe ++QMAKE_CC = $(OE_QMAKE_CC) ++QMAKE_CFLAGS += -pipe $(OE_QMAKE_CFLAGS) + QMAKE_CFLAGS_DEPS += -M + QMAKE_CFLAGS_WARN_ON += -Wall -W + QMAKE_CFLAGS_WARN_OFF += -w +-QMAKE_CFLAGS_RELEASE += -O2 ++QMAKE_CFLAGS_RELEASE += -O2 + QMAKE_CFLAGS_DEBUG += -g + QMAKE_CFLAGS_SHLIB += -fPIC + QMAKE_CFLAGS_STATIC_LIB += -fPIC +@@ -16,8 +16,8 @@ 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 = g++ +-QMAKE_CXXFLAGS += $$QMAKE_CFLAGS ++QMAKE_CXX = $(OE_QMAKE_CXX) ++QMAKE_CXXFLAGS += $$QMAKE_CFLAGS $(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 +@@ -30,9 +30,9 @@ 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 = g++ +-QMAKE_LINK_SHLIB = g++ +-QMAKE_LFLAGS += ++QMAKE_LINK = $(OE_QMAKE_LINK) ++QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK) ++QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS) + QMAKE_LFLAGS_RELEASE += + QMAKE_LFLAGS_DEBUG += + QMAKE_LFLAGS_APP += +@@ -40,7 +40,7 @@ QMAKE_LFLAGS_SHLIB += -shared + QMAKE_LFLAGS_PLUGIN += $$QMAKE_LFLAGS_SHLIB + QMAKE_LFLAGS_SONAME += -Wl,-soname, + QMAKE_LFLAGS_THREAD += +-QMAKE_RPATH = -Wl,-rpath, ++QMAKE_RPATH = -Wl,-rpath-link, + + QMAKE_PCH_OUTPUT_EXT = .gch + +diff --git a/mkspecs/common/linux.conf b/mkspecs/common/linux.conf +index 3796a87..52acf16 100644 +--- a/mkspecs/common/linux.conf ++++ b/mkspecs/common/linux.conf +@@ -7,26 +7,26 @@ QMAKE_CXXFLAGS_THREAD += $$QMAKE_CFLAGS_THREAD + + QMAKE_INCDIR = + QMAKE_LIBDIR = +-QMAKE_INCDIR_X11 = /usr/X11R6/include +-QMAKE_LIBDIR_X11 = /usr/X11R6/lib +-QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS] +-QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS] +-QMAKE_INCDIR_OPENGL = /usr/X11R6/include +-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib ++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_LIBS = + QMAKE_LIBS_DYNLOAD = -ldl +-QMAKE_LIBS_X11 = -lXext -lX11 -lm +-QMAKE_LIBS_X11SM = -lSM -lICE ++QMAKE_LIBS_X11 = $(OE_QMAKE_LIBS_X11) ++QMAKE_LIBS_X11SM = $(OE_QMAKE_LIBS_X11SM) + QMAKE_LIBS_NIS = -lnsl + QMAKE_LIBS_OPENGL = -lGLU -lGL + QMAKE_LIBS_OPENGL_QT = -lGL + QMAKE_LIBS_THREAD = -lpthread + +-QMAKE_MOC = $$[QT_INSTALL_BINS]/moc +-QMAKE_UIC = $$[QT_INSTALL_BINS]/uic ++QMAKE_MOC = $(OE_QMAKE_MOC) ++QMAKE_UIC = $(OE_QMAKE_UIC) + +-QMAKE_AR = ar cqs ++QMAKE_AR = $(OE_QMAKE_AR) cqs + QMAKE_RANLIB = + + QMAKE_TAR = tar -cf +@@ -38,11 +38,11 @@ QMAKE_COPY_DIR = $(COPY) -r + QMAKE_MOVE = mv -f + QMAKE_DEL_FILE = rm -f + QMAKE_DEL_DIR = rmdir +-QMAKE_STRIP = strip ++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) +\ No newline at end of file ++include(unix.conf) +-- +1.5.1.6 + diff --git a/meta-moblin/packages/qmake/qmake2-cross-2.10a/linux-oe-qmake.conf b/meta-moblin/packages/qmake/qmake2-cross-2.10a/linux-oe-qmake.conf new file mode 100644 index 000000000..f58481a69 --- /dev/null +++ b/meta-moblin/packages/qmake/qmake2-cross-2.10a/linux-oe-qmake.conf @@ -0,0 +1 @@ +include(../linux-g++/qmake.conf) diff --git a/meta-moblin/packages/qmake/qmake2-cross-2.10a/use-lflags-last.patch b/meta-moblin/packages/qmake/qmake2-cross-2.10a/use-lflags-last.patch new file mode 100644 index 000000000..4197dbbf6 --- /dev/null +++ b/meta-moblin/packages/qmake/qmake2-cross-2.10a/use-lflags-last.patch @@ -0,0 +1,22 @@ +Index: qtopia-core-opensource-src-4.3.1/qmake/generators/unix/unixmake2.cpp +=================================================================== +--- qtopia-core-opensource-src-4.3.1.orig/qmake/generators/unix/unixmake2.cpp 2007-10-07 13:45:26.000000000 +0200 ++++ qtopia-core-opensource-src-4.3.1/qmake/generators/unix/unixmake2.cpp 2007-10-07 13:57:09.000000000 +0200 +@@ -416,7 +416,7 @@ + t << "\n\t" << mkdir_p_asstring(destdir) << "\n\t"; + if(!project->isEmpty("QMAKE_PRE_LINK")) + t << var("QMAKE_PRE_LINK") << "\n\t"; +- t << "$(LINK) $(LFLAGS) -o $(TARGET) " << incr_deps << " " << incr_objs << " $(OBJCOMP) $(LIBS)"; ++ t << "$(LINK) -o $(TARGET) " << incr_deps << " " << incr_objs << " $(OBJCOMP) $(LIBS) $(LFLAGS)"; + if(!project->isEmpty("QMAKE_POST_LINK")) + t << "\n\t" << var("QMAKE_POST_LINK"); + t << endl << endl; +@@ -430,7 +430,7 @@ + t << mkdir_p_asstring(destdir) << "\n\t"; + if(!project->isEmpty("QMAKE_PRE_LINK")) + t << var("QMAKE_PRE_LINK") << "\n\t"; +- t << "$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)"; ++ t << "$(LINK) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) $(LFLAGS)"; + if(!project->isEmpty("QMAKE_POST_LINK")) + t << "\n\t" << var("QMAKE_POST_LINK"); + t << endl << endl; diff --git a/meta-moblin/packages/qmake/qmake2-cross_2.10a.bb b/meta-moblin/packages/qmake/qmake2-cross_2.10a.bb new file mode 100644 index 000000000..c4f586766 --- /dev/null +++ b/meta-moblin/packages/qmake/qmake2-cross_2.10a.bb @@ -0,0 +1,69 @@ +DESCRIPTION = "TrollTech Makefile Generator" +PRIORITY = "optional" +HOMEPAGE = "http://www.trolltech.com" +SECTION = "devel" +LICENSE = "GPL" +PR = "r2" + +QTVER = "qtopia-core-opensource-src-4.3.2" + +SRC_URI = "ftp://ftp.trolltech.com/pub/qt/source/${QTVER}.tar.gz \ + file://0001-fix-mkspecs.patch;patch=1 \ + file://use-lflags-last.patch;patch=1 \ + file://linux-oe-qmake.conf" +S = "${WORKDIR}/${QTVER}" + +# we need the real target system here +CROSS_SYS := "${TARGET_SYS}" +CROSS_BINDIR := "${STAGING_BINDIR_CROSS}" +inherit autotools cross + +export QTDIR = "${S}" +EXTRA_OEMAKE = "-e" + +do_configure() { + # Install the OE build templates + for template in linux-oe-g++ linux-uclibc-oe-g++ linux-gnueabi-oe-g++ + do + install -d ${S}/mkspecs/$template + install -m 0644 ${WORKDIR}/linux-oe-qmake.conf ${S}/mkspecs/$template/qmake.conf + ln -sf ../linux-g++/qplatformdefs.h ${S}/mkspecs/$template/qplatformdefs.h + done + + QMAKESPEC= + PLATFORM=${HOST_OS}-oe-g++ + export PLATFORM + # yes, TARGET_SYS is correct, because this is a 'cross'-qmake-native :) :M: + export OE_QMAKE_CC="${CC}" + export OE_QMAKE_CFLAGS="${CFLAGS}" + export OE_QMAKE_CXX="${CXX}" + export OE_QMAKE_CXXFLAGS="-fno-exceptions -fno-rtti ${CXXFLAGS}" + export OE_QMAKE_LDFLAGS="${LDFLAGS}" + export OE_QMAKE_LINK="${CCLD}" + export OE_QMAKE_AR="${AR}" + export OE_QMAKE_STRIP="${STRIP}" + export OE_QMAKE_UIC="${STAGING_BINDIR_NATIVE}/uic4" + export OE_QMAKE_MOC="${STAGING_BINDIR_NATIVE}/moc4" + export OE_QMAKE_RCC="${STAGING_BINDIR_NATIVE}/rcc4" + export OE_QMAKE_QMAKE="${CROSS_BINDIR}/qmake2" + export OE_QMAKE_RPATH="-Wl,-rpath-link," + echo yes | ./configure -prefix ${STAGING_DIR}/${CROSS_SYS}/qt4 ${EXTRA_OECONF} || die "Configuring qt failed" +} + +do_compile() { + : +} + +do_stage() { + install -d ${CROSS_BINDIR}/ + install -m 0755 bin/qmake ${CROSS_BINDIR}/qmake2 + install -m 0755 bin/qmake ${CROSS_BINDIR}/qmake-qt4 + install -d ${STAGING_DIR}/${CROSS_SYS}/qt4/ + cp -PfR mkspecs ${STAGING_DIR}/${CROSS_SYS}/qt4/ + install -d ${STAGING_DIR}/${HOST_SYS}/qt4/ + cp -PfR mkspecs ${STAGING_DIR}/${HOST_SYS}/qt4/ +} + +do_install() { + : +} -- cgit v1.2.3