File tree Expand file tree Collapse file tree 4 files changed +19
-7
lines changed
Expand file tree Collapse file tree 4 files changed +19
-7
lines changed Original file line number Diff line number Diff line change 1111 strategy :
1212 fail-fast : false
1313 matrix :
14- config : [default, llvm]
14+ config : [default, llvm, gnu32 ]
1515
1616 name : build • ${{ matrix.config }}
1717
Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ To run jobs locally:
1818``` bash
1919CI_CONFIG=ci/configs/default.sh ci/scripts/run.sh
2020CI_CONFIG=ci/configs/llvm.sh ci/scripts/run.sh
21+ CI_CONFIG=ci/configs/gnu32.sh ci/scripts/run.sh
2122```
2223
2324By default CI jobs will reuse their build directories. ` CI_CLEAN=1 ` can be specified to delete them before running instead.
Original file line number Diff line number Diff line change 1+ CI_DESC=" CI job cross-compiling to 32-bit"
2+ CI_DIR=build-gnu32
3+ NIX_ARGS=(
4+ --arg minimal true
5+ --arg crossPkgs ' import <nixpkgs> { crossSystem = { config = "i686-unknown-linux-gnu"; }; }'
6+ )
7+ export CXXFLAGS=" -Werror -Wall -Wextra -Wpedantic -Wno-unused-parameter"
8+ CMAKE_ARGS=(-G Ninja)
9+ BUILD_ARGS=(-k 0)
Original file line number Diff line number Diff line change 11{ pkgs ? import <nixpkgs> { }
2+ , crossPkgs ? import <nixpkgs> { }
23, enableLibcxx ? false # Whether to use libc++ toolchain and libraries instead of libstdc++
4+ , minimal ? false # Whether to create minimal shell without extra tools (faster when cross compiling)
35} :
46
57let
68 lib = pkgs . lib ;
7- llvm = pkgs . llvmPackages_20 ;
8- capnproto = pkgs . capnproto . override ( lib . optionalAttrs enableLibcxx { clangStdenv = llvm . libcxxStdenv ; } ) ;
9+ llvm = crossPkgs . llvmPackages_20 ;
10+ capnproto = crossPkgs . capnproto . override ( lib . optionalAttrs enableLibcxx { clangStdenv = llvm . libcxxStdenv ; } ) ;
911 clang = if enableLibcxx then llvm . libcxxClang else llvm . clang ;
1012 clang-tools = llvm . clang-tools . override { inherit enableLibcxx ; } ;
11- in pkgs . mkShell {
13+ in crossPkgs . mkShell {
1214 buildInputs = [
1315 capnproto
14- llvm . libcxx
1516 ] ;
1617 nativeBuildInputs = with pkgs ; [
17- clang
18- clang-tools
1918 cmake
2019 include-what-you-use
2120 ninja
21+ ] ++ lib . optionals ( ! minimal ) [
22+ clang
23+ clang-tools
2224 ] ;
2325
2426 # Tell IWYU where its libc++ mapping lives
You can’t perform that action at this time.
0 commit comments