mirror of https://github.com/encounter/objdiff.git
Updates to CI workflow & README.md
This commit is contained in:
parent
3d2236de82
commit
56a5a61825
|
@ -11,6 +11,7 @@ on:
|
||||||
env:
|
env:
|
||||||
BUILD_PROFILE: release-lto
|
BUILD_PROFILE: release-lto
|
||||||
CARGO_TARGET_DIR: target
|
CARGO_TARGET_DIR: target
|
||||||
|
CARGO_INCREMENTAL: 0
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
check:
|
check:
|
||||||
|
@ -25,35 +26,14 @@ jobs:
|
||||||
sudo apt-get -y install libgtk-3-dev
|
sudo apt-get -y install libgtk-3-dev
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: Check git tag against Cargo version
|
|
||||||
if: startsWith(github.ref, 'refs/tags/')
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
set -eou pipefail
|
|
||||||
tag='${{github.ref}}'
|
|
||||||
tag="${tag#refs/tags/}"
|
|
||||||
version=$(grep '^version' Cargo.toml | head -1 | awk -F' = ' '{print $2}' | tr -d '"')
|
|
||||||
version="v$version"
|
|
||||||
if [ "$tag" != "$version" ]; then
|
|
||||||
echo "::error::Git tag doesn't match the Cargo version! ($tag != $version)"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
- name: Setup Rust toolchain
|
- name: Setup Rust toolchain
|
||||||
uses: dtolnay/rust-toolchain@stable
|
uses: dtolnay/rust-toolchain@stable
|
||||||
with:
|
with:
|
||||||
components: clippy
|
components: clippy
|
||||||
- name: Setup sccache
|
|
||||||
uses: mozilla-actions/sccache-action@v0.0.4
|
|
||||||
- name: Cargo check
|
- name: Cargo check
|
||||||
env:
|
run: cargo check --all-features --all-targets
|
||||||
RUSTC_WRAPPER: sccache
|
|
||||||
SCCACHE_GHA_ENABLED: "true"
|
|
||||||
run: cargo check
|
|
||||||
- name: Cargo clippy
|
- name: Cargo clippy
|
||||||
env:
|
run: cargo clippy --all-features --all-targets
|
||||||
RUSTC_WRAPPER: sccache
|
|
||||||
SCCACHE_GHA_ENABLED: "true"
|
|
||||||
run: cargo clippy
|
|
||||||
|
|
||||||
fmt:
|
fmt:
|
||||||
name: Format
|
name: Format
|
||||||
|
@ -105,13 +85,8 @@ jobs:
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: Setup Rust toolchain
|
- name: Setup Rust toolchain
|
||||||
uses: dtolnay/rust-toolchain@stable
|
uses: dtolnay/rust-toolchain@stable
|
||||||
- name: Setup sccache
|
|
||||||
uses: mozilla-actions/sccache-action@v0.0.4
|
|
||||||
- name: Cargo test
|
- name: Cargo test
|
||||||
env:
|
run: cargo test --release --all-features
|
||||||
RUSTC_WRAPPER: sccache
|
|
||||||
SCCACHE_GHA_ENABLED: "true"
|
|
||||||
run: cargo test --release
|
|
||||||
|
|
||||||
build-cli:
|
build-cli:
|
||||||
name: Build objdiff-cli
|
name: Build objdiff-cli
|
||||||
|
@ -228,12 +203,7 @@ jobs:
|
||||||
uses: dtolnay/rust-toolchain@stable
|
uses: dtolnay/rust-toolchain@stable
|
||||||
with:
|
with:
|
||||||
targets: ${{ matrix.target }}
|
targets: ${{ matrix.target }}
|
||||||
- name: Setup sccache
|
|
||||||
uses: mozilla-actions/sccache-action@v0.0.4
|
|
||||||
- name: Cargo build
|
- name: Cargo build
|
||||||
env:
|
|
||||||
RUSTC_WRAPPER: sccache
|
|
||||||
SCCACHE_GHA_ENABLED: "true"
|
|
||||||
run: >
|
run: >
|
||||||
cargo build --profile ${{ env.BUILD_PROFILE }} --target ${{ matrix.target }}
|
cargo build --profile ${{ env.BUILD_PROFILE }} --target ${{ matrix.target }}
|
||||||
--bin ${{ env.CARGO_BIN_NAME }} --features ${{ matrix.features }}
|
--bin ${{ env.CARGO_BIN_NAME }} --features ${{ matrix.features }}
|
||||||
|
@ -250,10 +220,24 @@ jobs:
|
||||||
name: Release
|
name: Release
|
||||||
if: startsWith(github.ref, 'refs/tags/')
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [ check, build-cli, build-gui ]
|
needs: [ build-cli, build-gui ]
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
steps:
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Check git tag against Cargo version
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -eou pipefail
|
||||||
|
tag='${{github.ref}}'
|
||||||
|
tag="${tag#refs/tags/}"
|
||||||
|
version=$(grep '^version' Cargo.toml | head -1 | awk -F' = ' '{print $2}' | tr -d '"')
|
||||||
|
version="v$version"
|
||||||
|
if [ "$tag" != "$version" ]; then
|
||||||
|
echo "::error::Git tag doesn't match the Cargo version! ($tag != $version)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
- name: Download artifacts
|
- name: Download artifacts
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
@ -281,6 +265,8 @@ jobs:
|
||||||
done
|
done
|
||||||
ls -R ../out
|
ls -R ../out
|
||||||
- name: Release
|
- name: Release
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
files: out/*
|
files: out/*
|
||||||
|
draft: true
|
||||||
|
generate_release_notes: true
|
||||||
|
|
|
@ -8,8 +8,9 @@ resolver = "2"
|
||||||
|
|
||||||
[profile.release-lto]
|
[profile.release-lto]
|
||||||
inherits = "release"
|
inherits = "release"
|
||||||
lto = "thin"
|
lto = "fat"
|
||||||
strip = "debuginfo"
|
strip = "debuginfo"
|
||||||
|
codegen-units = 1
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "2.0.0-beta.7"
|
version = "2.0.0-beta.7"
|
||||||
|
|
27
README.md
27
README.md
|
@ -6,6 +6,7 @@
|
||||||
A local diffing tool for decompilation projects. Inspired by [decomp.me](https://decomp.me) and [asm-differ](https://github.com/simonlindholm/asm-differ).
|
A local diffing tool for decompilation projects. Inspired by [decomp.me](https://decomp.me) and [asm-differ](https://github.com/simonlindholm/asm-differ).
|
||||||
|
|
||||||
Features:
|
Features:
|
||||||
|
|
||||||
- Compare entire object files: functions and data.
|
- Compare entire object files: functions and data.
|
||||||
- Built-in symbol demangling for C++. (CodeWarrior, Itanium & MSVC)
|
- Built-in symbol demangling for C++. (CodeWarrior, Itanium & MSVC)
|
||||||
- Automatic rebuild on source file changes.
|
- Automatic rebuild on source file changes.
|
||||||
|
@ -14,6 +15,7 @@ Features:
|
||||||
- Click to highlight all instances of values and registers.
|
- Click to highlight all instances of values and registers.
|
||||||
|
|
||||||
Supports:
|
Supports:
|
||||||
|
|
||||||
- PowerPC 750CL (GameCube, Wii)
|
- PowerPC 750CL (GameCube, Wii)
|
||||||
- MIPS (N64, PS1, PS2, PSP)
|
- MIPS (N64, PS1, PS2, PSP)
|
||||||
- x86 (COFF only at the moment)
|
- x86 (COFF only at the moment)
|
||||||
|
@ -21,6 +23,25 @@ Supports:
|
||||||
|
|
||||||
See [Usage](#usage) for more information.
|
See [Usage](#usage) for more information.
|
||||||
|
|
||||||
|
## Downloads
|
||||||
|
|
||||||
|
To build from source, see [Building](#building).
|
||||||
|
|
||||||
|
### GUI
|
||||||
|
|
||||||
|
- [Windows (x86_64)](https://github.com/encounter/objdiff/releases/latest/download/objdiff-windows-x86_64.exe)
|
||||||
|
- [Linux (x86_64)](https://github.com/encounter/objdiff/releases/latest/download/objdiff-linux-x86_64)
|
||||||
|
- [macOS (arm64)](https://github.com/encounter/objdiff/releases/latest/download/objdiff-macos-arm64)
|
||||||
|
- [macOS (x86_64)](https://github.com/encounter/objdiff/releases/latest/download/objdiff-macos-x86_64)
|
||||||
|
|
||||||
|
For Linux and macOS, run `chmod +x objdiff-*` to make the binary executable.
|
||||||
|
|
||||||
|
### CLI
|
||||||
|
|
||||||
|
CLI binaries can be found on the [releases page](https://github.com/encounter/objdiff/releases).
|
||||||
|
|
||||||
|
## Screenshots
|
||||||
|
|
||||||
![Symbol Screenshot](assets/screen-symbols.png)
|
![Symbol Screenshot](assets/screen-symbols.png)
|
||||||
![Diff Screenshot](assets/screen-diff.png)
|
![Diff Screenshot](assets/screen-diff.png)
|
||||||
|
|
||||||
|
@ -141,16 +162,14 @@ Install Rust via [rustup](https://rustup.rs).
|
||||||
$ git clone https://github.com/encounter/objdiff.git
|
$ git clone https://github.com/encounter/objdiff.git
|
||||||
$ cd objdiff
|
$ cd objdiff
|
||||||
$ cargo run --release
|
$ cargo run --release
|
||||||
# or, for wgpu backend (recommended on macOS)
|
|
||||||
$ cargo run --release --features wgpu
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Licensed under either of
|
Licensed under either of
|
||||||
|
|
||||||
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
|
- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or <http://www.apache.org/licenses/LICENSE-2.0>)
|
||||||
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
|
- MIT license ([LICENSE-MIT](LICENSE-MIT) or <http://opensource.org/licenses/MIT>)
|
||||||
|
|
||||||
at your option.
|
at your option.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue