mirror of
https://github.com/bdwgc/bdwgc-rust.git
synced 2026-09-26 12:13:39 -06:00
Compare commits
7
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6136c4f3f7 | ||
|
|
76bf20d8e3 | ||
|
|
08ea694983 | ||
|
|
d93e42910d | ||
|
|
df593ee27c | ||
|
|
6e18b7b12b | ||
|
|
e7fc7e39bf |
@@ -0,0 +1,11 @@
|
|||||||
|
name: setup
|
||||||
|
description: Sets up a build environment
|
||||||
|
inputs: {}
|
||||||
|
outputs: {}
|
||||||
|
runs:
|
||||||
|
using: composite
|
||||||
|
steps:
|
||||||
|
- uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
|
||||||
|
- uses: homebrew/actions/setup-homebrew@e99025eb970cfa124b8284a35463d87426917478 # main
|
||||||
|
- run: brew install autoconf automake libtool
|
||||||
|
shell: sh
|
||||||
@@ -9,7 +9,7 @@ permissions:
|
|||||||
pages: write
|
pages: write
|
||||||
id-token: write
|
id-token: write
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
document:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ on:
|
|||||||
- main
|
- main
|
||||||
pull_request:
|
pull_request:
|
||||||
jobs:
|
jobs:
|
||||||
lint:
|
clippy:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
@@ -30,3 +30,13 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- uses: lycheeverse/lychee-action@e7477775783ea5526144ba13e8db5eec57747ce8 # v2.9.0
|
- uses: lycheeverse/lychee-action@e7477775783ea5526144ba13e8db5eec57747ce8 # v2.9.0
|
||||||
|
lint:
|
||||||
|
needs:
|
||||||
|
- clippy
|
||||||
|
- format
|
||||||
|
- spell-check
|
||||||
|
- readme
|
||||||
|
if: always()
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- run: for result in ${{ join(needs.*.result, ' ') }}; do [ $result = success ]; done
|
||||||
|
|||||||
+39
-14
@@ -6,34 +6,59 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- ubuntu-latest
|
||||||
|
- ubuntu-26.04-arm
|
||||||
|
- macos-latest
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
|
- uses: ./.github/actions/setup
|
||||||
- run: cargo build
|
- run: cargo build
|
||||||
test:
|
unit_test:
|
||||||
runs-on: ubuntu-latest
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- ubuntu-latest
|
||||||
|
- ubuntu-26.04-arm
|
||||||
|
- macos-latest
|
||||||
|
options:
|
||||||
|
-
|
||||||
|
- --no-default-features --features cmake
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
|
- uses: ./.github/actions/setup
|
||||||
- run: cargo test
|
- run: cargo test ${{ matrix.options }}
|
||||||
examples:
|
examples:
|
||||||
runs-on: ubuntu-latest
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- ubuntu-latest
|
||||||
|
- ubuntu-26.04-arm
|
||||||
|
- macos-latest
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
with:
|
with:
|
||||||
submodules: true
|
submodules: true
|
||||||
- uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
|
- uses: ./.github/actions/setup
|
||||||
- run: tools/example_test.sh
|
- run: tools/example_test.sh
|
||||||
cmake:
|
test:
|
||||||
|
needs:
|
||||||
|
- build
|
||||||
|
- unit_test
|
||||||
|
- examples
|
||||||
|
if: always()
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
- run: for result in ${{ join(needs.*.result, ' ') }}; do [ $result = success ]; done
|
||||||
with:
|
|
||||||
submodules: true
|
|
||||||
- uses: swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
|
|
||||||
- run: cargo build --no-default-features --features cmake
|
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
use core::error::Error;
|
use core::error::Error;
|
||||||
use std::{env, path::PathBuf};
|
use std::{env, path::PathBuf};
|
||||||
|
|
||||||
|
// cspell: ignore reconf
|
||||||
|
|
||||||
const LIB_ATOMIC_OPS_DIR: &str = "vendor/libatomic_ops";
|
const LIB_ATOMIC_OPS_DIR: &str = "vendor/libatomic_ops";
|
||||||
const LIB_GC_DIR: &str = "vendor/bdwgc";
|
const LIB_GC_DIR: &str = "vendor/bdwgc";
|
||||||
|
|
||||||
@@ -52,14 +54,8 @@ cfg_select! {
|
|||||||
}
|
}
|
||||||
feature = "autotools" => {
|
feature = "autotools" => {
|
||||||
fn build_library() -> Result<(), Box<dyn Error>> {
|
fn build_library() -> Result<(), Box<dyn Error>> {
|
||||||
for dir in &[LIB_ATOMIC_OPS_DIR, LIB_GC_DIR] {
|
|
||||||
std::process::Command::new("sh")
|
|
||||||
.arg("-c")
|
|
||||||
.arg(format!("cd {dir} && ./autogen.sh"))
|
|
||||||
.output()?;
|
|
||||||
}
|
|
||||||
|
|
||||||
let dst = autotools::Config::new(LIB_ATOMIC_OPS_DIR)
|
let dst = autotools::Config::new(LIB_ATOMIC_OPS_DIR)
|
||||||
|
.reconf("-i")
|
||||||
.cflag("-fPIC")
|
.cflag("-fPIC")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
@@ -70,6 +66,7 @@ cfg_select! {
|
|||||||
println!("cargo:rustc-link-lib=static=atomic_ops");
|
println!("cargo:rustc-link-lib=static=atomic_ops");
|
||||||
|
|
||||||
let dst = autotools::Config::new(LIB_GC_DIR)
|
let dst = autotools::Config::new(LIB_GC_DIR)
|
||||||
|
.reconf("-i")
|
||||||
.cflag(format!(
|
.cflag(format!(
|
||||||
// spell-checker: disable-next-line
|
// spell-checker: disable-next-line
|
||||||
"-I{} -L/lib/x86_64-linux-gnu -lpthread -fPIC",
|
"-I{} -L/lib/x86_64-linux-gnu -lpthread -fPIC",
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
"dealloc",
|
"dealloc",
|
||||||
"finalizer",
|
"finalizer",
|
||||||
"gcollect",
|
"gcollect",
|
||||||
|
"gitsubmodule",
|
||||||
"libatomic",
|
"libatomic",
|
||||||
"libc",
|
"libc",
|
||||||
"libclang",
|
"libclang",
|
||||||
|
|||||||
Reference in New Issue
Block a user