Commit Graph

23 Commits

Author SHA1 Message Date
Giacomo Vercesi d81dc49809 revng-check-conventions: license check 2022-04-20 09:55:18 +02:00
Massimo Fioravanti 44720eedbd Redesign TupleTreeDiff
`TupleTreeDiff` is now type-safe and owns the changes.
2022-04-15 15:14:13 +02:00
Giacomo Vercesi a2b5dbb1dc TupleTreeGenerator: autogenerate Kind 2022-04-08 17:36:59 +02:00
Pietro Fezzardi 18f5d7577f Move copy_to_build_and_install to Common.cmake
This enables using this handy helper function also in revng-c.
2022-03-30 14:39:29 +02:00
Massimo Fioravanti b2dfd2bc64 TupleTreeGenerator.cmake: single call generation 2022-03-28 12:17:05 +02:00
Filippo Cremonese 70a460c46a TupleTreeGenerator: use dataclasses
Give up on pydantic.
2022-03-22 17:52:02 +01:00
Alessandro Di Federico 2b55d1df22 Adopt cmake-format 2022-03-17 18:52:18 +01:00
Alessandro Di Federico da7701bd4e Move all executables except revng to libexec/revng
We used to collect all binaries into the `bin/` directory. However this
led to confusions since certain commands where available both as
`revng-command` and `revng command`.

This commit moves all the executables except `revng` into
`libexec/revng`, which, according to FHS, is dedicated to "internal
binaries that are not intended to be executed directly by users or shell
scripts".
2022-03-17 14:10:50 +01:00
Alessandro Di Federico 3f52078950 Use BYPRODUCTS after POST_BUILD copy 2022-02-24 14:18:17 +01:00
Filippo Cremonese 09a995ba51 python-model: generate from jsonschema 2022-02-23 18:03:35 +01:00
Filippo Cremonese 6672eb8dbc Turn Python scripts into modules 2022-02-23 18:02:42 +01:00
Filippo Cremonese 1dc7efe2b0 tuple_tree_generator: emit jsonschema 2022-02-23 17:37:03 +01:00
Alessandro Di Federico 679851afb0 TupleTreeGenerator.cmake: depend on scripts 2022-01-21 18:07:24 +01:00
Alessandro Di Federico 3ab32cd2ef tuple_tree_generator: make fully standalone 2022-01-21 18:05:51 +01:00
Filippo Cremonese 74217b4fe5 Generate C++ model from YAML definition
Model classes are now described by a YAML document, which is used to
generate C++ headers containing classes and all the boilerplate
required for YAML serialization/deserialization, usage in
SortedVectors, etc. See the README in include/revng/Model for more
info.
2022-01-13 14:34:11 +01:00
Alessandro Di Federico 270595632c Fix dependencies for revng-qa artifacts 2020-09-04 23:52:45 +02:00
Alessandro Di Federico 149ef61759 Fix unit tests linking
For unit tests we used to call `add_executable` directly. However, this
prevents using RPATH as appropriate.
2020-05-14 11:59:05 +02:00
Alessandro Di Federico 1ccc7ec3d4 Cleanup RPATH management 2020-01-22 11:05:26 +01:00
Alessandro Di Federico 2006e5cd3c Expose CMake's add_flag_if_available 2020-01-22 11:04:26 +01:00
Alessandro Di Federico 8d664c1588 Fix RPATHs
This commit replicates the structure of the install directory into the
build directory in order to simplify the management of RPATHs.

This commit also drop `QEMU_INSTALL_PATH`.
2019-09-04 11:52:07 +02:00
Alessandro Di Federico 72c34efc57 revng_add_analyses_library: add EXPORT_NAME 2019-02-22 11:36:36 +01:00
Alessandro Di Federico a75c75c305 Make install_pattern available in CMake package 2019-02-22 11:33:28 +01:00
Alessandro Di Federico 7a045d0c0d Drop revamb-dump in favor of plain passes
This commit does the following:

* It drops `revamb-dump` and transforms all the passes it featured in
  passes that can be used directly from `opt`.
* It rename `revamb` to `revng-lift`.
* It introduces a script called `revng` which acts as a driver for the
  whole rev.ng project. It replaces `translate`, `revcc`,
  `csv-to-ld-options` and `revamb-dump`, since it offers an `opt`
  subcommand which allows to easily invoke all the analysis passes.
* It makes the project a CMake package that can be easily used
  externally.
* It allows to easily create libraries of analysis to use through
  `revng-opt`.
2019-01-18 15:18:47 +01:00