aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/cpp-test.nix
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/cpp-test.nix
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/cpp-test.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/cpp-test.nix51
1 files changed, 51 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/cpp-test.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/cpp-test.nix
new file mode 100644
index 000000000000..f4e03abdbc94
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/cpp-test.nix
@@ -0,0 +1,51 @@
+{
+ bazel
+, bazelTest
+, bazel-examples
+, gccStdenv
+, lib
+, runLocal
+, runtimeShell
+, writeScript
+, writeText
+, distDir
+}:
+
+let
+
+ toolsBazel = writeScript "bazel" ''
+ #! ${runtimeShell}
+
+ export CXX='${gccStdenv.cc}/bin/g++'
+ export LD='${gccStdenv.cc}/bin/ld'
+ export CC='${gccStdenv.cc}/bin/gcc'
+
+ # XXX: hack for macosX, this flags disable bazel usage of xcode
+ # See: https://github.com/bazelbuild/bazel/issues/4231
+ export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
+
+ exec "$BAZEL_REAL" "$@"
+ '';
+
+ workspaceDir = runLocal "our_workspace" {} (''
+ cp -r ${bazel-examples}/cpp-tutorial/stage3 $out
+ find $out -type d -exec chmod 755 {} \;
+ ''
+ + (lib.optionalString gccStdenv.isDarwin ''
+ mkdir $out/tools
+ cp ${toolsBazel} $out/tools/bazel
+ ''));
+
+ testBazel = bazelTest {
+ name = "bazel-test-cpp";
+ inherit workspaceDir;
+ bazelPkg = bazel;
+ bazelScript = ''
+ ${bazel}/bin/bazel \
+ build --verbose_failures \
+ --distdir=${distDir} \
+ //...
+ '';
+ };
+
+in testBazel