name: Build ksud
on:
  workflow_call:
    inputs:
      target:
        required: true
        type: string
      os:
        required: false
        type: string
        default: ubuntu-latest
      pack_lkm:
        required: false
        type: boolean
        default: true
      use_cache:
        required: false
        type: boolean
        default: true
jobs:
  build:
    runs-on: ${{ inputs.os }}
    steps:
    - uses: actions/checkout@v4
      with:
        fetch-depth: 0

    - name: Download artifacts
      uses: actions/download-artifact@v4
    
    - name: Prepare LKM fies
      if: ${{ inputs.pack_lkm }}
      run: |
        cp android*-lkm/*_kernelsu.ko ./userspace/ksud/bin/aarch64/
        
    - name: Setup rustup
      run: |
        rustup update stable
        rustup target add x86_64-apple-darwin
        rustup target add aarch64-apple-darwin
    - uses: Swatinem/rust-cache@v2
      with:
        workspaces: userspace/ksud
        cache-targets: false

    - name: Install cross
      run: |
        cargo install cross --git https://github.com/cross-rs/cross --rev 66845c1

    - name: Build ksud
      run: CROSS_NO_WARNINGS=0 cross build --target ${{ inputs.target }} --release --manifest-path ./userspace/ksud/Cargo.toml

    - name: Upload ksud artifact
      uses: actions/upload-artifact@v4
      with:
        name: ksud-${{ inputs.target }}
        path: userspace/ksud/target/**/release/ksud*
