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