|
|
|
@ -19,6 +19,7 @@ PROJECT_PATH=$(pwd) |
|
|
|
|
DEFAULT_PROJECT_NAME=${PROJECT_PATH##*/} |
|
|
|
|
configure=0 |
|
|
|
|
build=0 |
|
|
|
|
docker=0 |
|
|
|
|
buildtarget="distcheck" |
|
|
|
|
overwrite=0 |
|
|
|
|
rebuild=0 |
|
|
|
@ -26,6 +27,7 @@ rebuildfiles=() |
|
|
|
|
while test $# -gt 0; do |
|
|
|
|
case "$1" in |
|
|
|
|
(--configure|-c) configure=1;; |
|
|
|
|
(--docker|-d) docker=1;; |
|
|
|
|
(--build|-b) configure=1; build=1;; |
|
|
|
|
(--target|-t) shift; configure=1; build=1; buildtarget="$1";; |
|
|
|
|
(--overwrite|-o) overwrite=1;; |
|
|
|
@ -42,6 +44,7 @@ SYNOPSIS |
|
|
|
|
OPTIONS |
|
|
|
|
|
|
|
|
|
--configure, -c call ./configure after initialization |
|
|
|
|
--docker, -d build and run tests in a docker instance |
|
|
|
|
--build, -b build, also call ./configure && make distcheck |
|
|
|
|
--target, -t <target> same as -b, but specify target instead of distcheck |
|
|
|
|
--overwrite, -o overwrite all basic files (bootstrap.sh, m4-macros) |
|
|
|
@ -105,6 +108,7 @@ GENERATED FILES |
|
|
|
|
* 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-in-docker.sh - script to build the project encapsulated in a docker container |
|
|
|
|
* 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 |
|
|
|
@ -119,7 +123,7 @@ GENERATED FILES |
|
|
|
|
* scripts/makefile.in - if you enabled AX_USE_SCRIPTS |
|
|
|
|
* doc/makefile.am - if you enabled AX_USE_DOXYGEN |
|
|
|
|
* doc/doxyfile.in - if you enabled AX_USE_DOXYGEN |
|
|
|
|
* test/makefile.am - if you enabled AX_USE_CPPUNIT |
|
|
|
|
* test/makefile.am - if you enabled AX_BUILD_TEST or AX_USE_CPPUNIT |
|
|
|
|
* examples/makefile.am - if you enabled AX_BUILD_EXAMPLES |
|
|
|
|
* debian/changelog.in - if you enabled AX_USE_DEBIAN_PACKAGING |
|
|
|
|
* debian/control.in - if you enabled AX_USE_DEBIAN_PACKAGING |
|
|
|
@ -170,7 +174,7 @@ FILE DEPENDENCIES |
|
|
|
|
* test/makefile.am depends on AX_USE_LIBTOOL |
|
|
|
|
* 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, |
|
|
|
|
* debian/control.in depends on AX_USE_DOXYGEN, AX_USE_CPPUNIT |
|
|
|
|
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 |
|
|
|
@ -207,6 +211,7 @@ FILES |
|
|
|
|
* Enable Debian packaging by calling "make deb": AX_USE_DEBIAN_PACKAGING |
|
|
|
|
* Enable RPM packaging by calling "make rpm": AX_USE_RPM_PACKAGING |
|
|
|
|
* Enable C++ testing using CppUnit: AX_USE_CPPUNIT |
|
|
|
|
* Enable other tests: AX_BUILD_TEST |
|
|
|
|
* 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) |
|
|
|
@ -240,15 +245,29 @@ done |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HEADER='## @id '"\$Id\$"' |
|
|
|
|
# |
|
|
|
|
# This file has been added by '${MY_NAME}' on '$(LANG= date +"%a, %d %B %Y %H:%M:%S %z")' |
|
|
|
|
# Feel free to change it or even remove and rebuild it, up to your needs |
|
|
|
|
# |
|
|
|
|
## |
|
|
|
|
## This file has been added: |
|
|
|
|
## - by '${MY_NAME}' |
|
|
|
|
## - on '$(LANG= date +"%a, %d %B %Y %H:%M:%S %z")' |
|
|
|
|
## Feel free to change it or even remove and rebuild it, up to your needs |
|
|
|
|
## |
|
|
|
|
## 1 2 3 4 5 6 7 8 |
|
|
|
|
## 45678901234567890123456789012345678901234567890123456789012345678901234567890 |
|
|
|
|
|
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
CHEADER='/** @id '"\$Id\$"' |
|
|
|
|
|
|
|
|
|
This file has been added: |
|
|
|
|
- by '${MY_NAME}' |
|
|
|
|
- on '$(LANG= date +"%a, %d %B %Y %H:%M:%S %z")' |
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
|
// 1 2 3 4 5 6 7 8 |
|
|
|
|
// 45678901234567890123456789012345678901234567890123456789012345678901234567890 |
|
|
|
|
|
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
notice() { |
|
|
|
|
echo -e "\e[1;33m$*\e[0m" |
|
|
|
|
} |
|
|
|
@ -390,6 +409,7 @@ copy ax_cxx_compile_stdcxx_11.m4 |
|
|
|
|
copy ax_check_qt.m4 |
|
|
|
|
copy resolve-debbuilddeps.sh |
|
|
|
|
copy resolve-rpmbuilddeps.sh |
|
|
|
|
copy build-in-docker.sh |
|
|
|
|
copy build-resource-file.sh |
|
|
|
|
copy mac-create-app-bundle.sh |
|
|
|
|
AUTHOR=$(gpg -K | sed -n 's,uid *,,p' | sort | head -1) |
|
|
|
@ -425,6 +445,7 @@ AX_INIT_STANDARD_PROJECT |
|
|
|
|
#AX_USE_DEBIAN_PACKAGING |
|
|
|
|
#AX_USE_RPM_PACKAGING |
|
|
|
|
#AX_USE_CPPUNIT |
|
|
|
|
#AX_BUILD_TEST |
|
|
|
|
#AX_BUILD_EXAMPLES |
|
|
|
|
#AX_BUILD_HTML |
|
|
|
|
|
|
|
|
@ -436,12 +457,19 @@ AX_INIT_STANDARD_PROJECT |
|
|
|
|
# create output |
|
|
|
|
AC_OUTPUT |
|
|
|
|
EOF |
|
|
|
|
|
|
|
|
|
PACKAGE_NAME=$(sed -n 's/.*m4_define *( *x_package_name *, *\([^ ]*\) *).*/\1/p' configure.ac) |
|
|
|
|
if ! testtag "AX_CHECK_QT" configure.ac && \ |
|
|
|
|
! testtag "AX_REQUIRE_QT" configure.ac; then |
|
|
|
|
SAVEIFS="$IFS" |
|
|
|
|
IFS="-" PackageName=( $PACKAGE_NAME ) |
|
|
|
|
IFS="$SAVEIFS" |
|
|
|
|
PackageName=${PackageName[*]^} |
|
|
|
|
PackageName=${PackageName// /} |
|
|
|
|
|
|
|
|
|
if ! testtag AX_CHECK_QT && \ |
|
|
|
|
! testtag AX_REQUIRE_QT; then |
|
|
|
|
echo "${HEADER}MAINTAINERCLEANFILES = makefile.in" | \ |
|
|
|
|
to --condition AX_USE_CXX src/makefile.am |
|
|
|
|
else |
|
|
|
|
elif ! test -e src/makefile.am; then |
|
|
|
|
to --condition AX_USE_CXX src/makefile.am <<EOF |
|
|
|
|
${HEADER}bin_PROGRAMS = ${PACKAGE_NAME} |
|
|
|
|
|
|
|
|
@ -475,7 +503,7 @@ ${PACKAGE_NAME//-/_}_UIFILES = ui_${PACKAGE_NAME}.hxx |
|
|
|
|
|
|
|
|
|
## list all %.qrc resource files as qrc_%.cxx |
|
|
|
|
## note: if there exists a directory %, the file %.qrc is generated from that |
|
|
|
|
${PACKAGE_NAME//-/_}_RESOURCES = qrc_languages.cxx qrc_resources.cxx |
|
|
|
|
${PACKAGE_NAME//-/_}_RESOURCES = qrc_languages.cxx # qrc_resources.cxx |
|
|
|
|
|
|
|
|
|
## list all final translation files, list all supported languages here |
|
|
|
|
${PACKAGE_NAME//-/_}_TRANSLATIONS = \${LANGUAGE_FILE_BASE}_en.qm \\ |
|
|
|
@ -487,7 +515,7 @@ ${PACKAGE_NAME//-/_}_TRANSLATIONS = \${LANGUAGE_FILE_BASE}_en.qm \\ |
|
|
|
|
${PACKAGE_NAME//-/_}_TR_FILES = main.cxx version.cxx |
|
|
|
|
|
|
|
|
|
## automatic assembly, no need to change |
|
|
|
|
${PACKAGE_NAME//-/_}_SOURCES = ${swisssign_pin_entry_TR_FILES} ${BUILT_SOURCES} |
|
|
|
|
${PACKAGE_NAME//-/_}_SOURCES = \${${PACKAGE_NAME//-/_}_TR_FILES} \${BUILT_SOURCES} |
|
|
|
|
|
|
|
|
|
## automatic assembly, no need to change |
|
|
|
|
BUILT_SOURCES = \${${PACKAGE_NAME//-/_}_MOCFILES} \ |
|
|
|
@ -510,6 +538,89 @@ EXTRA_DIST = \${EXTRA_DIST_TR} \ |
|
|
|
|
LANGUAGE_FILES = \${EXTRA_DIST_TR} \${${PACKAGE_NAME//-/_}_TR_FILES} |
|
|
|
|
|
|
|
|
|
MAINTAINERCLEANFILES = makefile.in |
|
|
|
|
EOF |
|
|
|
|
to --condition AX_USE_CXX src/main.cxx <<EOF |
|
|
|
|
${CHEADER}#include <${PACKAGE_NAME}.hxx> |
|
|
|
|
#include <QApplication> |
|
|
|
|
#include <QCommandLineParser> |
|
|
|
|
#include <iostream> |
|
|
|
|
|
|
|
|
|
int main(int argc, char *argv[]) try { |
|
|
|
|
QApplication a(argc, argv); |
|
|
|
|
QCommandLineParser parser; |
|
|
|
|
parser.addHelpOption(); |
|
|
|
|
parser.process(a); |
|
|
|
|
QStringList scripts(parser.positionalArguments()); |
|
|
|
|
${PackageName} w; |
|
|
|
|
w.show(); |
|
|
|
|
return a.exec(); |
|
|
|
|
} catch (std::exception &x) { |
|
|
|
|
std::cerr<<"**** error: "<<x.what()<<std::endl; |
|
|
|
|
return 1; |
|
|
|
|
} |
|
|
|
|
EOF |
|
|
|
|
to --condition AX_USE_CXX src/${PACKAGE_NAME}.hxx <<EOF |
|
|
|
|
${CHEADER}#ifndef ${PackageName^^}_HXX |
|
|
|
|
#define ${PackageName^^}_HXX |
|
|
|
|
|
|
|
|
|
#include <QMainWindow> |
|
|
|
|
#include <ui_${PACKAGE_NAME}.hxx> |
|
|
|
|
|
|
|
|
|
/// Main Window |
|
|
|
|
/** Main window for ${PACKAGE_NAME} */ |
|
|
|
|
class ${PackageName}: public QMainWindow, protected Ui::${PackageName} { |
|
|
|
|
Q_OBJECT; |
|
|
|
|
public: |
|
|
|
|
explicit ${PackageName}(QWidget *parent = 0): QMainWindow(parent) { |
|
|
|
|
setupUi(this); |
|
|
|
|
} |
|
|
|
|
virtual ~${PackageName}() {} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
|
EOF |
|
|
|
|
to --condition AX_USE_CXX src/${PACKAGE_NAME}.ui <<EOF |
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?> |
|
|
|
|
<ui version="4.0"> |
|
|
|
|
<class>${PackageName}</class> |
|
|
|
|
<widget class="QMainWindow" name="${PackageName}"> |
|
|
|
|
<property name="geometry"> |
|
|
|
|
<rect> |
|
|
|
|
<x>0</x> |
|
|
|
|
<y>0</y> |
|
|
|
|
<width>800</width> |
|
|
|
|
<height>600</height> |
|
|
|
|
</rect> |
|
|
|
|
</property> |
|
|
|
|
<property name="windowTitle"> |
|
|
|
|
<string>${PackageName}</string> |
|
|
|
|
</property> |
|
|
|
|
<widget class="QWidget" name="centralwidget"/> |
|
|
|
|
<widget class="QMenuBar" name="menubar"> |
|
|
|
|
<property name="geometry"> |
|
|
|
|
<rect> |
|
|
|
|
<x>0</x> |
|
|
|
|
<y>0</y> |
|
|
|
|
<width>800</width> |
|
|
|
|
<height>22</height> |
|
|
|
|
</rect> |
|
|
|
|
</property> |
|
|
|
|
</widget> |
|
|
|
|
<widget class="QStatusBar" name="statusbar"/> |
|
|
|
|
</widget> |
|
|
|
|
<resources/> |
|
|
|
|
<connections/> |
|
|
|
|
</ui> |
|
|
|
|
EOF |
|
|
|
|
to --condition AX_USE_CXX src/languages.qrc <<EOF |
|
|
|
|
<RCC> |
|
|
|
|
<qresource prefix="/language"> |
|
|
|
|
<file>${PACKAGE_NAME}_de.qm</file> |
|
|
|
|
<file>${PACKAGE_NAME}_fr.qm</file> |
|
|
|
|
<file>${PACKAGE_NAME}_it.qm</file> |
|
|
|
|
<file>${PACKAGE_NAME}_en.qm</file> |
|
|
|
|
</qresource> |
|
|
|
|
</RCC> |
|
|
|
|
EOF |
|
|
|
|
fi |
|
|
|
|
to --condition AX_USE_CXX src/version.hxx <<EOF |
|
|
|
@ -591,10 +702,20 @@ namespace NAMESPACE { |
|
|
|
|
EOF |
|
|
|
|
echo "${HEADER}MAINTAINERCLEANFILES = makefile.in" | to --condition AX_USE_SCRIPTS scripts/makefile.am |
|
|
|
|
echo "${HEADER}MAINTAINERCLEANFILES = makefile.in" | to --condition AX_USE_DOXYGEN doc/makefile.am |
|
|
|
|
to --condition AX_USE_CPPUNIT test/makefile.am <<EOF |
|
|
|
|
${HEADER}AM_CPPFLAGS = -I\${top_srcdir}/src -I\${top_builddir}/src |
|
|
|
|
to --condition 'AX_BUILD_TEST|AX_USE_CPPUNIT' test/makefile.am <<EOF |
|
|
|
|
${HEADER}$(if testtag AX_USE_CXX; then |
|
|
|
|
cat <<EOF2 |
|
|
|
|
AM_CPPFLAGS = -I\${top_srcdir}/src -I\${top_builddir}/src |
|
|
|
|
AM_LDFLAGS = -L\${abs_top_builddir}/src/.libs |
|
|
|
|
$(if testtag AX_USE_LIBTOOL; then |
|
|
|
|
cat <<EOF3 |
|
|
|
|
LDADD = -l${PACKAGE_NAME#lib} |
|
|
|
|
EOF3 |
|
|
|
|
fi) |
|
|
|
|
EOF2 |
|
|
|
|
fi) |
|
|
|
|
|
|
|
|
|
TESTS = |
|
|
|
|
|
|
|
|
|
MAINTAINERCLEANFILES = makefile.in |
|
|
|
|
EOF |
|
|
|
@ -657,7 +778,7 @@ if testtag AX_USE_DOXYGEN; then |
|
|
|
|
if testtag AX_BUILD_HTML; then |
|
|
|
|
doxyadd INPUT "@top_srcdir@/html" |
|
|
|
|
fi |
|
|
|
|
if testtag AX_USE_CPPUNIT; then |
|
|
|
|
if testtag AX_BUILD_TEST AX_USE_CPPUNIT; then |
|
|
|
|
doxyadd INPUT "@top_srcdir@/test" |
|
|
|
|
fi |
|
|
|
|
doxyreplace FILE_PATTERNS '*.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.idl *.ddl *.odl *.h *.hh *.hxx *.hpp *.h++ *.cs *.d *.php *.php4 *.php5 *.phtml *.inc *.m *.markdown *.md *.mm *.dox *.py *.f90 *.f *.for *.tcl *.vhd *.vhdl *.ucf *.qsf *.as *.js *.wt' |
|
|
|
@ -698,11 +819,12 @@ if testtag AX_USE_DEBIAN_PACKAGING; then |
|
|
|
|
|
|
|
|
|
-- @AUTHOR@ @BUILD_DATE@ |
|
|
|
|
EOF |
|
|
|
|
BUILD_DEPENDS="debhelper, subversion, svn2cl, pkg-config, automake, libtool, 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)" |
|
|
|
|
to debian/control.in <<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 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) |
|
|
|
|
Build-Depends: ${BUILD-DEPENDS} |
|
|
|
|
|
|
|
|
|
Package: @PACKAGE_NAME@ |
|
|
|
|
Section: $(if testtag AX_USE_LIBTOOL; then echo "libs"; fi) |
|
|
|
@ -716,7 +838,7 @@ $( if testtag AX_USE_LIBTOOL; then |
|
|
|
|
Package: @PACKAGE_NAME@-dev |
|
|
|
|
Section: libdevel |
|
|
|
|
Architecture: any |
|
|
|
|
Depends: @PACKAGE_NAME@ (= \${binary:Version}) |
|
|
|
|
Depends: @PACKAGE_NAME@ (= \${binary:Version}), ${BUILD-DEPENDS} |
|
|
|
|
Description: @DESCRIPTION@ - Development Package |
|
|
|
|
@README_DEB@ |
|
|
|
|
EOF2 |
|
|
|
@ -907,3 +1029,8 @@ fi |
|
|
|
|
if test "$build" -eq 1; then |
|
|
|
|
make $buildtarget |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
#### Build In Docker If User Requires #### |
|
|
|
|
if test "$docker" -eq 1; then |
|
|
|
|
./build-in-docker.sh |
|
|
|
|
fi |
|
|
|
|