{ pkgs, src }: let version = "0.99"; wfvm = import ../wfvm.nix { inherit pkgs; }; conda-vs2015_runtime-filename = "vs2015_runtime-14.27.29016-h5e58377_2.tar.bz2"; conda-vs2015_runtime = pkgs.fetchurl { url = "https://anaconda.org/anaconda/vs2015_runtime/14.27.29016/download/win-64/${conda-vs2015_runtime-filename}"; sha256 = "00cmda5iwx2f5bwm26fh3id97d458kza6ac6cvb1z6s7iirvs7fg"; }; conda-cmake-filename = "cmake-3.19.6-h9ad04ae_0.tar.bz2"; conda-cmake = pkgs.fetchurl { url = "https://anaconda.org/anaconda/cmake/3.19.6/download/win-64/${conda-cmake-filename}"; sha256 = "1q2pb18dh1nf0nlajf37l3nkj4mv39l8b3vn8jfsbfdhmnmgxxzf"; }; conda-zlib-filename = "zlib-1.2.11-h62dcd97_4.tar.bz2"; conda-zlib = pkgs.fetchurl { url = "https://anaconda.org/anaconda/zlib/1.2.11/download/win-64/${conda-zlib-filename}"; sha256 = "1jxd7sg0c278hqv09q6hridpdnyhkd34gbs92wkravj3gwsr1adk"; }; conda-libuv-filename = "libuv-1.40.0-he774522_0.tar.bz2"; conda-libuv = pkgs.fetchurl { url = "https://anaconda.org/anaconda/libuv/1.40.0/download/win-64/${conda-libuv-filename}"; sha256 = "1idwyavjg2vg6bgb1xpghxdc2cydj42g8bysyh4fw2c2yfksqb1c"; }; conda-llvm-filename = "llvm-11.1.0-h2eaa2aa_0.tar.bz2"; conda-llvm = pkgs.fetchurl { url = "https://anaconda.org/anaconda/llvm/11.1.0/download/win-64/${conda-llvm-filename}"; sha256 = "12dgx3nkcghsp1x76jqxcdbi27kq1b5ymwg1r9ralhcfcj8phyij"; }; conda-llvmdev-filename = "llvmdev-11.1.0-h425c57c_0.tar.bz2"; conda-llvmdev = pkgs.fetchurl { url = "https://anaconda.org/anaconda/llvmdev/11.1.0/download/win-64/${conda-llvmdev-filename}"; sha256 = "0p3jc170k11g2c00fnnm4jbla13mxkw1bn7fxz3bjhsq2ng9rgs8"; }; conda-libllvm11-filename = "libllvm11-11.1.0-h425c57c_0.tar.bz2"; conda-libllvm11 = pkgs.fetchurl { url = "https://anaconda.org/anaconda/libllvm11/11.1.0/download/win-64/${conda-libllvm11-filename}"; sha256 = "1f27rjf4gwrzc7xf99s3vgnx6djwz002xxnrkb4mxm044103nadc"; }; conda-llvm-tools-filename = "llvm-tools-11.1.0-h425c57c_0.tar.bz2"; conda-llvm-tools = pkgs.fetchurl { url = "https://anaconda.org/anaconda/llvm-tools/11.1.0/download/win-64/${conda-llvm-tools-filename}"; sha256 = "10r7izmajws8376sck0in9b11hx5mpq1vwbi6mhzvrv91pkz1lqs"; }; build = wfvm.utils.wfvm-run { name = "build-llvmlite"; image = wfvm.makeWindowsImage { installCommands = with wfvm.layers; [ anaconda3 msvc msvc-ide-unbreak ]; }; script = '' ln -s ${conda-vs2015_runtime} ${conda-vs2015_runtime-filename} ln -s ${conda-cmake} ${conda-cmake-filename} ln -s ${conda-zlib} ${conda-zlib-filename} ln -s ${conda-libuv} ${conda-libuv-filename} ln -s ${conda-llvm} ${conda-llvm-filename} ln -s ${conda-llvmdev} ${conda-llvmdev-filename} ln -s ${conda-libllvm11} ${conda-libllvm11-filename} ln -s ${conda-llvm-tools} ${conda-llvm-tools-filename} ${wfvm.utils.win-exec}/bin/win-exec "mkdir fake-channel && mkdir fake-channel\win-64" ${wfvm.utils.win-put}/bin/win-put ${conda-vs2015_runtime-filename} ./fake-channel/win-64 ${wfvm.utils.win-put}/bin/win-put ${conda-cmake-filename} ./fake-channel/win-64 ${wfvm.utils.win-put}/bin/win-put ${conda-zlib-filename} ./fake-channel/win-64 ${wfvm.utils.win-put}/bin/win-put ${conda-libuv-filename} ./fake-channel/win-64 ${wfvm.utils.win-put}/bin/win-put ${conda-llvm-filename} ./fake-channel/win-64 ${wfvm.utils.win-put}/bin/win-put ${conda-llvmdev-filename} ./fake-channel/win-64 ${wfvm.utils.win-put}/bin/win-put ${conda-libllvm11-filename} ./fake-channel/win-64 ${wfvm.utils.win-put}/bin/win-put ${conda-llvm-tools-filename} ./fake-channel/win-64 ${wfvm.utils.win-exec}/bin/win-exec ".\Anaconda3\scripts\activate && conda index fake-channel" cat > meta.yaml << EOF package: name: llvmlite version: ${version} source: url: ../src.tar requirements: build: - cmake - llvmdev EOF cat > bld.bat << EOF @rem Let CMake know about the LLVM install path, for find_package() set CMAKE_PREFIX_PATH=%LIBRARY_PREFIX% @rem Ensure there are no build leftovers (CMake can complain) if exist ffi\build rmdir /S /Q ffi\build python setup.py install \ --prefix=%PREFIX% \ --single-version-externally-managed \ --record=record.txt \ --no-compile if errorlevel 1 exit 1 EOF ${wfvm.utils.win-exec}/bin/win-exec "mkdir llvmlite" ${wfvm.utils.win-put}/bin/win-put meta.yaml llvmlite ${wfvm.utils.win-put}/bin/win-put bld.bat llvmlite mkdir src pushd src tar xvf ${src} --strip-components=1 patch -p1 < ${../pkgs/llvmlite-callsite.diff} patch -p1 < ${../pkgs/llvmlite-abiname.diff} popd tar chf src.tar src ${wfvm.utils.win-put}/bin/win-put src.tar . ${wfvm.utils.win-exec}/bin/win-exec ".\Anaconda3\scripts\activate && conda build --no-anaconda-upload --no-test -c file:///C:/users/wfvm/fake-channel --override-channels --no-activate llvmlite" ${wfvm.utils.win-get}/bin/win-get "Anaconda3/conda-bld/win-64/llvmlite-${version}-0.tar.bz2" ''; }; in pkgs.runCommand "conda-windows-llvmlite" { buildInputs = [ build ]; } '' wfvm-run-build-llvmlite mkdir -p $out/win-64 $out/nix-support cp llvmlite-*.tar.bz2 $out/win-64 echo file conda $out/win-64/*.tar.bz2 >> $out/nix-support/hydra-build-products ''