summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknowntrojan <14975032+unknowntrojan@users.noreply.github.com>2023-09-20 18:37:28 +0200
committerunknowntrojan <14975032+unknowntrojan@users.noreply.github.com>2023-09-20 18:37:28 +0200
commitedcd93ce30ea1d85cc60afbf4261c00b5fe81509 (patch)
treeaadf08596df7666cf2be030b0a5c15246b9ad351
parent8948735839b90ebb6e2c0c1145c28f5cae46ebe5 (diff)
add github actions
-rw-r--r--.github/workflows/rust.yml102
-rw-r--r--Cargo.toml16
-rw-r--r--README.md4
3 files changed, 112 insertions, 10 deletions
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
new file mode 100644
index 0000000..b50440c
--- /dev/null
+++ b/.github/workflows/rust.yml
@@ -0,0 +1,102 @@
+name: Rust
+
+on:
+ push:
+ branches: ["master"]
+ pull_request:
+ branches: ["master"]
+
+env:
+ CARGO_TERM_COLOR: always
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Install Rust
+ uses: actions-rs/toolchain@v1
+ with:
+ toolchain: nightly
+ profile: minimal
+ override: true
+
+ - name: Install targets
+ run: |
+ rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu
+
+ - name: Install Binja
+ env:
+ BN_SERIAL: ${{ secrets.BN_SERIAL }}
+ run: |
+ apt -y update
+ apt -y install llvm-dev libclang-dev clang llvm-dev libxcb-shape0-dev libxcb-xfixes0-dev build-essential binutils-aarch64-linux-gnu
+ wget https://raw.githubusercontent.com/Vector35/binaryninja-api/dev/scripts/download_headless.py
+ python3 -m pip install requests
+ python3 download_headless.py --serial "$BN_SERIAL" --dev --install --clean --dir /tmp/binja-dev
+ python3 download_headless.py --serial "$BN_SERIAL" --install --clean --dir /tmp/binja-stable
+
+ - name: Install Binja Stable API
+ run: |
+ bash /tmp/binja-stable/binaryninja/scripts/linux-setup.sh -s
+ python3 /tmp/binja-stable/binaryninja/scripts/install_api.py
+
+ - name: Build Stable - Linux x64
+ run: cargo build --release --target x86_64-unknown-linux-gnu && mv target/x86_64-unknown-linux-gnu/release/libbinja_coolsigmaker.so libbinja_coolsigmaker_linux_x64_stable.so
+
+ # - name: Build Stable - Linux aarch64
+ # env:
+ # RUSTFLAGS: "-C target-feature=+neon"
+ # CC: clang --target aarch64-unknown-linux-gnu
+ # CXX: clang++ --target aarch64-unknown-linux-gnu
+ # run: cargo build --release --target aarch64-unknown-linux-gnu && mv target/aarch64-unknown-linux-gnu/release/libbinja_coolsigmaker.so libbinja_coolsigmaker_linux_aarch64_stable.so
+
+
+ - name: Install Binja Dev API
+ run: |
+ bash /tmp/binja-dev/binaryninja/scripts/linux-setup.sh -s
+ python3 /tmp/binja-dev/binaryninja/scripts/install_api.py
+
+ - name: Build Dev - Linux x64
+ run: cargo build --release --target x86_64-unknown-linux-gnu --config 'patch."https://github.com/Vector35/binaryninja-api".binaryninja.git="https://github.com/Vector35/binaryninja-api?branch=dev"' && mv target/x86_64-unknown-linux-gnu/release/libbinja_coolsigmaker.so libbinja_coolsigmaker_linux_x64_dev.so
+
+ # - name: Build Dev - Linux aarch64
+ # env:
+ # RUSTFLAGS: "-C target-feature=+neon"
+ # CC: clang --target aarch64-unknown-linux-gnu
+ # CXX: clang++ --target aarch64-unknown-linux-gnu
+ # run: cargo build --release --target aarch64-unknown-linux-gnu --config 'patch."https://github.com/Vector35/binaryninja-api".binaryninja.git="https://github.com/Vector35/binaryninja-api?branch=dev"' && mv target/aarch64-unknown-linux-gnu/release/libbinja_coolsigmaker.so libbinja_coolsigmaker_linux_aarch64_dev.so
+
+
+ # - name: Build Dev - Mac x64
+ # run: cargo build --release --target x86_64-apple-darwin --config 'patch."https://github.com/Vector35/binaryninja-api".binaryninja.git="https://github.com/Vector35/binaryninja-api?branch=dev"' && mv target/release/libbinja_coolsigmaker.so libbinja_coolsigmaker_mac_x64_dev.so
+
+ # - name: Build Stable - Mac x64
+ # run: cargo build --release --target x86_64-apple-darwin && mv target/release/libbinja_coolsigmaker.so libbinja_coolsigmaker_mac_x64_stable.so
+
+
+ # - name: Build Dev - Mac aarch64
+ # run: cargo build --release --target aarch64-apple-darwin --config 'patch."https://github.com/Vector35/binaryninja-api".binaryninja.git="https://github.com/Vector35/binaryninja-api?branch=dev"' && mv target/release/libbinja_coolsigmaker.so libbinja_coolsigmaker_mac_aarch64_dev.so
+
+ # - name: Build Stable - Mac aarch64
+ # run: cargo build --release --target aarch64-apple-darwin && mv target/release/libbinja_coolsigmaker.so libbinja_coolsigmaker_mac_aarch64_stable.so
+
+ - name: Release
+ uses: softprops/action-gh-release@v1
+ if: startsWith(github.ref, 'refs/tags/')
+ with:
+ files: |
+ LICENSE
+ libbinja_coolsigmaker_linux_x64_dev.so
+ libbinja_coolsigmaker_linux_x64_stable.so
+ #
+ # libbinja_coolsigmaker_linux_aarch64_dev.so
+ # libbinja_coolsigmaker_linux_aarch64_stable.so
+ # libbinja_coolsigmaker_mac_x64_dev.so
+ # libbinja_coolsigmaker_mac_x64_stable.so
+ # libbinja_coolsigmaker_mac_aarch64_dev.so
+ # libbinja_coolsigmaker_mac_aarch64_stable.so
+
+
diff --git a/Cargo.toml b/Cargo.toml
index 3645304..bb98727 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -8,19 +8,21 @@ edition = "2021"
crate-type = ["cdylib"]
[dependencies]
+# Local Development
+# binaryninja = { path = "../binaryninja-api/rust" }
+
log = "0.4.17"
clipboard = "0.5.0"
-# Local
-# binaryninja = { path = "../binaryninja-api/rust" }
-# Dev
-binaryninja = { git = "https://github.com/Vector35/binaryninja-api.git", branch = "dev" }
-# Stable
-# binaryninja = { git = "https://github.com/Vector35/binaryninja-api.git", tag = "v3.4.4271-stable" }
rayon = "1.7.0"
iced-x86 = "1.17.0"
strum = { version = "0.25.0", features = ["derive"] }
serde = { version = "1.0.152", features = ["std"] }
serde_json = "1.0.93"
thiserror = "1.0.43"
-coolfindpattern = "0.1.3"
+coolfindpattern = "0.1.4"
binary-search = "0.1.2"
+
+# Dev
+# binaryninja = { git = "https://github.com/Vector35/binaryninja-api", branch = "dev" }
+# Stable
+binaryninja = { git = "https://github.com/Vector35/binaryninja-api", branch = "master" }
diff --git a/README.md b/README.md
index 8a8613d..a466de1 100644
--- a/README.md
+++ b/README.md
@@ -31,6 +31,4 @@ Once GitHub Actions are set up and a loader plugin has been written, you will be
This project requires the nightly channel of Rust.
-Check the Cargo.toml file and adjust the `binaryninja` dependency so it points to whatever Binja update channel you want to compile for. __!MAKE SURE!__ Cargo caught your change of branch. It sometimes doesn't realize you changed it. Delete `Cargo.lock` and/or run `cargo clean`. Otherwise, it'll keep using whatever version was selected when you built or rust-analyzer ran.
-
-The Stable tag needs to be updated periodically, there is no "newest-stable" tag.
+Check the Cargo.toml file and adjust the `binaryninja` dependency so it points to whatever Binja update channel you want to compile for. __!MAKE SURE!__ Cargo caught your change of branch. It sometimes doesn't realize you changed it. Delete `Cargo.lock` to make Cargo realize you did. Otherwise, it'll keep using whatever version was selected when you built or rust-analyzer ran.