37 lines
1.1 KiB
Nix
37 lines
1.1 KiB
Nix
|
with import ./. {};
|
||
|
with darwin.apple_sdk.frameworks;
|
||
|
|
||
|
# XXX On Darwin, workaround
|
||
|
# https://github.com/NixOS/nixpkgs/issues/42059. See also
|
||
|
# https://github.com/NixOS/nixpkgs/pull/41589.
|
||
|
let cc = runCommand "cc-wrapper-bazel" {
|
||
|
buildInputs = [ pkgs.stdenv.cc makeWrapper ];
|
||
|
}
|
||
|
''
|
||
|
mkdir -p $out/bin
|
||
|
|
||
|
# Copy the content of pkgs.stdenv.cc
|
||
|
for i in ${pkgs.stdenv.cc}/bin/*
|
||
|
do
|
||
|
ln -sf $i $out/bin
|
||
|
done
|
||
|
|
||
|
# Override clang
|
||
|
rm $out/bin/clang
|
||
|
|
||
|
makeWrapper ${pkgs.stdenv.cc}/bin/clang $out/bin/clang \
|
||
|
--add-flags "-isystem ${llvmPackages.libcxx}/include/c++/v1 \
|
||
|
-F${CoreFoundation}/Library/Frameworks \
|
||
|
-F${CoreServices}/Library/Frameworks \
|
||
|
-F${Security}/Library/Frameworks \
|
||
|
-F${Foundation}/Library/Frameworks \
|
||
|
-L${libcxx}/lib \
|
||
|
-L${darwin.libobjc}/lib"
|
||
|
'';
|
||
|
stdenv = if pkgs.stdenv.isDarwin then overrideCC pkgs.stdenv cc else pkgs.stdenv;
|
||
|
in
|
||
|
buildEnv {
|
||
|
name = "bazel-cc-toolchain";
|
||
|
paths = [ stdenv.cc ] ++ (if stdenv.isDarwin then [ ] else [ binutils ]);
|
||
|
}
|