diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2989051df..5d21dee60 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -78,7 +78,7 @@ jobs: shell: bash run: | case ${{ matrix.job.target }} in - x86_64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt install -y g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake libclang-dev;; + x86_64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt install -y g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake libclang-dev ninja-build libappindicator3-dev;; # arm-unknown-linux-*) sudo apt-get -y update ; sudo apt-get -y install gcc-arm-linux-gnueabihf ;; # aarch64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt-get -y install gcc-aarch64-linux-gnu ;; esac @@ -87,9 +87,36 @@ jobs: uses: subosito/flutter-action@v2 with: channel: 'stable' + + - name: Install Rust toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + target: ${{ matrix.job.target }} + override: true + profile: minimal # minimal component installation (ie, no documentation) + - name: Install flutter rust bridge deps run: | - dart pub global activate ffigen + dart pub global activate ffigen --version 5.0.1 + # flutter_rust_bridge + pushd /tmp && git clone https://github.com/SoLongAndThanksForAllThePizza/flutter_rust_bridge --depth=1 && popd + pushd /tmp/flutter_rust_bridge/frb_codegen && cargo install --path . && popd + pushd flutter && flutter pub get && popd + ~/.cargo/bin/flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart + + - name: Install corrosion + run: | + mkdir /tmp/corrosion + pushd /tmp/corrosion + git clone https://github.com/corrosion-rs/corrosion.git + # Optionally, specify -DCMAKE_INSTALL_PREFIX=. You can install Corrosion anyway + cmake -Scorrosion -Bbuild -DCMAKE_BUILD_TYPE=Release + cmake --build build --config Release + # This next step may require sudo or admin privileges if you're installing to a system location, + # which is the default. + sudo cmake --install build --config Release + popd - name: Restore from cache and install vcpkg uses: lukka/run-vcpkg@v7 @@ -100,15 +127,7 @@ jobs: - name: Install vcpkg dependencies run: | $VCPKG_ROOT/vcpkg install libvpx libyuv opus - shell: bash - - - name: Install Rust toolchain - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - target: ${{ matrix.job.target }} - override: true - profile: minimal # minimal component installation (ie, no documentation) + shell: bash - name: Show version information (Rust, cargo, GCC) shell: bash @@ -122,12 +141,19 @@ jobs: - uses: Swatinem/rust-cache@v1 - - name: Build - uses: actions-rs/cargo@v1 - with: - use-cross: ${{ matrix.job.use-cross }} - command: build - args: --locked --release --target=${{ matrix.job.target }} +# - name: Build +# uses: actions-rs/cargo@v1 +# with: +# use-cross: ${{ matrix.job.use-cross }} +# command: build +# args: --locked --release --target=${{ matrix.job.target }} --features flutter -v + + - name: Build Flutter + run: | + pushd flutter + flutter pub get + flutter build linux --release -v + popd # - name: Strip debug information from executable # id: strip