{ 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