mirror of
https://github.com/libretro/mist.git
synced 2026-11-07 04:16:02 -10:00
Add automated ci
This commit is contained in:
1 parent
f4584a3be0
commit
c194b180d6
5 files changed
+107
-4
No files matched your search
@@ -0,0 +1,73 @@
|
||||
stages:
|
||||
- build
|
||||
- package
|
||||
|
||||
image: $CI_SERVER_HOST:5050/libretro-steam/rust-build-image:latest
|
||||
|
||||
.build-common:
|
||||
stage: build
|
||||
needs:
|
||||
- project: libretro-steam/steamworks
|
||||
job: package
|
||||
ref: master
|
||||
artifacts: true
|
||||
script: &build_common_script
|
||||
- STEAMWORKS_SDK="$(pwd)/steamworks" cargo build --release --target=$RUST_TARGET --bin mist --features=steamworks
|
||||
- cargo build --release --target=$RUST_TARGET --lib --package mist
|
||||
|
||||
build-linux-x64:
|
||||
extends: .build-common
|
||||
artifacts:
|
||||
paths:
|
||||
- mist-linux-x64
|
||||
expire_in: 1 hour
|
||||
variables:
|
||||
RUST_TARGET: x86_64-unknown-linux-gnu
|
||||
script:
|
||||
- *build_common_script
|
||||
- STEAMWORKS_SDK="$(pwd)/steamworks" cargo build --release --target=$RUST_TARGET --bin app_install_dir
|
||||
- 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 ./target/$RUST_TARGET/release/app_install_dir ./mist-linux-x64/mist
|
||||
- cp ./steamworks/redistributable_bin/linux64/libsteam_api.so ./mist-linux-x64/mist
|
||||
|
||||
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-x64
|
||||
artifacts: true
|
||||
artifacts:
|
||||
paths:
|
||||
- mist
|
||||
expire_in: 1 hour
|
||||
script:
|
||||
# Generate third party licenses
|
||||
- cargo install cargo-about
|
||||
- cargo about generate about.hbs > ./mist-ThirdPartyLicenses.txt
|
||||
- rm -rf mist/ && mkdir -p mist/
|
||||
# Linux
|
||||
- cp -r ./mist-linux-x64 ./mist/
|
||||
- cp ./LICENSE ./mist/mist-linux-x64/mist/mist-LICENSE.txt
|
||||
- cp ./mist-ThirdPartyLicenses.txt ./mist/mist-linux-x64/mist/
|
||||
# Windows
|
||||
- cp -r ./mist-windows-x64 ./mist/
|
||||
- cp ./LICENSE ./mist/mist-windows-x64/mist/mist-LICENSE.txt
|
||||
- cp ./mist-ThirdPartyLicenses.txt ./mist/mist-windows-x64/mist/
|
||||
@@ -0,0 +1,9 @@
|
||||
{{#each licenses ~}}
|
||||
{{#each used_by ~}}
|
||||
{{crate.name}} {{crate.version}} {{#if crate.repository}} {{crate.repository}} {{else}} https://crates.io/crates/{{crate.name}} {{/if}}
|
||||
{{/each}}
|
||||
{{{text}}}
|
||||
|
||||
================================================================================
|
||||
|
||||
{{/each ~}}
|
||||
@@ -0,0 +1,7 @@
|
||||
accepted = [
|
||||
"Apache-2.0",
|
||||
"MIT",
|
||||
]
|
||||
|
||||
ignore-build-dependencies = true
|
||||
ignore-dev-dependencies = true
|
||||
+4
-1
@@ -51,7 +51,10 @@ fn run() -> Result<()> {
|
||||
let mut server = MistServer::create(service, std::io::stdin(), std::io::stdout());
|
||||
// Tell the library that we have initialized
|
||||
if let Err(err) = server.write_data(&MistServiceToLibrary::Initialized) {
|
||||
eprintln!("[mist] Error writing intialized message to library: {}", err);
|
||||
eprintln!(
|
||||
"[mist] Error writing intialized message to library: {}",
|
||||
err
|
||||
);
|
||||
std::process::exit(1);
|
||||
}
|
||||
|
||||
|
||||
+14
-3
@@ -9,7 +9,9 @@ fn main() {
|
||||
PathBuf::from(env::var("STEAMWORKS_SDK").expect("The STEAMWORKS_SDK variable is missing"));
|
||||
let out_path = PathBuf::from(env::var("OUT_DIR").unwrap());
|
||||
|
||||
match env::var("TARGET").unwrap().as_str() {
|
||||
let target = env::var("TARGET").unwrap();
|
||||
|
||||
match target.as_str() {
|
||||
// Linux 64-bit
|
||||
"x86_64-unknown-linux-gnu" => {
|
||||
fs::copy(
|
||||
@@ -45,7 +47,7 @@ fn main() {
|
||||
other => panic!("Unsupported target: {}", other),
|
||||
};
|
||||
|
||||
let bindings = bindgen::Builder::default()
|
||||
let mut bindings_builder = bindgen::Builder::default()
|
||||
.header(
|
||||
sdk_path
|
||||
.join("public/steam/steam_api_flat.h")
|
||||
@@ -55,7 +57,16 @@ fn main() {
|
||||
"-I{}",
|
||||
Path::new(&sdk_path).join("public").to_string_lossy()
|
||||
))
|
||||
.clang_args(&["-xc++"])
|
||||
.clang_args(&["-xc++"]);
|
||||
|
||||
#[cfg(unix)]
|
||||
{
|
||||
if target == "x86_64-pc-windows-gnu" {
|
||||
bindings_builder = bindings_builder.clang_arg("-I/usr/x86_64-w64-mingw32/include/");
|
||||
}
|
||||
}
|
||||
|
||||
let bindings = bindings_builder
|
||||
.generate()
|
||||
.expect("Unable to generate bindings");
|
||||
|
||||
|
||||
Reference in new issue
Block a user