36 lines
1.1 KiB
Nix
36 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 ]);
|
|
}
|