mirror of
https://github.com/libretro/mist.git
synced 2026-11-07 04:16:02 -10:00
151 lines
5.0 KiB
YAML
151 lines
5.0 KiB
YAML
stages:
|
|
- build
|
|
- package
|
|
|
|
image: $CI_SERVER_HOST:5050/libretro-steam/rust-build-image:cross
|
|
|
|
.build-common:
|
|
stage: build
|
|
needs:
|
|
- project: libretro-steam/steamworks
|
|
job: package
|
|
ref: v1.65
|
|
artifacts: true
|
|
script: &build_common_script
|
|
- echo building for $RUST_TARGET
|
|
- STEAMWORKS_SDK="$(pwd)/steamworks" cargo build --release --target=$RUST_TARGET --bin mist --features=mist-bin
|
|
- cargo build --release --target=$RUST_TARGET --lib --package mist
|
|
|
|
build-linux-arm64:
|
|
image: $CI_SERVER_HOST:5050/libretro-steam/rust-build-image:latest
|
|
extends: .build-common
|
|
artifacts:
|
|
paths:
|
|
- mist-linux-arm64
|
|
expire_in: 1 hour
|
|
variables:
|
|
RUST_TARGET: aarch64-unknown-linux-gnu
|
|
script:
|
|
- *build_common_script
|
|
- mkdir -p mist-linux-arm64/mist
|
|
- cp ./target/$RUST_TARGET/release/libmist.so ./mist-linux-arm64
|
|
- cp ./target/$RUST_TARGET/release/mist ./mist-linux-arm64/mist
|
|
- cp ./steamworks/redistributable_bin/linuxarm64/libsteam_api.so ./mist-linux-arm64/mist
|
|
|
|
build-linux-x64:
|
|
image: $CI_SERVER_HOST:5050/libretro-steam/rust-build-image:latest
|
|
extends: .build-common
|
|
artifacts:
|
|
paths:
|
|
- mist-linux-x64
|
|
expire_in: 1 hour
|
|
variables:
|
|
RUST_TARGET: x86_64-unknown-linux-gnu
|
|
script:
|
|
- *build_common_script
|
|
- mkdir -p mist-linux-x64/mist
|
|
- cp ./target/$RUST_TARGET/release/libmist.so ./mist-linux-x64
|
|
- cp ./target/$RUST_TARGET/release/mist ./mist-linux-x64/mist
|
|
- cp ./steamworks/redistributable_bin/linux64/libsteam_api.so ./mist-linux-x64/mist
|
|
|
|
.build-osx-common:
|
|
extends: .build-common
|
|
script: &build_osx_common_script
|
|
- *build_common_script
|
|
- mkdir -p $MIST_PATH/mist
|
|
- cp ./target/$RUST_TARGET/release/libmist.dylib ./$MIST_PATH/
|
|
- cp ./target/$RUST_TARGET/release/mist ./$MIST_PATH/mist/
|
|
- cp ./steamworks/redistributable_bin/osx/libsteam_api.dylib ./$MIST_PATH/mist/
|
|
|
|
build-osx-arm64:
|
|
extends: .build-osx-common
|
|
image: $CI_SERVER_HOST:5050/libretro-steam/rust-build-image:osx-aarch64
|
|
artifacts:
|
|
paths:
|
|
- mist-osx-arm64
|
|
expire_in: 1 hour
|
|
variables:
|
|
RUST_TARGET: aarch64-apple-darwin
|
|
MIST_PATH: mist-osx-arm64
|
|
script:
|
|
- export LINKER_FILE="/osxcross/target/bin/arm64-apple-${TOOLCHAIN_VERSION}-clang"
|
|
- export CARGO_TARGET_AARCH64_APPLE_DARWIN_LINKER="${LINKER_FILE}"
|
|
- *build_osx_common_script
|
|
|
|
build-osx-x64:
|
|
extends: .build-osx-common
|
|
image: $CI_SERVER_HOST:5050/libretro-steam/rust-build-image:osx
|
|
artifacts:
|
|
paths:
|
|
- mist-osx-x64
|
|
expire_in: 1 hour
|
|
variables:
|
|
RUST_TARGET: x86_64-apple-darwin
|
|
MIST_PATH: mist-osx-x64
|
|
MACOSX_DEPLOYMENT_TARGET: "10.12"
|
|
script:
|
|
- export LINKER_FILE="/osxcross/target/bin/x86_64-apple-${TOOLCHAIN_VERSION}-clang"
|
|
- export CARGO_TARGET_X86_64_APPLE_DARWIN_LINKER="${LINKER_FILE}"
|
|
- *build_osx_common_script
|
|
|
|
build-windows-x64:
|
|
extends: .build-common
|
|
artifacts:
|
|
paths:
|
|
- mist-windows-x64
|
|
expire_in: 1 hour
|
|
variables:
|
|
RUST_TARGET: x86_64-pc-windows-gnu
|
|
script:
|
|
- *build_common_script
|
|
- mkdir -p ./mist-windows-x64/mist
|
|
- cp ./target/$RUST_TARGET/release/mist.dll ./mist-windows-x64
|
|
- cp ./target/$RUST_TARGET/release/mist.exe ./mist-windows-x64/mist
|
|
- cp ./steamworks/redistributable_bin/win64/steam_api64.dll ./mist-windows-x64/mist
|
|
|
|
package:
|
|
stage: package
|
|
needs:
|
|
- job: build-windows-x64
|
|
artifacts: true
|
|
- job: build-linux-arm64
|
|
artifacts: true
|
|
- job: build-linux-x64
|
|
artifacts: true
|
|
- job: build-osx-x64
|
|
artifacts: true
|
|
- job: build-osx-arm64
|
|
artifacts: true
|
|
artifacts:
|
|
paths:
|
|
- mist
|
|
expire_in: 1 hour
|
|
script:
|
|
# Generate third party licenses
|
|
- cargo install --version 0.6.4 --locked cargo-about
|
|
- cargo about generate about.hbs > ./mist-ThirdPartyLicenses.txt
|
|
- rm -rf mist/ && mkdir -p mist/
|
|
# Linux
|
|
- cp -r ./mist-linux-arm64 ./mist/
|
|
- cp -r ./include ./mist/mist-linux-arm64
|
|
- cp ./LICENSE ./mist/mist-linux-arm64/mist/mist-LICENSE.txt
|
|
- cp ./mist-ThirdPartyLicenses.txt ./mist/mist-linux-arm64/mist/
|
|
- cp -r ./mist-linux-x64 ./mist/
|
|
- cp -r ./include ./mist/mist-linux-x64
|
|
- cp ./LICENSE ./mist/mist-linux-x64/mist/mist-LICENSE.txt
|
|
- cp ./mist-ThirdPartyLicenses.txt ./mist/mist-linux-x64/mist/
|
|
# Mac
|
|
- mkdir -p ./mist/mist-osx/mist/
|
|
- cp -r ./include ./mist/mist-osx
|
|
- llvm-lipo-19 -create -output ./mist/mist-osx/libmist.dylib ./mist-osx-arm64/libmist.dylib ./mist-osx-x64/libmist.dylib
|
|
# the libsteam_api.dylib is already universal
|
|
- cp ./mist-osx-x64/mist/libsteam_api.dylib ./mist/mist-osx/mist/
|
|
- llvm-lipo-19 -create -output ./mist/mist-osx/mist/mist ./mist-osx-arm64/mist/mist ./mist-osx-x64/mist/mist
|
|
- cp ./LICENSE ./mist/mist-osx/mist/mist-LICENSE.txt
|
|
- cp ./mist-ThirdPartyLicenses.txt ./mist/mist-osx/mist/
|
|
# Windows
|
|
- cp -r ./mist-windows-x64 ./mist/
|
|
- cp -r ./include ./mist/mist-windows-x64
|
|
- cp ./LICENSE ./mist/mist-windows-x64/mist/mist-LICENSE.txt
|
|
- cp ./mist-ThirdPartyLicenses.txt ./mist/mist-windows-x64/mist/
|