Duplicated code for pkg-config and cmake configuration is avoided by
letting every rizin module register itself in a global dictionary
called "modules" which is then iterated in one place to perform any
shared logic, inspired by how qemu handles multiple targets in its meson
build system.
This is an almost pure refactor, so the resulting .pc/.cmake files
should be identical with the following exceptions:
- rz_reg.pc does not have plugindir anymore as rz_reg has no plugins.
- Some other modules have their dependencies in .pc files altered to be
consistent with cmake.
Entire files are now avoided to be built by checking in meson rather
than using #if DEBUGGER. This now also includes bsd_debug.c, which
is currently slightly broken on OpenBSD/sparc64 and caused compile
errors even with -Ddebugger=false.
* Move binrz meson directives to binrz/ dir
* Move rizin-shell-parser to a subproject
* Move bochs to a meson subproject
* Move rzqnx to meson subproject
* Move winkd to a meson subproject
* Move rzar to a meson subproject
* Move rzw32dbg_wrap to a meson subproject
* Move ptrace-wrap to a meson subproject
* Move rzgdb to a meson subproject
* Rename w32dbg_wrap to rzw32dbg_wrap
* Update CODEOWNERS
* Remove old references to shlr
* Move shlr/heap stuff in core and remove shlr/arm
* Move spp to a meson subproject
* Remove last references to shlr
* Remove use_webui option
* Move include files directives to librz/include/meson.build
* Move librz meson directives into librz/meson.build
* Handle d/ directories inside the specific module meson.build
* Move plugins listing to specific module meson.build
* Move rzheap to its own subproject
* Fix js linter and licenses
* Use meson.override_dependency for all rz_ modules
* Remove wrong librz.pc.in file
* Add plugindir variable to .pc files to allow easy plugin configuration
* Add CMake config files to find Rizin in CMake projects
* Add CI jobs to check cmake files
* Provide workaround for mesonbuild/meson#9702
* Use .lib suffix and no prefix on MSVC to make CMake files work
* Disable cmake files on static libraries build
* Add `db` commands in `cmd_debug.yaml`
* Use bool instead of int as return value
* Port `db` commands to newshell
* Fix integration tests. Use `db- <addr>`, instead of `db-<addr>`
* Fix `dbW` handler and update `rz_w32_add_winmsg_breakpoint`
* Remove checks for `argc` in `cmd_debug.c` (from review)
* Fix failing Windows tests
* Change control flow in conditional expressions
* Use `RzCmdStateOutput` in handler for `dbt` to print backtrace in various formats
* Use forward slash (/) instead of pipe (|) for command descriptions
* Use output modes for printing breakpoints in `db` handler
* Remove extra newline while printing breakpoints in JSON format
* Change description for `dbc` command
* Update descriptions and handlers; Remove <addr> argument wherever necessary
* Use `RZ_CMD_ARG_TYPE_CHOICES` for perm in `dbw`
* Add details for `dbC` and `dbw`
* Add quiet printing mode for breakpoints
* Remove unnecessary <addr> argument for `db` commands
* Also add a quiet output mode for `dbl` and `dbt`
* Return if no breakpoint found in function `add_breakpoint`
* Update tests for new `db` commands
* Update `db` command descriptions
* Remove `dbi.` redundant command
* Add details for iterating through the list of breakpoints
* Extract `rz_debug_bp_add_noreturn_func` into `debug.c` as RZ_API
* Fix `dbil` handler and `dbg_bps` test
* Shift the noreturn function breakpoint to `cdebug.c`
* Format according to clang-format
* Fix failing integration tests
* TODO: Find why `db- @@c:dblq` is failing, and fix the bug
* Update `db` commands
* Use `db- @@c:dblq` instead of `db-*`
* This will also work as a test for command edits (see https://github.com/rizinorg/rizin/pull/1806)
* Migrate project from v5 to v6
* Add serialization for debug (RzDebug) instance (only for breakpoints as of now)
* Replace commit hash once the PR is merged into dev
* Add new namespaces added in v6