at 24.11-pre 68 lines 1.8 kB view raw
1{ bazel 2, bazelTest 3, bazel-examples 4, stdenv 5, darwin 6, extraBazelArgs ? "" 7, lib 8, openjdk8 9, jdk11_headless 10, runLocal 11, runtimeShell 12, writeScript 13, writeText 14, distDir 15}: 16 17let 18 19 toolsBazel = writeScript "bazel" '' 20 #! ${runtimeShell} 21 22 export CXX='${stdenv.cc}/bin/clang++' 23 export LD='${darwin.cctools}/bin/ld' 24 export LIBTOOL='${darwin.cctools}/bin/libtool' 25 export CC='${stdenv.cc}/bin/clang' 26 27 # XXX: hack for macosX, this flags disable bazel usage of xcode 28 # See: https://github.com/bazelbuild/bazel/issues/4231 29 export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 30 31 exec "$BAZEL_REAL" "$@" 32 ''; 33 34 workspaceDir = runLocal "our_workspace" {} ('' 35 cp -r ${bazel-examples}/java-tutorial $out 36 find $out -type d -exec chmod 755 {} \; 37 '' 38 + (lib.optionalString stdenv.isDarwin '' 39 mkdir $out/tools 40 cp ${toolsBazel} $out/tools/bazel 41 '')); 42 43 testBazel = bazelTest { 44 name = "${bazel.pname}-test-java"; 45 inherit workspaceDir; 46 bazelPkg = bazel; 47 buildInputs = [ (if lib.strings.versionOlder bazel.version "5.0.0" then openjdk8 else jdk11_headless) ]; 48 bazelScript = '' 49 ${bazel}/bin/bazel \ 50 run \ 51 --announce_rc \ 52 ${lib.optionalString (lib.strings.versionOlder "5.0.0" bazel.version) 53 "--toolchain_resolution_debug='@bazel_tools//tools/jdk:(runtime_)?toolchain_type'" 54 } \ 55 --distdir=${distDir} \ 56 --verbose_failures \ 57 --curses=no \ 58 --strict_java_deps=off \ 59 //:ProjectRunner \ 60 '' + lib.optionalString (lib.strings.versionOlder bazel.version "5.0.0") '' 61 --host_javabase='@local_jdk//:jdk' \ 62 --java_toolchain='@bazel_tools//tools/jdk:toolchain_hostjdk8' \ 63 --javabase='@local_jdk//:jdk' \ 64 '' + extraBazelArgs; 65 }; 66 67in testBazel 68