mirror of
https://github.com/radareorg/r2flutter.git
synced 2026-11-07 06:26:00 -10:00
Add r2plugin and CI job for the external plugin system build
This commit is contained in:
1 parent
111bfeca53
commit
971fd5f6f4
10 files changed
+145
-2
No files matched your search
@@ -25,3 +25,27 @@ jobs:
|
||||
run: r2r test/db/cmd
|
||||
- name: Radare Extras Testing
|
||||
run: r2r test/db/extras
|
||||
|
||||
r2-xps:
|
||||
name: Build radare2 with r2flutter XPS
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Install build dependencies
|
||||
run: sudo apt-get update -y && sudo apt-get install -y build-essential pkg-config
|
||||
- name: Build radare2 from source with r2flutter
|
||||
run: |
|
||||
git clone --depth=1 https://github.com/radareorg/radare2.git
|
||||
cd radare2
|
||||
cp -f ../r2plugin/config.mk libr/xps/config.mk
|
||||
git clone .. libr/xps/p/r2flutter
|
||||
make -C libr/xps
|
||||
./configure --prefix=/usr
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
- name: Test embedded r2flutter plugin
|
||||
run: |
|
||||
r2 -q -c 'Lc~r2flutter' -- | grep r2flutter
|
||||
r2 -q -c 'r2flutter -V' -- | grep 'r2flutter '
|
||||
@@ -0,0 +1,13 @@
|
||||
# r2plugin
|
||||
|
||||
This directory contains the Make and Meson files required to link r2flutter
|
||||
inside radare2 through `libr/xps`.
|
||||
|
||||
```console
|
||||
cd radare2
|
||||
cp ../r2flutter/r2plugin/config.mk libr/xps/config.mk
|
||||
git clone ../r2flutter libr/xps/p/r2flutter
|
||||
make -C libr/xps
|
||||
./configure
|
||||
make
|
||||
```
|
||||
@@ -0,0 +1,9 @@
|
||||
EXTERNAL_PLUGINS+=r2flutter
|
||||
# EXTERNAL_PLUGINS+=hi
|
||||
|
||||
.PHONY: r2flutter
|
||||
|
||||
r2flutter: p/r2flutter
|
||||
|
||||
p/r2flutter:
|
||||
cd p && git clone https://github.com/trufae/r2flutter
|
||||
@@ -0,0 +1,5 @@
|
||||
/* radare2 - MIT - Copyright 2026 - pancake */
|
||||
|
||||
#ifdef R2_CORE_H
|
||||
extern RCorePlugin r_core_plugin_r2flutter;
|
||||
#endif
|
||||
@@ -0,0 +1,25 @@
|
||||
R2FLUTTER_CORE_WD=$(LIBR)/xps/p/r2flutter
|
||||
CFLAGS+=-I$(R2FLUTTER_CORE_WD)/include
|
||||
R2FLUTTER_CORE_OBJ= \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_app.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_dumper.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_pool_snapshot.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_pool_discovery.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_pool_names.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_pool_strings.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_pool_data_image.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_pool_it.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_pool_xrefs.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_object.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_sbom.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_pool_clusters.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_pool_classes.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_pool_model.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_pool_parse.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_pool_modern.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_version.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_cid.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/lib/dart_obf.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/r2/flutter_analysis.o \
|
||||
$(R2FLUTTER_CORE_WD)/src/r2/core_flutter.o
|
||||
EXTERNAL_STATIC_OBJS+=$(R2FLUTTER_CORE_OBJ)
|
||||
@@ -0,0 +1,29 @@
|
||||
shared_library(
|
||||
'core_flutter',
|
||||
'../src/r2/core_flutter.c',
|
||||
'../src/r2/flutter_analysis.c',
|
||||
'../src/lib/dart_app.c',
|
||||
'../src/lib/dart_dumper.c',
|
||||
'../src/lib/dart_pool_snapshot.c',
|
||||
'../src/lib/dart_pool_discovery.c',
|
||||
'../src/lib/dart_pool_names.c',
|
||||
'../src/lib/dart_pool_strings.c',
|
||||
'../src/lib/dart_pool_data_image.c',
|
||||
'../src/lib/dart_pool_it.c',
|
||||
'../src/lib/dart_pool_xrefs.c',
|
||||
'../src/lib/dart_object.c',
|
||||
'../src/lib/dart_sbom.c',
|
||||
'../src/lib/dart_pool_clusters.c',
|
||||
'../src/lib/dart_pool_classes.c',
|
||||
'../src/lib/dart_pool_model.c',
|
||||
'../src/lib/dart_pool_parse.c',
|
||||
'../src/lib/dart_pool_modern.c',
|
||||
'../src/lib/dart_version.c',
|
||||
'../src/lib/dart_cid.c',
|
||||
'../src/lib/dart_obf.c',
|
||||
include_directories: ['../include', include_dirs],
|
||||
dependencies: r2_core,
|
||||
override_options: ['werror=false'],
|
||||
install: true,
|
||||
install_dir: r2_plugdir,
|
||||
)
|
||||
@@ -0,0 +1,32 @@
|
||||
# r2flutter XPS integration for radare2.
|
||||
# Included from libr/xps/meson.build when r2flutter sources live under
|
||||
# libr/xps/p/r2flutter/. Appends sources and include paths to the r_core
|
||||
# aggregate so the static plugin is linked into libr_core.
|
||||
|
||||
core_plugins += ['r2flutter']
|
||||
|
||||
r_core_additional_inc += include_directories(join_paths('..', 'include'))
|
||||
|
||||
r_core_additional_sources += files(
|
||||
'../src/lib/dart_app.c',
|
||||
'../src/lib/dart_dumper.c',
|
||||
'../src/lib/dart_pool_snapshot.c',
|
||||
'../src/lib/dart_pool_discovery.c',
|
||||
'../src/lib/dart_pool_names.c',
|
||||
'../src/lib/dart_pool_strings.c',
|
||||
'../src/lib/dart_pool_data_image.c',
|
||||
'../src/lib/dart_pool_it.c',
|
||||
'../src/lib/dart_pool_xrefs.c',
|
||||
'../src/lib/dart_object.c',
|
||||
'../src/lib/dart_sbom.c',
|
||||
'../src/lib/dart_pool_clusters.c',
|
||||
'../src/lib/dart_pool_classes.c',
|
||||
'../src/lib/dart_pool_model.c',
|
||||
'../src/lib/dart_pool_parse.c',
|
||||
'../src/lib/dart_pool_modern.c',
|
||||
'../src/lib/dart_version.c',
|
||||
'../src/lib/dart_cid.c',
|
||||
'../src/lib/dart_obf.c',
|
||||
'../src/r2/flutter_analysis.c',
|
||||
'../src/r2/core_flutter.c',
|
||||
)
|
||||
@@ -0,0 +1,5 @@
|
||||
/* radare2 - MIT - Copyright 2026 - pancake */
|
||||
|
||||
#ifdef R2_CORE_H
|
||||
#include "core/deps.h"
|
||||
#endif
|
||||
@@ -0,0 +1 @@
|
||||
core.r2flutter
|
||||
@@ -427,7 +427,7 @@ static bool r_cmd_r2flutter_call(RCorePluginSession *cps, const char *input) {
|
||||
return true;
|
||||
}
|
||||
|
||||
RCorePlugin r_core_plugin_flutter = {
|
||||
RCorePlugin r_core_plugin_r2flutter = {
|
||||
.meta = {
|
||||
.name = "r2flutter",
|
||||
.desc = "Dart/Flutter AOT snapshot analyzer",
|
||||
@@ -443,7 +443,7 @@ RCorePlugin r_core_plugin_flutter = {
|
||||
#ifndef R2_PLUGIN_INCORE
|
||||
R_API RLibStruct radare_plugin = {
|
||||
.type = R_LIB_TYPE_CORE,
|
||||
.data = &r_core_plugin_flutter,
|
||||
.data = &r_core_plugin_r2flutter,
|
||||
.version = R2_VERSION,
|
||||
.abiversion = R2_ABIVERSION
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user