From 782c6b276e1c3cce334af4a1bbceb07c19a85332 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20W=C3=A4ckerlin?= Date: Wed, 9 Sep 2015 15:01:15 +0000 Subject: [PATCH] new features and fixes --- ax_check_qt.m4 | 2 +- bootstrap.sh | 26 ++++++++++++++++---------- build-resource-file.sh | 31 +++++++++++++++++++++++++++++++ resolve-debbuilddeps.sh | 4 ++-- resolve-rpmbuilddeps.sh | 34 ++++++++++++++++++++++++++++++++++ 5 files changed, 84 insertions(+), 13 deletions(-) create mode 100755 build-resource-file.sh create mode 100755 resolve-rpmbuilddeps.sh diff --git a/ax_check_qt.m4 b/ax_check_qt.m4 index d211212..1a5dafb 100644 --- a/ax_check_qt.m4 +++ b/ax_check_qt.m4 @@ -162,7 +162,7 @@ qrc_%.cxx: %.qrc %.qm: %.ts ${LRELEASE} $< -qm [$][@] -#%.ts: ${LANGUAGE_FILES} +#%.ts: ${LANGUAGE_FILES:%=%} # ${LUPDATE} -no-obsolete \ # -target-language ${@:${LANGUAGE_FILE_BASE}_%.ts=%} \ # -ts [$][@] $< diff --git a/bootstrap.sh b/bootstrap.sh index bb5d565..0a36dfd 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -104,6 +104,8 @@ GENERATED FILES * ax_cxx_compile_stdcxx_11.m4 - auxiliary macro definition file * ax_check_qt.m4 - auxiliary macro definition file * resolve-debbuilddeps.sh - script to install debian package dependencies + * resolve-rpmbuilddeps.sh - script to install RPM package dependencies + * build-resource-file.sh - build resource.qrc file from a resource directory * mac-create-app-bundle.sh - script to create apple mac os-x app-bundle * AUTHORS - replace your name in AUTHORS before first run * NEWS - empty file add your project's news @@ -169,13 +171,13 @@ FILE DEPENDENCIES * html/makefile.am depends on AX_BUILD_HTML * doc/doxyfile.in depends on AX_BUILD_EXAMPLES * debian/control.in depends on AX_USE_DOXYGEN, AX_USE_CPPUNIT, - AX_CXX_QT, AX_CHECK_QT, AX_USE_LIBTOOL + AX_CXX_QT, AX_CHECK_QT, AX_REQUIRE_QT, AX_USE_LIBTOOL * debian/${DEFAULT_PROJECT_NAME}.install depends on AX_USE_LIBTOOL * debian/${DEFAULT_PROJECT_NAME}.dirs depends on AX_USE_LIBTOOL * debian/${DEFAULT_PROJECT_NAME}-dev.install depends on AX_USE_LIBTOOL * debian/${DEFAULT_PROJECT_NAME}-dev.dirs depends on AX_USE_LIBTOOL - * ${DEFAULT_PROJECT_NAME}.spec.in dependson AX_USE_RPM_PACKAGING, - AX_USE_LIBTOOL, AX_CHECK_QT, AX_CXX_QT, AX_USE_CPPUNIT + * ${DEFAULT_PROJECT_NAME}.spec.in depends on AX_USE_RPM_PACKAGING, + AX_USE_LIBTOOL, AX_CHECK_QT, AX_REQUIRE_QT, AX_CXX_QT, AX_USE_CPPUNIT FILES @@ -208,7 +210,7 @@ FILES * Enable C++ examples, i.e. for libraries: AX_BUILD_EXAMPLES * Check for C++11 support: AX_CXX_COMPILE_STDCXX_11 (see ax_cxx_compile_stdcxx_11.m4) * Require a QT module: AX_REQUIRE_QT (see ax_check_qt.m4) - * Optionally use a QT module: AX_CHECK_QT (see ax_check_qt.m4) + * Optionally use a QT module: AX_CHECK_QT (see ax_check_qt.m4) * Require a module: AX_PKG_REQUIRE (see ax_init_standard_project.m4) * Check for an optional module: AX_PKG_CHECK (see ax_init_standard_project.m4) @@ -280,7 +282,8 @@ run() { } testtag() { - egrep -q '^ *'"$1" configure.ac + local IFS="|" + egrep -q '^ *'"($*)" configure.ac } contains() { @@ -386,6 +389,8 @@ copy ax_init_standard_project.m4 copy ax_cxx_compile_stdcxx_11.m4 copy ax_check_qt.m4 copy resolve-debbuilddeps.sh +copy resolve-rpmbuilddeps.sh +copy build-resource-file.sh copy mac-create-app-bundle.sh AUTHOR=$(gpg -K | sed -n 's,uid *,,p' | sort | head -1) if test -z "${AUTHOR}"; then @@ -425,6 +430,7 @@ AX_INIT_STANDARD_PROJECT # qt features, uncomment, what you need: #AX_CHECK_QT([QT], [QtCore QtGui QtNetwork], [QtWidgets]) +#AX_REQUIRE_QT([QT], [QtCore QtGui QtNetwork], [QtWidgets]) #AX_QT_NO_KEYWORDS # create output @@ -696,7 +702,7 @@ EOF Source: @PACKAGE_NAME@ Priority: extra Maintainer: @AUTHOR@ -Build-Depends: debhelper, subversion, pkg-config, autotools-dev, lsb-release $(if testtag AX_USE_DOXYGEN; then echo -n ", doxygen, graphviz, mscgen"; fi; if testtag AX_USE_CPPUNIT; then echo -n ", libcppunit-dev"; fi; if testtag AX_CXX_QT || testtag AX_CHECK_QT; then echo -n ", qt5-default | qt4-default | qt5-qmake | qt4-qmake, qtbase5-dev | libqt4-dev, qtbase5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools"; fi) +Build-Depends: debhelper, subversion, pkg-config, autotools-dev, lsb-release $(if testtag AX_USE_DOXYGEN; then echo -n ", doxygen, graphviz, mscgen"; fi; if testtag AX_USE_CPPUNIT; then echo -n ", libcppunit-dev"; fi; if testtag AX_CXX_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n ", qt5-default | qt4-default | qt5-qmake | qt4-qmake, qtbase5-dev | libqt4-dev, qtbase5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools, qttools5-dev-tools | qt4-dev-tools"; fi) Package: @PACKAGE_NAME@ Section: $(if testtag AX_USE_LIBTOOL; then echo "libs"; fi) @@ -765,9 +771,9 @@ BuildRequires: pkgconfig, redhat-lsb$( fi) %if ! ( 0%{?centos} || 0%{?centos_ver} || 0%{?centos_version} ) $(if testtag AX_USE_DOXYGEN; then echo -n "BuildRequires: mscgen"; fi) -$(if testtag AX_REQUIRE_QT || testtag AX_CHECK_QT; then echo -n "BuildRequires: qt5-qtbase-devel, qt5-qttools, qt5-qtwebkit-devel"; fi) +$(if testtag AX_REQUIRE_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n "BuildRequires: qt5-qtbase-devel, qt5-qttools, qt5-qtwebkit-devel"; fi) %else -$(if testtag AX_REQUIRE_QT || testtag AX_CHECK_QT; then echo -n "BuildRequires: qt-devel"; fi) +$(if testtag AX_REQUIRE_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n "BuildRequires: qt-devel"; fi) %endif %else%if 0%{?suse_version} || 0%{?sles_version} BuildRequires: pkg-config, lsb-release$( @@ -775,9 +781,9 @@ BuildRequires: pkg-config, lsb-release$( echo -n ", libcppunit-devel"; fi) %if 0%{?suse_version} < 1200 || 0%{?sles_version} < 1200 -$(if testtag AX_REQUIRE_QT || testtag AX_CHECK_QT; then echo -n "BuildRequires: libqt4-devel, qt4-x11-tools, libQtWebKit-devel"; fi) +$(if testtag AX_REQUIRE_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n "BuildRequires: libqt4-devel, qt4-x11-tools, libQtWebKit-devel"; fi) %else -$(if testtag AX_REQUIRE_QT || testtag AX_CHECK_QT; then echo -n "BuildRequires: libqt5-qtbase-devel, libqt5-qttools, libQt5WebKit5-devel"; fi) +$(if testtag AX_REQUIRE_QT || testtag AX_CHECK_QT AX_REQUIRE_QT; then echo -n "BuildRequires: libqt5-qtbase-devel, libqt5-qttools, libQt5WebKit5-devel"; fi) %endif %endif%endif diff --git a/build-resource-file.sh b/build-resource-file.sh new file mode 100755 index 0000000..746b82c --- /dev/null +++ b/build-resource-file.sh @@ -0,0 +1,31 @@ +#! /bin/bash -ex + +## @id $Id$ + +## build resource.qrc file from a resource directory +## +## Argument: $1: resource path (default: resources) +## Result: file named .qrc (default: resources.qrc) +## +## Call: +## +## cd src +## ../build-resource-file.sh + +## 1 2 3 4 5 6 7 8 +## 45678901234567890123456789012345678901234567890123456789012345678901234567890 + +RESOURCES=${1:-resources} +TARGET=${RESOURCES}.qrc + +test -d ${RESOURCES} + +echo "" > ${TARGET} +for d in $(find resources -mindepth 1 -type d); do + echo " " >> ${TARGET} + for f in $(find $d -mindepth 1 -maxdepth 1 -type f); do + echo " $f" >> ${TARGET} + done + echo " " >> ${TARGET} +done +echo "" >> ${TARGET} diff --git a/resolve-debbuilddeps.sh b/resolve-debbuilddeps.sh index f0f2496..9da3c80 100755 --- a/resolve-debbuilddeps.sh +++ b/resolve-debbuilddeps.sh @@ -4,8 +4,8 @@ ## Resolve Debian Build Dependencies ## Installs all the required packages -## Call: ./resolve-builddeps 'name of build schroot' -## e.g. call: ./resolve-builddeps trusty_amd64 +## Call: ./resolve-debbuilddeps 'name of build schroot' +## e.g. call: ./resolve-debbuilddeps trusty_amd64 ## 1 2 3 4 5 6 7 8 ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 diff --git a/resolve-rpmbuilddeps.sh b/resolve-rpmbuilddeps.sh new file mode 100755 index 0000000..efa546f --- /dev/null +++ b/resolve-rpmbuilddeps.sh @@ -0,0 +1,34 @@ +#! /bin/bash -ex + +## @id $Id$ + +## Resolve RPM Build Dependencies +## Installs all the required packages +## Call: ./resolve-rpmbuilddeps 'name of build schroot' +## e.g. call: ./resolve-rpmbuilddeps opensuse-13.2_x86_64 + +## 1 2 3 4 5 6 7 8 +## 45678901234567890123456789012345678901234567890123456789012345678901234567890 + +SCHROOTNAME="$1" +PACKAGE_NAME=$(sed -n 's/^ *m4_define(x_package_name, \(.*\)).*/\1/p' configure.ac) + +sed 's,@[^@]*@,dummytext,g' ${PACKAGE_NAME}.spec.in > ${PACKAGE_NAME}.spec + +if test -n "${SCHROOTNAME}"; then + FILES=$(LANG= schroot -c ${SCHROOTNAME} -- rpmbuild -bb --define "_topdir ." --define "_sourcedir ." ${PACKAGE_NAME}.spec 2>&1 | sed -n 's, is needed by.*,,p') + if test -n "${FILES}"; then + schroot -c ${SCHROOTNAME} -u root -- yum install -y ${FILES} || \ + schroot -c ${SCHROOTNAME} -u root -- zypper install -y ${FILES} || \ + schroot -c ${SCHROOTNAME} -u root -- dnf install -y ${FILES} + fi +else + FILES=$(LANG= rpmbuild -bb --define "_topdir ." --define "_sourcedir ." ${PACKAGE_NAME}.spec 2>&1 | sed -n 's, is needed by.*,,p') + if test -n "${FILES}"; then + yum install -y ${FILES} || \ + zypper install -y ${FILES} || \ + dnf install -y ${FILES} + fi +fi + +echo "**** Success: All Dependencies Resolved"