Build C dependencies before C++ to fix linking on Rust nightly

See discussion in https://github.com/rust-lang/rust/issues/95561
pull/223/head
Wilfred Hughes 2022-04-03 10:37:27 +07:00
parent 669ee1af89
commit 42884b73a0
2 changed files with 25 additions and 26 deletions

@ -1,22 +1,20 @@
# name: Coverage
name: Coverage
# on: [pull_request, push]
on: [pull_request, push]
# jobs:
# coverage:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# - name: Install Rust
# run: rustup toolchain install nightly --component llvm-tools-preview
# - name: Install cargo-llvm-cov
# uses: taiki-e/install-action@cargo-llvm-cov
# - name: Generate code coverage
# run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info
# - name: Upload coverage to Codecov
# uses: codecov/codecov-action@v1
# with:
# files: lcov.info
# fail_ci_if_error: true
jobs:
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Rust
run: rustup toolchain install nightly --component llvm-tools-preview
- name: Install cargo-llvm-cov
run: curl -LsSf https://github.com/taiki-e/cargo-llvm-cov/releases/latest/download/cargo-llvm-cov-x86_64-unknown-linux-gnu.tar.gz | tar xzf - -C ~/.cargo/bin
- name: Generate code coverage
run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
files: lcov.info
fail_ci_if_error: true

@ -22,6 +22,13 @@ impl TreeSitterParser {
}
}
let mut build = cc::Build::new();
build.include(&dir).warnings(false); // ignore unused parameter warnings
for file in c_files {
build.file(dir.join(file));
}
build.compile(self.name);
if !cpp_files.is_empty() {
let mut cpp_build = cc::Build::new();
cpp_build
@ -43,12 +50,6 @@ impl TreeSitterParser {
cpp_build.compile(&format!("{}-cpp", self.name));
}
let mut build = cc::Build::new();
build.include(&dir).warnings(false); // ignore unused parameter warnings
for file in c_files {
build.file(dir.join(file));
}
build.compile(self.name);
}
}