at 24.11-pre 86 lines 1.7 kB view raw
1{ 2 bazel 3, bazelTest 4, stdenv 5, darwin 6, extraBazelArgs ? "" 7, lib 8, runLocal 9, runtimeShell 10, writeScript 11, writeText 12, distDir 13}: 14 15let 16 toolsBazel = writeScript "bazel" '' 17 #! ${runtimeShell} 18 19 export CXX='${stdenv.cc}/bin/clang++' 20 export LD='${darwin.cctools}/bin/ld' 21 export LIBTOOL='${darwin.cctools}/bin/libtool' 22 export CC='${stdenv.cc}/bin/clang' 23 24 # XXX: hack for macosX, this flags disable bazel usage of xcode 25 # See: https://github.com/bazelbuild/bazel/issues/4231 26 export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 27 28 exec "$BAZEL_REAL" "$@" 29 ''; 30 31 WORKSPACE = writeText "WORKSPACE" '' 32 workspace(name = "our_workspace") 33 ''; 34 35 pythonLib = writeText "lib.py" '' 36 def foo(): 37 return 43 38 ''; 39 40 pythonBin = writeText "bin.py" '' 41 from lib import foo 42 43 assert foo() == 43 44 ''; 45 46 pythonBUILD = writeText "BUILD" '' 47 py_library( 48 name = "lib", 49 srcs = [ "lib.py" ], 50 ) 51 52 py_binary( 53 name = "bin", 54 srcs = [ "bin.py" ], 55 imports = [ "." ], 56 deps = [ ":lib" ], 57 ) 58 ''; 59 60 workspaceDir = runLocal "our_workspace" {} ('' 61 mkdir $out 62 cp ${WORKSPACE} $out/WORKSPACE 63 mkdir $out/python 64 cp ${pythonLib} $out/python/lib.py 65 cp ${pythonBin} $out/python/bin.py 66 cp ${pythonBUILD} $out/python/BUILD.bazel 67 '' 68 + (lib.optionalString stdenv.isDarwin '' 69 mkdir $out/tools 70 cp ${toolsBazel} $out/tools/bazel 71 '')); 72 73 testBazel = bazelTest { 74 name = "${bazel.pname}-test-builtin-rules"; 75 inherit workspaceDir; 76 bazelPkg = bazel; 77 bazelScript = '' 78 ${bazel}/bin/bazel \ 79 run \ 80 --distdir=${distDir} \ 81 ${extraBazelArgs} \ 82 //python:bin 83 ''; 84 }; 85 86in testBazel