new build rules, same changes as in ticket 12 of mrw-c++; refs #14

master
Marc Wäckerlin 9 years ago
parent 48e9184f11
commit 72169a5779
  1. 22
      AUTHORS
  2. 295
      ChangeLog
  3. 2
      INSTALL
  4. 2
      README
  5. 133
      ax_cxx_compile_stdcxx_11.m4
  6. 91
      configure.ac
  7. 4
      debian/changelog.in
  8. 73
      debian/control
  9. 21
      debian/control.in
  10. 98
      debian/rules
  11. 6
      doc/doxyfile.in
  12. 6
      doc/makefile.am
  13. 34
      libxml-cxx.spec.in
  14. 34
      makefile.am
  15. 6
      src/libxml-cxx.pc.in
  16. 6
      src/version.cxx.in

@ -1,21 +1 @@
<address>
<name>
<first>Marc</first>
<middle>Roman</middle>
<last>Wäckerlin</last>
</name>
<location>
<line>SwissSign AG</line>
<line>Pfingstweidstrasse 60b</line>
<line>8005 Zürich</line>
</location>
<country>Schweiz</country>
<email>marc@waeckerlin.org</email>
<email>marc.waeckerlin@swisssign.com</email>
<url>http://dev.swisssign.com/trac/libxml-cxx</url>
<url>http://marc.wäckerlin.ch</url>
<url>http://marc.waeckerlin.org</url>
<url>http://dev.swisssign.com</url>
<url>http://swissign.com</url>
<url>http://swissign.ch</url>
</address>
Marc Wäckerlin (http://marc.waeckerlin.org) <marc@waeckerlin.org>

@ -0,0 +1,295 @@
2013-01-25 14:37 marc
* libxml-cxx.spec.in: fix fedora-18 bug; closes #13
2012-09-18 12:37 marc
* libxml-cxx.spec.in: other dependency for fedora; refs #12
2012-07-06 11:54 marc
* src/xml-cxx/xml.hxx: bugfix; refs #11
2011-12-18 11:08 marc
* libxml-cxx.spec.in: use %_lib in rpm spec; refs #10
2011-11-18 16:02 marc
* test/optional_serialization_test.cxx: add output for optional
serialization test; closes #9
2011-11-10 10:27 marc
* configure.in, src/makefile.am: correct verion number; closes #5
2011-11-09 15:09 marc
* configure.in, doc/makefile.am, libxml-cxx.spec.in, makefile.am:
some cleanups; closes #5
2011-11-09 13:31 marc
* doc/makefile.am, libxml-cxx.spec.in, makefile.am: supports build
of RPM packages, tested on openSUSE; closes #5
2010-08-03 14:00 marc
* src/version.cxx.in: forgotten file, closes #6
2010-08-03 13:50 marc
* configure.in, src/makefile.am, src/xml-cxx/xml.hxx: closes #6
2010-06-01 13:37 marc
* install-32-bit-lin-win.sh: 32bit-build added, refs #5
2010-05-12 08:40 marc
* debian/changelog.in: SwissSign E-Mail, see #5
2010-05-12 08:30 marc
* debian/control: SwissSign E-Mail, see #5
2010-05-12 08:23 marc
* makefile.am: Back to chroot builds, see #5
2010-04-26 06:37 marc
* configure.in, libxml-cxx.spec.in, makefile.am: started with spec
file, refs #5
2010-04-16 11:48 marc
* makefile.am: build debian for all architectures, see #5
2010-04-15 13:51 marc
* debian/control: second debian package target was missing, see #5
2010-04-15 12:48 marc
* README, configure.in, debian, debian/changelog.in, debian/compat,
debian/control, debian/copyright, debian/dirs, debian/docs,
debian/libxml-cxx-dev.dirs, debian/libxml-cxx-dev.install,
debian/libxml-cxx.dirs, debian/libxml-cxx.doc-base.EX,
debian/libxml-cxx.install, debian/rules, debian/shlibs.local.ex,
debian/watch.ex, makefile.am, src/libxml-cxx.pc.in,
src/makefile.am: see #5 - done for debian
2010-03-31 15:13 marc
* INSTALL, doc/makefile.am, src/xml-cxx/xml.hxx, src/xml.cxx: new
conversions
2009-05-06 07:22 admin
* doc/examples/optional_serialization.cxx, src/xml-cxx/xml.hxx:
xml::Optional example added end extended
2009-05-06 07:13 admin
* doc/examples/contain_serialization.cxx, doc/examples/makefile.am,
doc/examples/optional_serialization.cxx, src/xml-cxx/xml.hxx,
src/xml.cxx, test/makefile.am,
test/optional_serialization_test.cxx: closes #1
2009-05-04 14:56 admin
* test/container_serialization_test.cxx,
test/serialization_test.cxx, test/xml_test.cxx: output cppunit to
xml for bitten
2009-05-04 12:48
* COPYING: LGPL 3
2009-05-04 12:47
* COPYING, README, doc/doxyfile.in, doc/examples/address.cxx,
doc/examples/contain_serialization.cxx,
doc/examples/inherit_serialization.cxx,
doc/examples/list_serialization.cxx,
doc/examples/node_macros.cxx, doc/examples/serialization.cxx,
src/makefile.am, src/xml-cxx/any.hxx, src/xml-cxx/xml.hxx,
src/xml.cxx, test/container_serialization_test.cxx,
test/makefile.am: start of xml::Optional
2009-04-30 15:10
* doc/examples/list_serialization.cxx, src/xml-cxx/any.hxx,
src/xml-cxx/xml.hxx, src/xml.cxx: stmped
2009-04-30 08:28
* doc/examples/list_serialization.cxx, src/xml-cxx/xml.hxx,
src/xml.cxx: first approach to list - requires work -> are the
items xml::Serialize?
2009-04-29 11:58
* doc/examples/list_serialization.cxx, src/xml-cxx/xml.hxx,
src/xml.cxx: Metatemplateprogramming is really cool
2009-04-28 07:36
* src/xml-cxx/xml.hxx, src/xml.cxx, test/serialization_test.cxx:
boost::any instead of macros - first pieces of meta template
programming
2009-04-27 11:34
* src/xml-cxx/xml.hxx, src/xml.cxx: using boost::any for storing
member pointers to any type
2009-04-27 10:59
* doc/examples/list_serialization.cxx: new file
2009-04-27 10:48
* doc/examples/contain_serialization.cxx,
doc/examples/inherit_serialization.cxx, doc/examples/makefile.am,
src/xml-cxx/xml.hxx, src/xml.cxx, test/serialization_test.cxx:
serialization works for containment and inheritance
2009-04-24 15:12
* doc/examples/contain_serialization.cxx, src/xml-cxx/xml.hxx,
src/xml.cxx: containment can be serialized
2009-04-24 07:13
* doc/examples/contain_serialization.cxx,
doc/examples/inherit_serialization.cxx, doc/examples/makefile.am,
src/xml-cxx/xml.hxx, src/xml.cxx, test/serialization_test.cxx:
serialization nearly ready for containment
2009-04-23 15:10
* doc/examples/inherit_serialization.cxx,
doc/examples/serialization.cxx, src/xml-cxx/xml.hxx, src/xml.cxx,
test/serialization_test.cxx: better serialization, but test does
not work actually
2009-04-23 06:41
* doc/examples/address.cxx, doc/examples/node_macros.cxx,
doc/examples/serialization.cxx, src/xml-cxx/xml.hxx, src/xml.cxx:
node macros added (usefule but unfinished)
2009-04-22 16:10
* src/xml-cxx/xml.hxx, src/xml.cxx, test/makefile.am,
test/xml_test.cxx: serialization; more docu
2009-04-22 08:25
* AUTHORS, README, configure.in, doc/doxyfile.in, doc/examples,
doc/examples/address.cxx, doc/examples/makefile.am,
doc/makefile.am, src/makefile.am, src/xml-cxx/xml.hxx,
src/xml.cxx: more docu
2009-04-21 07:12
* src/xml-cxx/xml.hxx, src/xml.cxx: more docu
2009-04-20 06:42
* doc/doxyfile.in, src/xml-cxx/xml.hxx, src/xml.cxx: more docu;
other behaviour for parent
2009-04-09 14:11
* src/xml.cxx: pretty print
2009-04-09 13:32
* src/xml-cxx/xml.hxx, src/xml.cxx: pretty print for templates
2009-04-09 10:53
* src/xml-cxx/xml.hxx, src/xml.cxx, test/xml_test.cxx: check node
number limits
2009-04-09 07:01
* src/xml-cxx/xml.hxx, src/xml.cxx, test/xml_test.cxx: new tests,
cleanup, prepared for node-limits
2009-04-08 15:01
* install-64-and-32-bit-linux.sh, src/xml-cxx/xml.hxx, src/xml.cxx:
extendions and corrections
2009-04-08 06:44
* src/xml-cxx/xml.hxx, src/xml.cxx, test/xml_test.cxx: much more
tests; all exceptions in readin tested
2009-04-07 14:58
* src/xml.cxx: fixed empty attribute reading bug
2009-04-07 14:31
* configure.in, doc/makefile.am, install-64-and-32-bit-linux.sh,
src/xml-cxx/xml.hxx, src/xml.cxx: some bugfixes
2009-04-07 06:59
* src/xml-cxx/xml.hxx, src/xml.cxx: documentation
2009-04-06 14:57
* install-64-and-32-bit-linux.sh, src/xml-cxx/xml.hxx, src/xml.cxx:
get list of child nodes
2009-04-06 07:08
* src/xml-cxx/xml.hxx, src/xml.cxx: some documentation and new
feartures for attributes
2009-04-03 14:02
* src/xml-cxx/xml.hxx, src/xml.cxx: UnsingedInteger
2009-04-03 07:07
* doc/doxyfile.in, doc/makefile.am, makefile.am,
src/xml-cxx/xml.hxx, src/xml.cxx: Accept but ignore special tags:
<!, <?; Start of class UnsingedInteger; success: make distcheck
2009-04-02 14:54
* doc/makefile.am: rebuild possible after clean
2009-04-02 14:47
* doc/makefile.am, src/makefile.am, src/xml.cxx, test/xml_test.cxx:
nearly distclean
2009-04-02 14:36
* configure.in, doc/makefile.am, src/xml-cxx, src/xml-cxx/xml.hxx,
src/xml.hxx: Zwischenstand
2009-04-02 14:01
* COPYING, INSTALL, configure.in, doc/makefile.am, src/makefile.am,
test/makefile.am: first working and tested release
2009-04-02 13:24
* AUTHORS, ChangeLog, NEWS, README, bootstrap.sh, configure.in,
doc, doc/doxyfile.in, doc/makefile.am, makefile.am, src,
src/makefile.am, src/xml.cxx, src/xml.hxx, test,
test/xml_test.cxx: import
2009-04-02 11:50
* .: start

@ -1 +1 @@
/usr/share/automake-1.11/INSTALL
/usr/share/automake-1.14/INSTALL

@ -1,4 +1,4 @@
This is a C++ class for reading and writing XML structures.
This is a C++ class for reading and writing XML structures
All informaton can be found in the generated doxygen project documentation.

@ -0,0 +1,133 @@
# ============================================================================
# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
# ============================================================================
#
# SYNOPSIS
#
# AX_CXX_COMPILE_STDCXX_11([ext|noext],[mandatory|optional])
#
# DESCRIPTION
#
# Check for baseline language coverage in the compiler for the C++11
# standard; if necessary, add switches to CXXFLAGS to enable support.
#
# The first argument, if specified, indicates whether you insist on an
# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
# -std=c++11). If neither is specified, you get whatever works, with
# preference for an extended mode.
#
# The second argument, if specified 'mandatory' or if left unspecified,
# indicates that baseline C++11 support is required and that the macro
# should error out if no mode with that support is found. If specified
# 'optional', then configuration proceeds regardless, after defining
# HAVE_CXX11 if and only if a supporting mode is found.
#
# LICENSE
#
# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
# Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.
#serial 3
m4_define([_AX_CXX_COMPILE_STDCXX_11_testbody], [
template <typename T>
struct check
{
static_assert(sizeof(int) <= sizeof(T), "not big enough");
};
typedef check<check<bool>> right_angle_brackets;
int a;
decltype(a) b;
typedef check<int> check_type;
check_type c;
check_type&& cr = static_cast<check_type&&>(c);
auto d = a;
])
AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [dnl
m4_if([$1], [], [],
[$1], [ext], [],
[$1], [noext], [],
[m4_fatal([invalid argument `$1' to AX_CXX_COMPILE_STDCXX_11])])dnl
m4_if([$2], [], [ax_cxx_compile_cxx11_required=true],
[$2], [mandatory], [ax_cxx_compile_cxx11_required=true],
[$2], [optional], [ax_cxx_compile_cxx11_required=false],
[m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX_11])])dnl
AC_LANG_PUSH([C++])dnl
ac_success=no
AC_CACHE_CHECK(whether $CXX supports C++11 features by default,
ax_cv_cxx_compile_cxx11,
[AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
[ax_cv_cxx_compile_cxx11=yes],
[ax_cv_cxx_compile_cxx11=no])])
if test x$ax_cv_cxx_compile_cxx11 = xyes; then
ac_success=yes
fi
m4_if([$1], [noext], [], [dnl
if test x$ac_success = xno; then
for switch in -std=gnu++11 -std=gnu++0x; do
cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
$cachevar,
[ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS $switch"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
[eval $cachevar=yes],
[eval $cachevar=no])
CXXFLAGS="$ac_save_CXXFLAGS"])
if eval test x\$$cachevar = xyes; then
CXXFLAGS="$CXXFLAGS $switch"
ac_success=yes
break
fi
done
fi])
m4_if([$1], [ext], [], [dnl
if test x$ac_success = xno; then
for switch in -std=c++11 -std=c++0x; do
cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
$cachevar,
[ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS $switch"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
[eval $cachevar=yes],
[eval $cachevar=no])
CXXFLAGS="$ac_save_CXXFLAGS"])
if eval test x\$$cachevar = xyes; then
CXXFLAGS="$CXXFLAGS $switch"
ac_success=yes
break
fi
done
fi])
AC_LANG_POP([C++])
if test x$ax_cxx_compile_cxx11_required = xtrue; then
if test x$ac_success = xno; then
AC_MSG_ERROR([*** A compiler with support for C++11 language features is required.])
fi
else
if test x$ac_success = xno; then
HAVE_CXX11=0
AC_MSG_NOTICE([No compiler with C++11 support was found])
else
HAVE_CXX11=1
AC_DEFINE(HAVE_CXX11,1,
[define if the compiler supports basic C++11 syntax])
fi
AC_SUBST(HAVE_CXX11)
fi
])

@ -1,4 +1,10 @@
# $Id$
m4_define(x_package_name, libxml-cxx)
m4_define(x_major, 1)
m4_define(x_minor, 1)
m4_include(ax_cxx_compile_stdcxx_11.m4)
AC_ALIAS([AC_DEFINE_DIR], [AX_DEFINE_DIR])
AC_DEFUN([AX_DEFINE_DIR], [
prefix_NONE=
@ -15,46 +21,38 @@ dnl refers to ${prefix}. Thus we have to use `eval' twice.
test "$exec_prefix_NONE" && exec_prefix=NONE
])
AC_INIT([README])
m4_define(x_least, m4_esyscmd_s(
LEAST="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-svn-checkout"
for path in . .. ../..; do
if svn info $path 2>&1 > /dev/null; then
LEAST=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p')
(cd $path && svn2cl)
break;
fi
done
echo -n $LEAST
))
m4_define(x_bugreport, m4_esyscmd_s(
head -1 AUTHORS | \
sed -n 's,.*<\([-_.a-z0-9A-Z]*@[-_.a-z0-9A-Z]*\)>.*,\1,gp'
))
AC_INIT(x_package_name, x_major.x_minor.x_least, x_bugreport, x_package_name)
AM_INIT_AUTOMAKE([1.9 tar-pax])
SRC_DIR=src
TST_DIR=test
DOC_DIR=doc
m4_define(x_packagename, libxml-cxx)
m4_define(x_major, 1)
m4_define(x_minor, 1)
PACKAGENAME=x_packagename
MAJOR=x_major
MINOR=x_minor
BUILDDATE=$(date "+%d.%m.%Y/%H.%M")
if svn info . 2>&1 > /dev/null; then
LEAST=$(LANG= svn info $path | sed -n 's/Revision: //p')
break;
else
LEAST=[$(pwd | sed -n 's,^.*/'${PACKAGENAME}'-'${MAJOR}'\.'${MINOR}'\.\([0-9]*\).*$,\1,p')]
if test -z "${LEAST}"; then
LEAST="ERROR CANNOT DETERMINE REVISION NUMBER from $(pwd)"
fi
fi
AM_INIT_AUTOMAKE($PACKAGENAME, $MAJOR.$MINOR.$LEAST, [marc@waeckerlin.org])
# files to create
AC_CONFIG_FILES([makefile ${PACKAGENAME}.spec src/version.cxx
src/makefile test/makefile doc/examples/makefile
AC_CONFIG_FILES([makefile ${PACKAGE_NAME}.spec src/version.cxx
src/makefile test/makefile doc/examples/makefile
doc/doxyfile doc/makefile
src/${PACKAGENAME}.pc debian/changelog])
# copy M4 to shell
AC_SUBST(MAJOR)
AC_SUBST(MINOR)
AC_SUBST(LEAST)
AC_SUBST(BUILDDATE)
src/${PACKAGE_NAME}.pc debian/changelog debian/control])
# libtool versioning
LIB_MAJOR=m4_eval(x_major+x_minor)
LIB_MINOR=${LEAST}
LIB_MINOR=x_least
LIB_LEAST=x_minor
LIB_VERSION="${LIB_MAJOR}:${LIB_MINOR}:${LIB_LEAST}"
AC_SUBST(LIB_VERSION)
@ -66,19 +64,14 @@ AC_SUBST(HOME)
AX_DEFINE_DIR([DATADIR], [datadir])
#AC_SUBST(DATADIR)
# macros
README=README
AC_SUBST_FILE(README)
CHANGE_LOG=ChangeLog
AC_SUBST_FILE(CHANGE_LOG)
AM_CPPFLAGS="-DPACKAGEVERSION='\"${VERSION}\"' -DPACKAGENAME='\"${PACKAGENAME}\"'"
AM_CPPFLAGS="-DPACKAGEPACKAGE_VERSION='\"${PACKAGE_VERSION}\"' -DPACKAGE_NAME='\"${PACKAGE_NAME}\"'"
# Get rid of that stupid -O2 -g opions!
CXXFLAGS="${CXXFLAGS:-}"
# languages
AC_LANG(C++)
AX_CXX_COMPILE_STDCXX_11(noext, optional)
# programs
AC_PROG_CXX
@ -115,6 +108,26 @@ esac
AM_CONDITIONAL(MINGW32, test "$MINGW32" = "yes")
AM_CONDITIONAL(MAC, test "$MAC" = "yes")
# macros
README=$(tail -n +3 README)
README_DEB=$(tail -n +3 README | sed -e 's/^$/./g' -e 's/^/ /g')
DESCRIPTION=$(head -1 README)
AUTHOR=$(head -1 AUTHORS)
AC_SUBST(AUTHOR)
_AM_SUBST_NOTMAKE([AUTHOR])
AC_SUBST(DESCRIPTION)
_AM_SUBST_NOTMAKE([DESCRIPTION])
AC_SUBST(README)
_AM_SUBST_NOTMAKE([README])
AC_SUBST(README_DEB)
_AM_SUBST_NOTMAKE([README_DEB])
DISTRO=$(lsb_release -sc)
AC_SUBST(DISTRO)
BUILD_NUMBER=${BUILD_NUMBER:-1}
AC_SUBST(BUILD_NUMBER)
BUILD_DATE=$(date -R)
AC_SUBST(BUILD_DATE)
# export macros
SRCDIR=${srcdir}
AC_SUBST(SRCDIR)
@ -123,13 +136,13 @@ AC_SUBST(TST_DIR)
AC_SUBST(DOC_DIR)
AC_SUBST(HAVE_DOT)
AC_SUBST(THREADS)
AC_SUBST(PACKAGENAME)
AC_SUBST(AM_CXXFLAGS)
AC_SUBST(AM_CPPFLAGS)
AC_SUBST(LIBS)
# create output
AC_OUTPUT
# infos and warnings
if test "$have_doxygen" = "no"; then
AC_MSG_WARN([Missing program doxygen!

@ -1,5 +1,5 @@
@PACKAGE@ (@VERSION@-1) unstable; urgency=low
@PACKAGE@ (@PACKAGE_VERSION@~@DISTRO@.@BUILD_NUMBER@) @DISTRO@; urgency=low
* See https://dev.marc.waeckerlin.org/projects/@PACKAGE@ for changes
-- Marc Waeckerlin (SwissSign AG) <marc.waeckerlin@tech.swisssign.com> Wed, 07 Apr 2010 10:23:02 +0200
-- @AUTHOR@ @BUILD_DATE@

73
debian/control vendored

@ -1,73 +0,0 @@
Source: libxml-cxx
Priority: extra
Maintainer: Marc Wäckerlin (SwissSign AG) <marc.waeckerlin@tech.swisssign.com>
Build-Depends: debhelper (>= 7), autotools-dev
Standards-Version: 3.8.1
Section: libs
Homepage: https://dev.marc.waeckerlin.org/projects/libxml-cxx
Package: libxml-cxx-dev
Section: libdevel
Architecture: any
Depends: libxml-cxx (= ${binary:Version})
Description: C++ XML Library
This is a C++ class for reading and writing XML structures.
.
All informaton can be found in the generated doxygen project documentation.
.
Rationale: The initial idea was to map C++ data structures to XML
files for configuration files that can easily be edited by hand.
.
This library does not need any kind of C++ code parser or special pre
compiler. You can specify a schema entirly in native C++. The schema
is verified when XML is read and exceptions are thrown when the XML to
be parse is invalid. Exceptions specify exactly the location and
reason of the problem, so that the editor of the XML file can easily
find and correct the problem.
.
C++ classes can inherit xml::Serialize and become serializable this
way. All you need to do is to overwrite one single method, where you
declare XML tag names for the class name and for all members.
.
(More rationale: See also "related Pages" in the doxygen project documentation)
.
Structure of the files:
src: The source code of the library
doc/html: Doxygen documentation oft the library usage
doc/examples: Example code (included in doxygen documentation)
test: CppUnit test files - can also be taken as examples
.
Project URL: https://dev.marc.waeckerlin.org/projects/libxml-cxx
Package: libxml-cxx
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: C++ XML Library
This is a C++ class for reading and writing XML structures.
.
All informaton can be found in the generated doxygen project documentation.
.
Rationale: The initial idea was to map C++ data structures to XML
files for configuration files that can easily be edited by hand.
.
This library does not need any kind of C++ code parser or special pre
compiler. You can specify a schema entirly in native C++. The schema
is verified when XML is read and exceptions are thrown when the XML to
be parse is invalid. Exceptions specify exactly the location and
reason of the problem, so that the editor of the XML file can easily
find and correct the problem.
.
C++ classes can inherit xml::Serialize and become serializable this
way. All you need to do is to overwrite one single method, where you
declare XML tag names for the class name and for all members.
.
(More rationale: See also "related Pages" in the doxygen project documentation)
.
Structure of the files:
src: The source code of the library
doc/html: Doxygen documentation oft the library usage
doc/examples: Example code (included in doxygen documentation)
test: CppUnit test files - can also be taken as examples
.
Project URL: https://dev.marc.waeckerlin.org/projects/libxml-cxx

21
debian/control.in vendored

@ -0,0 +1,21 @@
Source: @PACKAGE_NAME@
Priority: extra
Maintainer: @AUTHOR@
Build-Depends: debhelper (>= 7), pkg-config, autotools-dev, doxygen, graphviz, lsb-release
Standards-Version: 3.8.1
Section: libs
Homepage: https://dev.marc.waeckerlin.org/projects/libxml-cxx
Package: @PACKAGE_NAME@-dev
Section: libdevel
Architecture: any
Depends: @PACKAGE_NAME@ (= ${binary:Version})
Description: @DESCRIPTION@
@README_DEB@
Package: @PACKAGE_NAME@
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: @DESCRIPTION@
@README_DEB@

98
debian/rules vendored

@ -1,4 +1,4 @@
#!/usr/bin/make -f
!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
@ -9,97 +9,5 @@
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
CROSS= --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
else
CROSS= --build $(DEB_BUILD_GNU_TYPE)
endif
# shared library versions, option 1
version=2.0.5
major=2
# option 2, assuming the library is created as src/.libs/libfoo.so.2.0.5 or so
#version=`ls src/.libs/lib*.so.* | \
# awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
#major=`ls src/.libs/lib*.so.* | \
# awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`
config.status: configure
dh_testdir
ifneq "$(wildcard /usr/share/misc/config.sub)" ""
cp -f /usr/share/misc/config.sub config.sub
endif
ifneq "$(wildcard /usr/share/misc/config.guess)" ""
cp -f /usr/share/misc/config.guess config.guess
endif
./configure $(CROSS) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info CFLAGS="$(CFLAGS)"
# does not work: LDFLAGS="-Wl,-z,defs"
build: build-stamp
build-stamp: config.status
dh_testdir
$(MAKE)
touch $@
clean:
dh_testdir
dh_testroot
rm -f build-stamp
[ ! -f [Mm]akefile ] || $(MAKE) distclean
rm -f config.sub config.guess
dh_clean
install: build
dh_testdir
dh_testroot
dh_prep
dh_installdirs
$(MAKE) prefix=$(CURDIR)/debian/tmp/usr install
# Build architecture-independent files here.
binary-indep: install
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: install
dh_testdir
dh_testroot
dh_installchangelogs ChangeLog
dh_installdocs
dh_installexamples
dh_install
# dh_installmenu
# dh_installdebconf
# dh_installlogrotate
# dh_installemacsen
# dh_installpam
# dh_installmime
# dh_installinit
# dh_installcron
# dh_installinfo
# dh_installman
dh_link
dh_strip
dh_compress
dh_fixperms
# dh_perl
# dh_python
dh_makeshlibs
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install
%:
dh $@

@ -25,13 +25,13 @@ DOXYFILE_ENCODING = UTF-8
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
# by quotes) that should identify the project.
PROJECT_NAME = "Projektdokumentation @PACKAGENAME@"
PROJECT_NAME = "Projektdokumentation @PACKAGE_NAME@"
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER = "Version @MAJOR@.@MINOR@.@LEAST@"
PROJECT_NUMBER = "Version @PACKAGE_VERSION@"
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
@ -1295,7 +1295,7 @@ TAGFILES =
# When a file name is specified after GENERATE_TAGFILE, doxygen will create
# a tag file that is based on the input files it reads.
GENERATE_TAGFILE = @PACKAGENAME@.doxytag
GENERATE_TAGFILE = @PACKAGE_NAME@.doxytag
# If the ALLEXTERNALS tag is set to YES all external classes will be listed
# in the class index. If set to NO only the inherited external classes

@ -26,10 +26,10 @@ if PEDANTIC
test \! -s doxygen.errors
endif
# cd latex && make
# mv latex/refman.pdf @PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@.pdf
# mv latex/refman.pdf @PACKAGE_NAME@-@PACKAGE_VERSION@.pdf
CLEANFILES = doxygen.errors @PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@.pdf
DISTCLEANFILES = @PACKAGENAME@.doxytag
CLEANFILES = doxygen.errors @PACKAGE_NAME@-@PACKAGE_VERSION@.pdf
DISTCLEANFILES = @PACKAGE_NAME@.doxytag
MAINTAINERCLEANFILES = makefile.in
distclean-local:

@ -1,10 +1,10 @@
Summary: XML C++ Library
Name: @PACKAGENAME@
Version: @VERSION@
Name: @PACKAGE_NAME@
Version: @PACKAGE_VERSION@
Release: 1
License: LGPL
Group: Development/Libraries/C++
URL: https://dev.marc.waeckerlin.org/projects/@PACKAGENAME@
URL: https://dev.marc.waeckerlin.org/projects/@PACKAGE_NAME@
Source0: %{name}-%{version}.tar.gz
BuildRequires: subversion gcc-c++ doxygen graphviz texlive automake autoconf libtool make
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
@ -23,7 +23,7 @@ This package contains only the shared libraries required at runtime.
%prep
%setup -q
./configure --prefix=/usr \
--docdir=/usr/share/doc/packages/@PACKAGENAME@ \
--docdir=/usr/share/doc/packages/@PACKAGE_NAME@ \
--libdir=/usr/%_lib
%build
@ -37,19 +37,19 @@ rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
/usr/%_lib/@PACKAGENAME@.so.*
/usr/%_lib/@PACKAGE_NAME@.so.*
%doc
/usr/share/doc/packages/@PACKAGENAME@/AUTHORS
/usr/share/doc/packages/@PACKAGENAME@/COPYING
/usr/share/doc/packages/@PACKAGENAME@/ChangeLog
/usr/share/doc/packages/@PACKAGENAME@/INSTALL
/usr/share/doc/packages/@PACKAGENAME@/NEWS
/usr/share/doc/packages/@PACKAGENAME@/README
/usr/share/doc/packages/@PACKAGE_NAME@/AUTHORS
/usr/share/doc/packages/@PACKAGE_NAME@/COPYING
/usr/share/doc/packages/@PACKAGE_NAME@/ChangeLog
/usr/share/doc/packages/@PACKAGE_NAME@/INSTALL
/usr/share/doc/packages/@PACKAGE_NAME@/NEWS
/usr/share/doc/packages/@PACKAGE_NAME@/README
%package devel
Summary: XML C++ Library (development files)
Group: Development/Libraries/C++
Requires: @PACKAGENAME@ = @VERSION@
Requires: @PACKAGE_NAME@ = @PACKAGE_VERSION@
%description devel
@ -59,15 +59,15 @@ This Package contains all files required for developement.
%files devel
%defattr(-,root,root,-)
/usr/%_lib/@PACKAGENAME@.so
/usr/%_lib/@PACKAGENAME@.a
/usr/%_lib/@PACKAGE_NAME@.so
/usr/%_lib/@PACKAGE_NAME@.a
/usr/%_lib/pkgconfig
/usr/%_lib/@PACKAGENAME@.la
/usr/%_lib/@PACKAGE_NAME@.la
/usr/include/
/usr/share/pkgconfig
%doc
/usr/share/doc/packages/@PACKAGENAME@/html
/usr/share/doc/packages/@PACKAGENAME@/@PACKAGENAME@.spec
/usr/share/doc/packages/@PACKAGE_NAME@/html
/usr/share/doc/packages/@PACKAGE_NAME@/@PACKAGE_NAME@.spec
%changelog
* Wed Apr 21 2010 Marc Wäckerlin <marc@dev0002.int.swisssign.net> - cxx-1

@ -20,15 +20,15 @@ EXTRA_DIST = bootstrap.sh debian
DISTCLEANFILES = debian/changelog
deb: dist
tar xzvf @PACKAGE@-@VERSION@.tar.gz
cd @PACKAGE@-@VERSION@ && dpkg-buildpackage
rm -rf @PACKAGE@-@VERSION@
tar xzvf @PACKAGE_TARNAME@-@PACKAGE_VERSION@.tar.gz
cd @PACKAGE_TARNAME@-@PACKAGE_VERSION@ && dpkg-buildpackage
rm -rf @PACKAGE_TARNAME@-@PACKAGE_VERSION@
doc_DATA = AUTHORS NEWS README COPYING INSTALL ChangeLog @PACKAGENAME@.spec
doc_DATA = AUTHORS NEWS README COPYING INSTALL ChangeLog @PACKAGE_NAME@.spec
RPMS = /usr/src/packages/RPMS/i586/@PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@-1.i586.rpm \
/usr/src/packages/RPMS/i586/@PACKAGENAME@-devel-@MAJOR@.@MINOR@.@LEAST@-1.i586.rpm \
/usr/src/packages/SRPMS/@PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@-1.src.rpm
RPMS = /usr/src/packages/RPMS/i586/@PACKAGE_NAME@-@PACKAGE_VERSION@-1.i586.rpm \
/usr/src/packages/RPMS/i586/@PACKAGE_NAME@-devel-@PACKAGE_VERSION@-1.i586.rpm \
/usr/src/packages/SRPMS/@PACKAGE_NAME@-@PACKAGE_VERSION@-1.src.rpm
.PHONY: release tag rpm webserver \
doc clean-local distclean-local dist-hool install-data-hook \
@ -38,23 +38,23 @@ release: tag webserver
tag: distcheck
cvs ci -R .
cvs tag -FR REL_@PACKAGENAME@-@MAJOR@-@MINOR@-@LEAST@ .
cvs tag -FR REL_@PACKAGE_NAME@-@PACKAGE_VERSION@ .
rpm: dist
cp @PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@.tar.gz \
cp @PACKAGE_TARNAME@-@PACKAGE_VERSION@.tar.gz \
/usr/src/packages/SOURCES/
rpmbuild -ba --clean @PACKAGENAME@.spec
rpmbuild -ba --clean @PACKAGE_NAME@.spec
deps = ${top_srcdir}/COPYING ${top_srcdir}/README ${top_srcdir}/INSTALL ${top_srcdir}/NEWS ${top_srcdir}/ChangeLog
clean-local:
- rm doxygen.err lib@PACKAGENAME@.doxytag
- rm @PACKAGENAME@-dev_@MAJOR@.@MINOR@.@LEAST@-*.deb \
@PACKAGENAME@_@MAJOR@.@MINOR@.@LEAST@-*.changes \
@PACKAGENAME@_@MAJOR@.@MINOR@.@LEAST@-1.tar.gz \
@PACKAGENAME@_@MAJOR@.@MINOR@.@LEAST@-1.dsc \
@PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@.tar.gz \
@PACKAGENAME@_@MAJOR@.@MINOR@.@LEAST@-*.deb
- rm doxygen.err lib@PACKAGE_NAME@.doxytag
- rm @PACKAGE_NAME@-dev_@PACKAGE_VERSION@-*.deb \
@PACKAGE_NAME@_@PACKAGE_VERSION@-*.changes \
@PACKAGE_TARNAME@_@PACKAGE_VERSION@-1.tar.gz \
@PACKAGE_NAME@_@PACKAGE_VERSION@-1.dsc \
@PACKAGE_TARNAME@-@PACKAGE_VERSION@.tar.gz \
@PACKAGE_NAME@_@PACKAGE_VERSION@-*.deb
distclean-local:
- rm -r ${top_builddir}/@DOC_DIR@/html/* ${top_builddir}/@DOC_DIR@/latex/*

@ -1,11 +1,11 @@
prefix=@PACKAGENAME@
prefix=@PACKAGE_NAME@
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: @PACKAGENAME@
Name: @PACKAGE_NAME@
Description: C++ wrappers around pcsc-lite, cryptoki, openssh
Version: @VERSION@
Version: @PACKAGE_VERSION@
Libs: -L${libdir} -lxml-cxx
Libs.private:
Cflags: -I${includedir}

@ -9,8 +9,8 @@
namespace xml {
std::string version() {
return "@PACKAGENAME@-@VERSION@";
return "@PACKAGE_NAME@-@PACKAGE_VERSION@";
}
const std::string WHAT("#(@) @PACKAGENAME@-@VERSION@");
const std::string IDENT("$Id: @PACKAGENAME@-@VERSION@ $");
const std::string WHAT("#(@) @PACKAGE_NAME@-@PACKAGE_VERSION@");
const std::string IDENT("$Id: @PACKAGE_NAME@-@PACKAGE_VERSION@ $");
}

Loading…
Cancel
Save