Commit Graph

427 Commits

Author SHA1 Message Date
Dodji Seketeli
56253ee20a Fix typo in CONTRIBUTING file
* CONTRIBUTING: Fix typo, courtesy of Mark Wielaard.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2013-08-21 11:53:12 +02:00
Dodji Seketeli
b9ea069f1d Remove autotools-generated files
* Makefile.in: Remove this autotools-generated file.  I know that
	people in the GCC-realm like storing these autotools-generated
	files into the source control system, but I believe in this day
	and age, this is annoying (to say the least) for the project
	developers for no good reason.  Requiring (the ubiquitous)
	autoconf for building from source is no big deal today, and typing
	"autoreconf" is not hard to do, really.  And it saves the
	developers for having to update a bunch of boilerplate
	automatically generated files into the source control system; this
	is really unnecessary noise and it is a commonly accepted good
	practice to avoid doing it these days.  To help people who do not
	know how to handle this, there is a COMPILING file in the source
	tree that explains how to build the project from sources.
	* aclocal.m4: Likewise.
	* configure: Likewise.
	* include/Makefile.in: Likewise.
	* src/Makefile.in: Likewise.
	* doc/Makefile.in: Likewise.
	* tests/Makefile.in: Likewise.
2013-08-20 00:05:07 +02:00
Dodji Seketeli
c325b3aa4a Add a new COMPILING file explaining how to build the package
* COMPILING: New file.
2013-08-19 23:52:15 +02:00
Dodji Seketeli
6d316b4438 Remove name of unused parameter in decl_base::traverse.
* src/abg-ir.c (decl_base::traverse): Remove name of unused parameter.
2013-08-14 17:20:02 +02:00
Dodji Seketeli
f437bfc04d install headers in $includedir/libabigail
* include/Makefile.am: Install headers in $includedir/libabigail
2013-08-14 17:12:54 +02:00
Dodji Seketeli
6c828d266e For usage from within GCC set header path to $includedir/libabigail
* abigail.m4:  The include path used for compilation goes to
	$includedir/libabigail.
2013-08-14 16:10:15 +02:00
Benjamin Kosnik
6684ad97ad Separate out bits from the ir header.
* include/abg-irfwd.h: Move to...
	* include/abg-fwd.h: ...this.

	* include/abg-ir.h (traverse_base): Move to...
	* include/abg-traverse.h: ...here. New.

	* include/abg-ir.h (location, location_manager, translation_unit):
	Move to...
	* include/abg-corpus.h: ...here.

	* include/Makefile.am: Adjust.
	* include/Makefile.in: Regenerate.
2013-08-14 15:07:19 +02:00
Benjamin Kosnik
9258b41534 Template naming compression.
* include/abg-ir.h: Template naming compressions.
	(class_template_decl): To class_tdecl.
	(function_template_decl): To function_tdecl.
	(template_type_parameter): To type_tparameter.
	(template_non_type_parameter): To non_type_tparameter.
	(template_template_parameter): To template_tparameter.
	(tmpl_parm_type_composition): To type_composition.
	* include/abg-irfwd.h: Same.
	* src/abg-hash.cc: Same.
	* src/abg-ir.cc: Same.
	* src/abg-reader.cc: Same.
2013-08-14 15:07:19 +02:00
Benjamin Kosnik
9f7c830236 Slight change to doxy config.
* doc/api/libabigail.doxy: Turn off namespace scopes, on all the viz.
2013-08-14 15:07:19 +02:00
Benjamin Kosnik
c06c007abc Move class_decl nested types out-of-line.
* include/abg-ir.h (class_decl): Move nested types out of line.
2013-08-14 15:07:19 +02:00
Benjamin Kosnik
ea59f3c426 Rename class_decl::method to class_decl::method_base.
* include/abg-ir.h (class_decl::member): To member_base.
	* src/abg-hash.cc: Same.
	* src/abg-ir.cc: Same.
	* src/abg-writer.cc: Same.
2013-08-14 15:07:19 +02:00
Benjamin Kosnik
373a74044a Nest hashers.
* include/abg-ir.h: Nest all hashers.
	* include/abg-irfwd.h (abigail): Don't inject std::tr1::hash.
	Remove hasher forward declarations.
	* include/abg-hash.h: Tweak.
	* src/abg-hash.cc: Define hashers here.
	* src/abg-ir.cc: Adjust for above.
	* src/abg-reader.cc: Same.
	* src/abg-writer.cc: Same.
2013-08-14 15:07:19 +02:00
Benjamin Kosnik
9add67dfe5 Rename abi_corpus to corpus
* include/abg-corpus.h (abi_corpus): Change to corpus.

	* include/abg-hash.h: Tweaks.
	* include/abg-libxml-utils.h: Same.
2013-08-14 15:07:18 +02:00
Benjamin Kosnik
9c7f025ae9 Simplify interface for serializing/deserializing translation_units.
2013-08-06  Benjamin Kosnik  <bkoz@redhat.com>

	* include/abg-ir.h (translation_unit::read): New member function.
	(translation_unit::write): Same.
	* src/abg-reader.cc (translation_unit::read): Define.
	* src/abg-writer.cc (translation_unit::write): Define.

	* include/abg-reader.h: Remove.
	* include/abg-writer.h: Remove.
	* include/Makefile.am (headers): Same.
	* include/Makefile.in: Regenerate.
2013-08-14 15:07:18 +02:00
Benjamin Kosnik
32ce30a23c First pass clean reading API.
* include/abg-reader.h (read_file): Remove extraneous file parameter.
	* src/abg-reader.cc: Same.
	* tests/test-read-write.cc: Adjust.
2013-08-14 15:07:18 +02:00
Benjamin Kosnik
f7fd078486 Rename traversable to traversable_base, move up the _decl hierarchy via decl_base derivation.
* include/abg-ir.h (traversable): To traversable_base.
	(decl_base): Inherit from traversable_base.
	(decl_base::traverse): Null definition.
	(function_decl, etc.): Remove traversable_base as base class.
2013-08-14 15:07:18 +02:00
Benjamin Kosnik
7916bff4fb Standardize typedef naming. Plural form is the container form, smart_ptr types are type + _sptr.
* include/abg-ir.h (scope_decl): Add declarations, scopes as types.
	(function_type): Add parameter_sptr, parameters as types.
	(enum_type_decl): Add type_sptr, enumerators as types.
	(class_decl): Adjust typedefs for consistency.  Change
	base_specs_type to base_specs, member_types_type to member_types,
	data_members_type to data_members, member_functions_type to
	member_functions, member_function_templates_type to
	member_function_templates, member_class_templates_type to
	member_class_templates.
2013-08-14 15:07:18 +02:00
Benjamin Kosnik
1240a6513a Doxygen markup fixes final.
* include/abg-config.h: Doxygen cleanups round two.
	* include/abg-hash.h: Same.
	* include/abg-ir.h: Same.
	* include/abg-irfwd.h: Same.
	* include/abg-libxml-utils.h: Same.
	* src/abg-config.cc: Same.
	* src/abg-hash.cc: Same.
	* src/abg-ir.cc: Same.
	* src/abg-reader.cc: Same.
	* src/abg-writer.cc: Same.
2013-08-14 15:07:18 +02:00
Benjamin Kosnik
e80ad1adee Forward decls for abg-ir.h, doxygen fixups, restyle.
* include/abg-irfwd.h: New file for forward declarations.
	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.

	* include/*: Forward declare, doxygen fixups, restyle.
	* src/*: Same.

	* src/abg-corpus.cc: Empty, removed.

	* doc/api/libabigail.doxy: Tweak.
2013-08-14 15:07:18 +02:00
Benjamin Kosnik
8652e0f935 Add virtual dtor to translation_unit.
* include/abg-ir.h (translation_unit): Add virtual dtor.
	* src/abg-ir.cc: Define.
2013-08-14 15:07:18 +02:00
Benjamin Kosnik
1f702180e6 Adjust doxygen input path.
* doc/api/libabigail.doxy: Adjust include directory.
2013-08-14 15:07:18 +02:00
Benjamin Kosnik
d23c4e9b96 Collapse subdir of include to include.
* include/libabigail/abg-*.h: Move to...
	* include/abg-*.h
	* include/libabigail: Remove.

	* configure.ac: Adjust include location from libabigail/include to
	include.
	* Makefile.in: Same.
	* aclocal.m4: Same.
	* configure: Same.
	* doc/Makefile.in: Same.
	* include/Makefile.am: Same.
	* src/Makefile.am: Same.
	* src/Makefile.in: Same.
	* tests/Makefile.am: Same.
	* tests/Makefile.in: Same.
2013-08-14 15:07:18 +02:00
Dodji Seketeli
e5dd19b2a6 Update autotool auto-generated files
* Makefile.in: Updated.
	* aclocal.m4: Likewise.
	* configure: Likewise.
	* doc/Makefile.in: Likewise.
	* src/Makefile.in: Likewise.
	* tests/Makefile.in: Likewise.
2013-07-23 23:17:28 +02:00
Dodji Seketeli
95ec67b143 Implement a translation unit traversal API
* include/libabigail/abg-ir.h (struct ir_node_visitor, struct
	traversable): New interfaces.
	(translation_unit, scope_decl, type_decl, qualified_type_def)
	(pointer_type_def, reference_type_def, enum_type_decl)
	(typedef_decl, var_decl, function_decl, data_member)
	(member_function, member_function_template)
	(member_class_template): Implement the traversable interface,
	overload the traversable::traverse pure virtual function.
	* src/abg-ir.cc ({translation_unit, scope_decl, type_decl,
	namespace_decl, qualified_type_def, pointer_type_def,
	reference_type_def, enum_type_decl, typedef_decl, var_decl,
	function_decl, class_decl::member_function, class_decl,
	class_decl::data_member, class_decl::member_function_template,
	class_decl::member_class_template, function_template_decl,
	class_template_decl, }::traverse): Implement traversal.
	(ir_node_visitor::visit): New method, overloaded for the types
	above, which implement the traversable interface.
	* tests/test-walker.cc: New test case program to showcase how to
	use the new traversal API.
	* tests/makefile.am: Add test-walker.cc to the build system.
2013-07-23 23:13:56 +02:00
Dodji Seketeli
e9be65956c By default, statically link libabigail with whoever uses abigail.m4
* abigail.m4: Make $abigaillibs statically link libabigail by default.
2013-07-23 23:13:56 +02:00
Dodji Seketeli
04873cb485 Move static member definition to abg-viz-dot.cc file
* include/libabigail/abg-viz-dot.h: Move definition of
	node_base::_M_count_total to ...
	* src/abg-viz-dot.cc: ... here.
2013-07-23 23:13:56 +02:00
Dodji Seketeli
f9d66af03c Put headers in include/libabigail
* include/libabigail: New directory.
	* include/Makefile.am:  New file.
	* include/libabigail/Makefile.am: New file.
	* src/abg-*.h: Move these in include/libabigail/*.h
	* src/Makefile.am: Set -I option to look for headers in include/libabigail
	* doc/api/libabigail.doxy: Look for headers in include/libabigail
	* tests/Makefile.am: Set -I option to look for headers in include/libabigail
	* abigail.m4: Set includedir to $prefix/include/libabigail for
	library used as a dep, or to srcdir/libabigail/include/libabigail
	in GCC source tree.
	* configure.ac: Add Makefile.am in include and include/libabigail
	* abigail.m4: Look for headers in include/libabigail when the
	libabigail is in in the source tree and in $incdir/libabigail when
	it is installed as a dependency.
2013-07-23 23:13:56 +02:00
Benjamin Kosnik
8e950513b0 Install into docdir, turn off collaboration graphs.
* doc/Makefile.am (doc-install-html-doxygen): Install generated
	files into docdir.

	* doc/api/libabigail.doxy (COLLABORATION_GRAPH): Turn off.
2013-07-23 23:13:56 +02:00
Benjamin Kosnik
ba24c0aee8 Fix dependencies for api/html output directory.
* doc/Makefile.am: Create abi output directory.
2013-07-23 23:13:55 +02:00
Dodji Seketeli
921f0d36ea Prepare for publishing
* COMMIT-LOG-GUIDELINES: New file.
	* CONTRIBUTING: New file.
	* README: Amended to refer to the first files above.
2013-07-23 23:13:55 +02:00
Dodji Seketeli
7daf60f12c LGPLv3 License the library
* COPYING-LGPLV3:  New file.
	* abg-config.cc: License the file to LGPLv3.
	* abg-config.h: Likewise.
	* abg-corpus.cc: Likewise.
	* abg-corpus.h: Likewise.
	* abg-hash.cc: Likewise.
	* abg-hash.h: Likewise.
	* abg-ir.cc: Likewise.
	* abg-ir.h: Likewise.
	* abg-libxml-utils.cc: Likewise.
	* abg-libxml-utils.h: Likewise.
	* abg-reader.cc: Likewise.
	* abg-reader.h: Likewise.
	* abg-writer.cc: Likewise.
	* abg-writer.h: Likewise.
	* src/abg-viz-common.cc: Likewise.
	* src/abg-viz-common.h: Likewise.
	* src/abg-viz-dot.cc: Likewise.
	* src/abg-viz-dot.h: Likewise.
	* src/abg-viz-svg.cc: Likewise.
	* src/abg-viz-svg.h: Likewise.
	* tests/test-read-write.cc: Likewise.
	* tests/test-utils.cc: Likewise.
	* tests/test-utils.h: Likewise.
2013-07-23 23:13:55 +02:00
Dodji Seketeli
59db5b3095 Add assert.h in abg-ir.cc
* src/abg-ir.cc: Add missing assert.h
2013-07-23 23:13:55 +02:00
Dodji Seketeli
f4c9b07069 Fix missing license blurbs
* src/abg-config.cc: Fix licensing blurb.
	* src/abg-config.h: Likewise.
	* src/abg-corpus.cc: Likewise.
	* src/abg-corpus.h: Likewise.
	* src/abg-ir.cc: Likewise.
	* src/abg-ir.h: Likewise.
	* src/abg-reader.cc: Likewise.
	* src/abg-writer.cc: Likewise.
2013-07-23 23:13:55 +02:00
Benjamin Kosnik
f6c2daedc3 Correct DOT merge.
* src/abg-viz-common.h: Use _M_attributes for attribute overflows.
	* src/abg-viz-dot.h: Merge in correct node_base.
	* src/abg-viz-dot.cc: Same.
	* tests/test-dot.cc: Correct examples.

	* tests/Makefile.am: Add .gv to CLEANFILES.
	* tests/Makefile.in: Regenerate.
2013-07-23 23:13:55 +02:00
Benjamin Kosnik
202476207b Pull out common style type.
* src/abg-viz-common.h: Pull out common style type.
	* src/abg-viz-dot.cc: Adjust scoping.
	* src/abg-viz-common.cc: Same.
	* src/abg-viz-dot.h: Use common style class.
	* src/abg-viz-svg.h: Same.
2013-07-23 23:13:55 +02:00
Benjamin Kosnik
1807401e6c Commonize visualization support.
* src/abg-viz-svg.h: Move common code to...
	* src/abg-viz-dot.h: Move common code to...
	* src/abg-viz-common.h: ...here. New.
	* src/abg-viz-svg.cc: Move common code to...
	* src/abg-viz-common.cc: ...here. New.
	* src/Makefile.am: Add abg-viz-common.cc, abg-viz-common.h
	* src/Makefile.in: Regenerate.
2013-07-23 23:13:55 +02:00
Benjamin Kosnik
f3dae517b9 Initial DOT work.
* doc/vizualization/layout/scripts/
	(inkscape_export_svg_to_plain_svg.sh): Move...
	(inkscape_export_svg_to_png_and_pdf.sh): Move...
	* scripts: ..here. New toplevel directory.
	* scripts/scripts/dot_to_png.sh: New.
	* scripts/scripts/dot_to_svg.sh: New.
	* src/Makefile.am: Add abg-viz-dot.cc, abg-viz-dot.h.
	* tests/Makefile.am: Add test-dot.cc.
	* src/abg-viz-dot.cc: New.
	* src/abg-viz-dot.h: New.
	* tests/test-dot.cc: New.
	* doc/vizualization/graph: New.
	* doc/vizualization/graph/gv/sa-A.gv: New.
	* doc/vizualization/graph/gv/sa-B.gv: New.
	* doc/vizualization/graph/gv/sa-C1.gv: New.
	* doc/vizualization/graph/gv/sa-C2.gv: New.
	* doc/vizualization/graph/gv/sa-C3.gv: New.
	* doc/vizualization/graph/gv/sa-C4.gv: New.
	* doc/vizualization/graph/gv/sa-D1.gv: New.
	* doc/vizualization/graph/gv/sa-D2.gv: New.
	* doc/vizualization/graph/gv/sa-D2v.gv: New.
	* doc/vizualization/graph/gv/sa-D3.gv: New.
	* doc/vizualization/graph/gv/sa-D3v.gv: New.
	* doc/vizualization/graph/gv/sa-D4v.gv: New.
	* doc/vizualization/graph/gv/sa-D5v1.gv: New.
	* doc/vizualization/graph/gv/sa-D5v2.gv: New.
	* doc/vizualization/graph/gv/sa-DD1.gv: New.
	* doc/vizualization/graph/gv/sa-DD2.gv: New.
	* doc/vizualization/graph/gv/sa-DD3.gv: New.
	* doc/vizualization/graph/gv/sa-DD4.gv: New.
	* doc/vizualization/graph/gv/sa-DD5.gv: New.
	* doc/vizualization/graph/gv/sa-base.gv: New.
	* doc/vizualization/graph/png/sa-A.png: New.
	* doc/vizualization/graph/png/sa-B.png: New.
	* doc/vizualization/graph/png/sa-C1.png: New.
	* doc/vizualization/graph/png/sa-C2.png: New.
	* doc/vizualization/graph/png/sa-C3.png: New.
	* doc/vizualization/graph/png/sa-C4.png: New.
	* doc/vizualization/graph/png/sa-D1.png: New.
	* doc/vizualization/graph/png/sa-D2.png: New.
	* doc/vizualization/graph/png/sa-D2v.png: New.
	* doc/vizualization/graph/png/sa-D3.png: New.
	* doc/vizualization/graph/png/sa-D3v.png: New.
	* doc/vizualization/graph/png/sa-D4v.png: New.
	* doc/vizualization/graph/png/sa-D5v1.png: New.
	* doc/vizualization/graph/png/sa-D5v2.png: New.
	* doc/vizualization/graph/png/sa-DD1.png: New.
	* doc/vizualization/graph/png/sa-DD2.png: New.
	* doc/vizualization/graph/png/sa-DD3.png: New.
	* doc/vizualization/graph/png/sa-DD4.png: New.
	* doc/vizualization/graph/png/sa-DD5.png: New.
	* doc/vizualization/graph/png/sa-base.png: New.
	* doc/vizualization/graph/sources/sa-A.cc: New.
	* doc/vizualization/graph/sources/sa-B.cc: New.
	* doc/vizualization/graph/sources/sa-C.cc: New.
	* doc/vizualization/graph/sources/sa-D.cc: New.
	* doc/vizualization/graph/sources/sa-DD.cc: New.
	* doc/vizualization/graph/sources/sa-base.cc: New.
	* doc/vizualization/graph/svg/sa-A.svg: New.
	* doc/vizualization/graph/svg/sa-B.svg: New.
	* doc/vizualization/graph/svg/sa-C1.svg: New.
	* doc/vizualization/graph/svg/sa-C2.svg: New.
	* doc/vizualization/graph/svg/sa-C3.svg: New.
	* doc/vizualization/graph/svg/sa-C4.svg: New.
	* doc/vizualization/graph/svg/sa-D1.svg: New.
	* doc/vizualization/graph/svg/sa-D2.svg: New.
	* doc/vizualization/graph/svg/sa-D2v.svg: New.
	* doc/vizualization/graph/svg/sa-D3.svg: New.
	* doc/vizualization/graph/svg/sa-D3v.svg: New.
	* doc/vizualization/graph/svg/sa-D4v.svg: New.
	* doc/vizualization/graph/svg/sa-D5v1.svg: New.
	* doc/vizualization/graph/svg/sa-D5v2.svg: New.
	* doc/vizualization/graph/svg/sa-DD1.svg: New.
	* doc/vizualization/graph/svg/sa-DD2.svg: New.
	* doc/vizualization/graph/svg/sa-DD3.svg: New.
	* doc/vizualization/graph/svg/sa-DD4.svg: New.
	* doc/vizualization/graph/svg/sa-DD5.svg: New.
	* doc/vizualization/graph/svg/sa-base.svg: New.
2013-07-23 23:13:55 +02:00
Benjamin Kosnik
8e6fea044a Regenerate build/configure. 2013-07-23 23:13:54 +02:00
Benjamin Kosnik
1a151751ad Regenerate configure files. 2013-07-23 23:13:54 +02:00
Benjamin Kosnik
e021203019 Add svg generation.
* src/Makefile.am: Add abg-viz-svg.cc, abg-viz-svg.h.
	* tests/Makefile.am: Add test-svg.cc.
	* src/abg-viz-svg.cc: New.
	* src/abg-viz-svg.h: New.
	* tests/test-svg.cc: New.
2013-07-23 23:13:54 +02:00
Benjamin Kosnik
7dd26cff0f Remove ChangeLog
* ChangeLog: Remove content.
2013-07-23 23:13:54 +02:00
Benjamin Kosnik
6fb9db6505 Fixup abg-version.h merge duplicate.
2013-05-21  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.ac: Remove src/abg-version.h merge duplicate.
2013-07-23 23:13:54 +02:00
Benjamin Kosnik
40029ae864 Add doc/visualization/layout.
* doc/vizualization/layout: New.
	* doc/vizualization/layout/pdf/sa-A.pdf: New.
	* doc/vizualization/layout/pdf/sa-B.pdf: New.
	* doc/vizualization/layout/pdf/sa-C1.pdf: New.
	* doc/vizualization/layout/pdf/sa-C2.pdf: New.
	* doc/vizualization/layout/pdf/sa-C3.pdf: New.
	* doc/vizualization/layout/pdf/sa-D1.pdf: New.
	* doc/vizualization/layout/pdf/sa-D2.pdf: New.
	* doc/vizualization/layout/pdf/sa-D2v.pdf: New.
	* doc/vizualization/layout/pdf/sa-D3.pdf: New.
	* doc/vizualization/layout/pdf/sa-D3v.pdf: New.
	* doc/vizualization/layout/pdf/sa-D4v.pdf: New.
	* doc/vizualization/layout/pdf/sa-DD1.pdf: New.
	* doc/vizualization/layout/pdf/sa-DD2.pdf: New.
	* doc/vizualization/layout/pdf/sa-DD3.pdf: New.
	* doc/vizualization/layout/pdf/sa-DD4.pdf: New.
	* doc/vizualization/layout/pdf/sa-DD5.pdf: New.
	* doc/vizualization/layout/pdf/sa-base.pdf: New.
	* doc/vizualization/layout/png/sa-A.png: New.
	* doc/vizualization/layout/png/sa-B.png: New.
	* doc/vizualization/layout/png/sa-C1.png: New.
	* doc/vizualization/layout/png/sa-C2.png: New.
	* doc/vizualization/layout/png/sa-C3.png: New.
	* doc/vizualization/layout/png/sa-D1.png: New.
	* doc/vizualization/layout/png/sa-D2.png: New.
	* doc/vizualization/layout/png/sa-D2v.png: New.
	* doc/vizualization/layout/png/sa-D3.png: New.
	* doc/vizualization/layout/png/sa-D3v.png: New.
	* doc/vizualization/layout/png/sa-D4v.png: New.
	* doc/vizualization/layout/png/sa-DD1.png: New.
	* doc/vizualization/layout/png/sa-DD2.png: New.
	* doc/vizualization/layout/png/sa-DD3.png: New.
	* doc/vizualization/layout/png/sa-DD4.png: New.
	* doc/vizualization/layout/png/sa-DD5.png: New.
	* doc/vizualization/layout/png/sa-base.png: New.
	* doc/vizualization/layout/scripts/
	(inkscape_export_svg_to_plain_svg.sh): New.
	(inkscape_export_svg_to_png_and_pdf.sh): New.
	* doc/vizualization/layout/sources/sa-A.cc: New.
	* doc/vizualization/layout/sources/sa-B.cc: New.
	* doc/vizualization/layout/sources/sa-C.cc: New.
	* doc/vizualization/layout/sources/sa-D.cc: New.
	* doc/vizualization/layout/sources/sa-DD.cc: New.
	* doc/vizualization/layout/sources/sa-base.cc: New.
	* doc/vizualization/layout/svg/sa-A.svg: New.
	* doc/vizualization/layout/svg/sa-B.svg: New.
	* doc/vizualization/layout/svg/sa-C1.svg: New.
	* doc/vizualization/layout/svg/sa-C2.svg: New.
	* doc/vizualization/layout/svg/sa-C3.svg: New.
	* doc/vizualization/layout/svg/sa-D1.svg: New.
	* doc/vizualization/layout/svg/sa-D2.svg: New.
	* doc/vizualization/layout/svg/sa-D2v.svg: New.
	* doc/vizualization/layout/svg/sa-D3.svg: New.
	* doc/vizualization/layout/svg/sa-D3v.svg: New.
	* doc/vizualization/layout/svg/sa-D4v.svg: New.
	* doc/vizualization/layout/svg/sa-DD1.svg: New.
	* doc/vizualization/layout/svg/sa-DD2.svg: New.
	* doc/vizualization/layout/svg/sa-DD3.svg: New.
	* doc/vizualization/layout/svg/sa-DD4.svg: New.
	* doc/vizualization/layout/svg/sa-DD5.svg: New.
	* doc/vizualization/layout/svg/sa-base.svg: New.
2013-07-23 23:13:54 +02:00
Benjamin Kosnik
73dec4acda Generate abg-version.h at configure time.
2013-05-20  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.ac: Add src/abg-version.h to AC_CONFIG_FILES.
	* src/Makefile.am: Remove abg-version.h generation rules.
	* src/abg-version.h.in: New.
2013-07-23 23:13:54 +02:00
Benjamin Kosnik
be9e84e756 Add doc dir. Add Doxgen api generation rules.
* doc: Add.
	* doc/Makefile.am (html, install-html): Add.
	* doc/Makefile.in: Add.
	* doc/api/libabigail.doxy: Add doxygen config.
	* src/abg-*: Add @file markup.
2013-07-23 23:13:54 +02:00
Benjamin Kosnik
d1f004df51 Add configure to source control
* configure: Add.
	* src/abg-corpus.cc: include stdexcept
2013-07-23 23:13:53 +02:00
Dodji Seketeli
9b99a77d8a Support offsets and virtual attribute in base class specifiers
* src/abg-ir.h (class_decl::base_spec::base_spec): Take an offset
	and a is_virtual flag.
	(class_decl::base_spec::{get_is_virtual, get_offset_in_bits}): New
	methods.
	(class_decl::has_no_base_nor_member): New method declaration..
	* src/abg-ir.cc (class_decl::base_spec::base_spec): Take an offset
	and a is_virtual flag
	(class_decl::has_no_base_nor_member): Define it.
	* src/abg-reader.cc (read_offset_in_bits): Renamed
	read_var_offset_in_bits into this.
	(read_is_virtual): New static function.
	(build_class_decl): Read the 'layout-offset-in-bits' and the
	'is-virtual' of the base class specifier.  Adjust for the
	read_var_offset_in_bits -> read_offset_in_bits rename.
	* src/abg-writer.cc (write_layout_offset): New overload for the
	base class specifiers.
	(write_class_decl): If the class has no member or base class, make
	it a proper empty xml element.  Write the offset and the
	is-virtual attribute.
	* tests/data/test-read-write/test20.xml: New test input data.
	* tests/test-read-write.cc: De-serialize the test above, serialize
	it back and compare that both versions are the same.
2013-07-23 23:13:53 +02:00
Dodji Seketeli
c94ef0da7a Iron out support for simple base classes.
* src/abg-ir.h (class_decl::base_spec::base_spec): Move this
	out-of-line.  Add a new constructor for clients compiled without
	RTTI.
	* src/abg-ir.cc (class_decl::base_spec::base_spec):  This is now
	here out-of-line.  Define the new constructor for clients compiled
	without RTTI.
	* tests/data/test-read-write/test19.xml: New test case input for
	base classes.
	* tests/test-read-write.cc: De-serialize and serialize the new
	test case input above.
2013-07-23 23:13:53 +02:00
Dodji Seketeli
b04ca87487 Fix handling of forward decl of classes
* abg-ir.h (class_decl::set_earlier_declaration): Move this
	out-of-line and add an overload.
	* src/abg-ir.cc (class_decl::set_earlier_declaration): Moved this
	out-of-line here and add an overload.
	* src/abg-reader.cc (build_class_decl): Really read the
	'decl-of-decl-id' property.  Do not make the definition use the id
	of the declaration.  Both have their id.
	* src/abg-writer.cc (write_class_decl):  Put a space before the
	property "def-of-decl-id".
	* tests/data/test-read-write/test18.xml: New test input.
	* tests/test-read-write.cc: De-serialize this new input, serialize
	it back and make sure both versions are identical.
2013-07-23 23:13:53 +02:00
Dodji Seketeli
a9ad6be655 Serialize the layout offset of class data members.
* src/abg-writer.cc (write_layout_offset): New function.
	(write_class_decl): Serialize the layout offset.
2013-07-23 23:13:53 +02:00