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 11
11
strategy :
12
12
fail-fast : false
13
13
matrix :
14
- config : [default, llvm]
14
+ config : [default, llvm, gnu32 ]
15
15
16
16
name : build • ${{ matrix.config }}
17
17
Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ To run jobs locally:
18
18
``` bash
19
19
CI_CONFIG=ci/configs/default.sh ci/scripts/run.sh
20
20
CI_CONFIG=ci/configs/llvm.sh ci/scripts/run.sh
21
+ CI_CONFIG=ci/configs/gnu32.sh ci/scripts/run.sh
21
22
```
22
23
23
24
By 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 1
1
{ pkgs ? import <nixpkgs> { }
2
+ , crossPkgs ? import <nixpkgs> { }
2
3
, 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)
3
5
} :
4
6
5
7
let
6
8
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 ; } ) ;
9
11
clang = if enableLibcxx then llvm . libcxxClang else llvm . clang ;
10
12
clang-tools = llvm . clang-tools . override { inherit enableLibcxx ; } ;
11
- in pkgs . mkShell {
13
+ in crossPkgs . mkShell {
12
14
buildInputs = [
13
15
capnproto
14
- llvm . libcxx
15
16
] ;
16
17
nativeBuildInputs = with pkgs ; [
17
- clang
18
- clang-tools
19
18
cmake
20
19
include-what-you-use
21
20
ninja
21
+ ] ++ lib . optionals ( ! minimal ) [
22
+ clang
23
+ clang-tools
22
24
] ;
23
25
24
26
# Tell IWYU where its libc++ mapping lives
You can’t perform that action at this time.
0 commit comments