diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 419d3254..cf282f11 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -5,6 +5,9 @@ on: pull_request: workflow_dispatch: +permissions: + contents: read + env: CARGO_TERM_COLOR: always @@ -70,6 +73,40 @@ jobs: if: ${{ failure() }} run: echo "Some of jobs failed" && false + linux-cross-build: + strategy: + fail-fast: false + matrix: + include: + - target: aarch64-unknown-linux-gnu + use_cross: true + - target: x86_64-unknown-linux-gnu + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + with: + submodules: recursive + - uses: dtolnay/rust-toolchain@stable + - name: Install ${{ matrix.target }} deps + if: matrix.target == 'x86_64-unknown-linux-gnu' + run: sudo apt-get update && sudo apt-get install -y libgtk-3-dev libpng-dev libjpeg-dev libgl1-mesa-dev libglu1-mesa-dev libxkbcommon-dev libwayland-dev libexpat1-dev libtiff-dev libwebkit2gtk-4.1-dev libxtst-dev libssl-dev + + - name: Install target ${{ matrix.target }} + run: rustup target add ${{ matrix.target }} + + - name: Install cross tool + if: matrix.use_cross + run: cargo install cross --git https://github.com/cross-rs/cross.git --rev 29d00c7 + + - name: Build for ${{ matrix.target }} + shell: bash + run: | + if [ "${{ matrix.use_cross }}" = "true" ]; then + cross build --features "aui,xrc,richtext,stc,webview" --target ${{ matrix.target }} --release + else + cargo build --features "aui,xrc,richtext,stc,webview" --target ${{ matrix.target }} --release + fi + windows-cross-build: strategy: fail-fast: false diff --git a/Cross.toml b/Cross.toml new file mode 100644 index 00000000..af956a5f --- /dev/null +++ b/Cross.toml @@ -0,0 +1,5 @@ +[target.aarch64-unknown-linux-gnu] +pre-build = [ + "dpkg --add-architecture $CROSS_DEB_ARCH", + "apt-get update && apt-get --assume-yes install zlib1g-dev:$CROSS_DEB_ARCH", +]