Skip to content

Commit 855b092

Browse files
Add r2ghidra to macOS builds
1 parent 2a69d7e commit 855b092

File tree

2 files changed

+35
-7
lines changed

2 files changed

+35
-7
lines changed

dist/macos/Makefile

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,28 @@ all: clean app dmg
44
app: disk/iaito.app
55
dmg: iaito.dmg
66
zip: iaito.zip
7-
extra: extra/r2ai
7+
extra: extra/r2ai extra/r2ghidra extra/r2ghidra_sleigh
88

9-
disk/iaito.app: ../../build/iaito.app radare2-unpkg extra/r2ai
9+
ARCH:=$(shell uname -m)
10+
11+
disk/iaito.app: ../../build/iaito.app radare2-unpkg extra/r2ai extra/r2ghidra extra/r2ghidra_sleigh
1012
mkdir disk
13+
# Copy base bundle app
1114
cp -a ../../build/iaito.app disk/
15+
# Copy r2 binary plugins
16+
mkdir -p disk/iaito.app/Contents/PlugIns/radare2
17+
install -p -m 0755 \
18+
extra/r2ghidra/core_ghidra.dylib \
19+
disk/iaito.app/Contents/PlugIns/radare2/
20+
# Copy r2 pkg files and update linking path for all binary files
1221
scripts/embed-radare2.sh radare2-unpkg disk/iaito.app
13-
cp -a extra/r2ai/decai/decai.r2.js disk/iaito.app/Contents/Resources/radare2/lib/radare2/last/
22+
# Copy r2 non-binary plugins
23+
install -p -m 0644 \
24+
extra/r2ai/decai/decai.r2.js \
25+
disk/iaito.app/Contents/Resources/radare2/lib/radare2/last/
26+
cp -a extra/r2ghidra_sleigh \
27+
disk/iaito.app/Contents/Resources/radare2/share/
28+
# Copy QT frameworks
1429
macdeployqt disk/iaito.app -verbose=2
1530

1631
iaito.dmg: disk/iaito.app
@@ -34,6 +49,19 @@ extra/r2ai:
3449
curl -L "$(shell gh api /repos/radareorg/r2ai/releases/latest --jq .tarball_url)" | tar -xzC extra/
3550
cd extra && mv radareorg-r2ai-* r2ai
3651

52+
extra/r2ghidra:
53+
mkdir -p extra
54+
curl -Lo r2ghidra-latest.zip "$(shell gh api /repos/radareorg/r2ghidra/releases/latest --jq '.assets[] | select(.name | endswith("-macos-$(ARCH).zip")) | .browser_download_url')"
55+
unzip r2ghidra-latest.zip -d extra/
56+
cd extra && mv r2ghidra-*-macos-* r2ghidra
57+
rm -v r2ghidra-latest.zip
58+
59+
extra/r2ghidra_sleigh:
60+
mkdir -p extra/r2ghidra_sleigh
61+
curl -Lo r2ghidra_sleigh-latest.zip "$(shell gh api /repos/radareorg/r2ghidra/releases/latest --jq '.assets[] | select(.name | startswith("r2ghidra_sleigh-")) | .browser_download_url')"
62+
unzip r2ghidra_sleigh-latest.zip -d extra/r2ghidra_sleigh
63+
rm -v r2ghidra_sleigh-latest.zip
64+
3765
../../build/iaito.app:
3866
echo "Building iaito..."
3967
$(MAKE) -C ../.. QMAKE_FLAGS=IAITO_BUNDLE_R2_APPBUNDLE=true
@@ -42,4 +70,4 @@ clean:
4270
rm -rf radare2-unpkg disk iaito.dmg
4371

4472
mrproper: clean
45-
rm -rf radare2.pkg extra
73+
rm -rf radare2.pkg r2ghidra-*.zip extra

src/IaitoApplication.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,9 @@ IaitoApplication::IaitoApplication(int &argc, char **argv)
158158
paths.prepend(r2bin.absolutePath());
159159
qputenv("PATH", paths.join(QLatin1Char(':')).toLocal8Bit());
160160

161-
// auto sleighHome = appdir; // Contents
162-
// sleighHome.cd("PlugIns/radare2/r2ghidra_sleigh"); // Contents/PlugIns/radare2/r2ghidra_sleigh
163-
// qputenv("SLEIGHHOME", sleighHome.absolutePath().toLocal8Bit());
161+
auto sleighHome = appdir; // Contents
162+
sleighHome.cd("Resources/radare2/share/r2ghidra_sleigh"); // Contents/Resources/radare2/share/r2ghidra_sleigh
163+
qputenv("SLEIGHHOME", sleighHome.absolutePath().toLocal8Bit());
164164

165165
// Allow bundled radare2 and its plugins to save its data inside iaito app folders
166166
qputenv(

0 commit comments

Comments
 (0)