mirror of
git://sourceware.org/git/libabigail.git
synced 2024-12-16 23:14:36 +00:00
58488c5f31
This patch replaces license headers with SPDX identifiers in all files containing license headers. For each file, the SPDX identifier formally represents its current license. Note that the list of SPDX identifiers is available on the SPDX web site at https://spdx.org/licenses. For autoconf-archive/ax_prog_python_version.m4 however, there is a little catch. Dodji Seketeli wrote this ax_check_python_modules.m4. Just like the other autoconf-archive macros, it makes sense to have it under the FSF All Permissive license. Actually, the terms of that license was already in the file but then the license header was wrongly set to GPLv2 with autoconf exception. So I fixed that in this commit by setting the SPDX identifier to FSFAP. * abigail.m4: Replace the license header with the SPDX identifier GPL-3.0-or-later WITH GCC-exception-3.1 * autoconf-archive/ax_check_python_modules.m4: Correctly set the SPDX identifier to FSFAP. * autoconf-archive/ax_compare_version.m4: Replace the license header with the SPDX identifier FSFAP. * autoconf-archive/ax_prog_python_version.m4: Likewise. header with the SPDX identifier FSFAP. * autoconf-archive/ax_valgrind_check.m4: Likewise. * gen-changelog.py: Replace the license header with the SPDX identifier LGPL-2.0-or-later. * include/abg-comp-filter.h: Replace the license header with the SPDX identifier LGPL-3.0-or-later. * include/abg-comparison.h: Likewise. * include/abg-config.h: Likewise. * include/abg-corpus.h: Likewise. * include/abg-cxx-compat.h: Replace the license header with the SPDX identifier LGPL-2.0-or-later. * include/abg-diff-utils.h: Replace the license header with the SPDX identifier LGPL-3.0-or-later * include/abg-dwarf-reader.h: Likewise. * include/abg-fwd.h: Likewise. * include/abg-hash.h: Likewise. * include/abg-ini.h: Likewise. * include/abg-interned-str.h: Likewise. * include/abg-ir.h: Likewise. * include/abg-libxml-utils.h: Likewise. * include/abg-libzip-utils.h: Likewise. * include/abg-reader.h: Likewise. * include/abg-regex.h: Likewise. * include/abg-reporter.h: Likewise. * include/abg-sptr-utils.h: Likewise. * include/abg-suppression.h: Likewise. * include/abg-tools-utils.h: Likewise. * include/abg-traverse.h: Likewise. * include/abg-viz-common.h: Likewise. * include/abg-viz-dot.h: Likewise. * include/abg-viz-svg.h: Likewise. * include/abg-workers.h: Likewise. * include/abg-writer.h: Likewise. * install-sh: Replace the license header with the SPDX identifier MIT. * ltmain.sh: Replace the license header with the SPDX identifier GPL-2.0-or-later. Note that this file has the libtool special exception which allows us to redistribute it under the general license of the project. * src/abg-comp-filter.cc: Replace the license header with the SPDX * src/abg-comparison-priv.h: Likewise. * src/abg-comparison.cc: Likewise. * src/abg-config.cc: Likewise. * src/abg-corpus-priv.h: Likewise. * src/abg-corpus.cc: Likewise. * src/abg-default-reporter.cc: Likewise. * src/abg-diff-utils.cc: Likewise. * src/abg-dwarf-reader.cc: Likewise. * src/abg-elf-helpers.cc: Likewise. * src/abg-elf-helpers.h: Likewise. * src/abg-regex.cc: Likewise. * src/abg-hash.cc: Likewise. * src/abg-ini.cc: Likewise. * src/abg-internal.h: Likewise. * src/abg-ir-priv.h: Likewise. * src/abg-ir.cc: Likewise. * src/abg-leaf-reporter.cc: Likewise. * src/abg-libxml-utils.cc: Likewise. * src/abg-libzip-utils.cc: Likewise. * src/abg-reader.cc: Likewise. * src/abg-reporter-priv.cc: Likewise. * src/abg-reporter-priv.h: Likewise. * src/abg-sptr-utils.cc: Likewise. * src/abg-suppression-priv.h: Likewise. * src/abg-suppression.cc: Likewise. * src/abg-tools-utils.cc: Likewise. * src/abg-traverse.cc: Likewise. * src/abg-viz-common.cc: Likewise. * src/abg-viz-dot.cc: Likewise. * src/abg-viz-svg.cc: Likewise. * src/abg-workers.cc: Likewise. * src/abg-writer.cc: Likewise. * tests/lib/catch.cc: Likewise. * tests/lib/catch.hpp: Add an SPDX identifier BSL-1.0. * tests/mockfedabipkgdiff.in: Replace the license header with the SPDX identifier GPL-3.0-or-later. * tests/print-diff-tree.cc: Likewise. * tests/runtestfedabipkgdiff.py.in: Replaace the license header with the SPDW identifier GPL-3.0-or-later. * tests/test-abicompat.cc: Replace the license header with the SPDX identifier LGPL-3.0-or-later. * tests/test-abidiff-exit.cc: Likewise. * tests/test-abidiff.cc: Likewise. * tests/test-alt-dwarf-file.cc: Likewise. * tests/test-annotate.cc: Likewise. * tests/test-cxx-compat.cc: Likewise. * tests/test-core-diff.cc: Likewise. * tests/test-diff-dwarf-abixml.cc: Likewise. * tests/test-diff-dwarf.cc: Likewise. * tests/test-diff-filter.cc: Likewise. * tests/test-diff-pkg.cc: Likewise. * tests/test-diff-suppr.cc: Likewise. * tests/test-diff2.cc: Likewise. * tests/test-dot.cc: Replace the license header with the SPDX identifier GPL-3.0-with-GCC-exception. * tests/test-elf-helpers.cc: Replace the license header with the SPDX identifier LGPL-3.0-or-later. * tests/test-ini.cc: Likewise. * tests/test-ir-walker.cc: Likewise. * tests/test-kmi-whitelist.cc: Likewise. * tests/test-lookup-syms.cc: Likewise. * tests/test-read-dwarf.cc: Likewise. * tests/test-read-write.cc: Likewise. * tests/test-svg.cc: Replace the license header with the SPDX identifier GPL-3.0-with-GCC-exception. * tests/test-symtab.cc: Replace the license header with the SPDX identifier LGPL-3.0-or-later. * tests/test-tools-utils.cc: Likewise. * tests/test-types-stability.cc: Likewise. * tests/test-utils.cc: Likewise. * tests/test-utils.h: Likewise. * tests/test-write-read-archive.cc: Likewise. * tools/abiar.cc: Likewise. * tools/abicompat.cc: Likewise. * tools/abidiff.cc: Likewise. * tools/abidw.cc: Likewise. * tools/abilint.cc: Likewise. * tools/abipkgdiff.cc: Likewise. * tools/abisym.cc: Likewise. * tools/binilint.cc: Likewise. * tools/fedabipkgdiff: Replace the license header with the SPDX identifier GPL-3.0-or-later. * tools/kmidiff.cc: Likewise. Signed-off-by: Benjamin De Kosnik <bkoz@gnu.org> Signed-off-by: Ben Woodard <woodard@redhat.com> Signed-off-by: Chenxiong Qi <cqi@redhat.com> Signed-off-by: Dodji Seketeli <dodji@redhat.com> Signed-off-by: Giuliano Procida <gprocida@google.com> Signed-off-by: Jan Engelhardt <jengelh@inai.de> Signed-off-by: Jessica Yu <jeyu@kernel.org> Signed-off-by: Jonathan Wakely <jwakely@redhat.com> Signed-off-by: Mark Wielaard <mark@klomp.org> Signed-off-by: Matthias Klose <doko@ubuntu.com> Signed-off-by: Matthias Maennich <maennich@google.com> Signed-off-by: Ondrej Oprala <ondrej.oprala@gmail.com> Signed-off-by: Roland McGrath <roland@hack.frob.com> Signed-off-by: Sinny Kumari <ksinny@gmail.com> Signed-off-by: Slava Barinov <v.barinov@samsung.com>
147 lines
2.9 KiB
C++
147 lines
2.9 KiB
C++
// SPDX-License-Identifier: LGPL-3.0-or-later
|
|
// -*- mode: C++ -*-
|
|
//
|
|
// Copyright (C) 2013-2020 Red Hat, Inc.
|
|
|
|
/// @file
|
|
|
|
#ifndef __ABG_VIZ_SVG_H__
|
|
#define __ABG_VIZ_SVG_H__
|
|
|
|
#include <abg-viz-common.h>
|
|
|
|
namespace abigail
|
|
{
|
|
|
|
/**
|
|
Row displaying one element of member data.
|
|
|
|
Wide open background spaces, what do they look like, what do the
|
|
things in the foreground look like? Rectangle, for one.
|
|
|
|
Some characteristics:
|
|
- horizontal label (text anchor = start ie left).
|
|
- background box
|
|
- text data (text anchor = middle ie centered).
|
|
*/
|
|
struct row
|
|
{
|
|
std::string _M_id;
|
|
const style& _M_style;
|
|
|
|
units_type _M_offset;
|
|
units_type _M_size;
|
|
units_type _M_align;
|
|
};
|
|
|
|
/// Useful row constants. Maybe just do enum->value map.
|
|
extern const style primary_row_sty;
|
|
extern const style base_row_sty;
|
|
extern const style member_row_sty;
|
|
extern const style implementation_row_sty;
|
|
|
|
|
|
/**
|
|
SVG "array" style notation for size/layout/alignment.
|
|
|
|
This is a compact SVG representation of class layout.
|
|
|
|
It is composed of a minimum of three data points for each member or
|
|
base of a class:
|
|
|
|
- offset index
|
|
- size
|
|
- align
|
|
|
|
Including annotations for holes, padding, and
|
|
implementation-specified and otherwise invisible objects.
|
|
|
|
It's constructed by creating vertical columns for each of the data
|
|
points specified above, and filling in horizontal rows for each of
|
|
the class components.
|
|
*/
|
|
struct svg
|
|
{
|
|
|
|
private:
|
|
|
|
const std::string _M_title;
|
|
const canvas& _M_canvas;
|
|
const typography& _M_typo;
|
|
|
|
const units_type _M_x_size = 3; // Number of columns
|
|
units_type _M_x_space; // Column spacing.
|
|
units_type _M_x_origin; // X origin
|
|
|
|
units_type _M_y_size; // Number of rows
|
|
units_type _M_y_space; // Row spacing.
|
|
units_type _M_y_origin; // Y origin
|
|
|
|
std::ostringstream _M_sstream;
|
|
|
|
// static const units_type _M_stroke_width = 1;
|
|
// static const units_type _M_text_padding = 10;
|
|
|
|
public:
|
|
|
|
svg(const std::string &__title,
|
|
const canvas& __cv = ansi_letter_canvas,
|
|
const typography& __typo = arial_typo)
|
|
: _M_title(__title), _M_canvas(__cv), _M_typo(__typo), _M_y_size(0)
|
|
{
|
|
// Offsets require: typo, canvas units, size.
|
|
_M_x_space = 40;
|
|
_M_y_space = 40;
|
|
_M_x_origin = _M_x_space * 1;
|
|
_M_y_origin = _M_y_space * 2;
|
|
}
|
|
|
|
// Empty when the output buffer is.
|
|
bool
|
|
empty() { return _M_sstream.str().empty(); }
|
|
|
|
void
|
|
start_element();
|
|
|
|
void
|
|
finish_element();
|
|
|
|
void
|
|
add_title();
|
|
|
|
void
|
|
add_y_row(const row&);
|
|
|
|
void
|
|
add_y_lines();
|
|
|
|
void
|
|
add_y_label();
|
|
|
|
void
|
|
write();
|
|
|
|
void
|
|
start()
|
|
{
|
|
this->start_element();
|
|
this->add_title();
|
|
}
|
|
|
|
void
|
|
finish()
|
|
{
|
|
this->add_y_label();
|
|
this->add_y_lines();
|
|
this->finish_element();
|
|
this->write();
|
|
}
|
|
};
|
|
|
|
// XXX connect external xml file to input.
|
|
// parse input, pick apart elements, attributes.
|
|
|
|
}// end namespace abigail
|
|
|
|
#endif //__ABG_VIZ_SVG_H__
|