Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- { pkgs ? import <nixpkgs> { } }:
- with pkgs;
- let
- eigen = pkgs.fetchzip {
- url = "https://storage.googleapis.com/mirror.tensorflow.org/gitlab.com/libeigen/eigen/-/archive/352f1422d3ceea19a04cab297c6339e0870e1c6c/eigen-352f1422d3ceea19a04cab297c6339e0870e1c6c.tar.gz";
- #url = "https://gitlab.com/libeigen/eigen/-/archive/352f1422d3ceea19a04cab297c6339e0870e1c6c/eigen-352f1422d3ceea19a04cab297c6339e0870e1c6c.tar.gz";
- sha256 = "0w9nx9xcg2ac9rmcfffg9nxr29wswi7f7f9cy9slf5z523p979mz";
- };
- gemmlowp = pkgs.fetchzip {
- url = "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/gemmlowp/archive/fda83bdc38b118cc6b56753bd540caa49e570745.zip";
- sha256 = "1sbp8kmr2azwlvfbzryy1frxi99jhsh1nc93bdbxdf8zdgpv0kxl";
- };
- ruy = pkgs.fetchzip {
- url = "https://github.com/google/ruy/archive/4790797d11a81f96baf24f3731fd3ca44c2c5f8b.zip";
- sha256 = "0b0ydm8q4zqc6g2yzx5j9mgnyf4xck5faxs9bhixvvv1d1fn7vii";
- };
- googletest = pkgs.fetchzip {
- url = "https://github.com/google/googletest/archive/release-1.8.0.tar.gz";
- sha256 = "0bjlljmbf8glnd9qjabx73w6pd7ibv43yiyngqvmvgxsabzr8399";
- };
- absl = pkgs.fetchzip {
- url = "https://storage.googleapis.com/mirror.tensorflow.org/github.com/abseil/abseil-cpp/archive/df3ea785d8c30a9503321a3d35ee7d35808f190d.tar.gz";
- sha256 = "035bffayslawc19q2gmlkr6n6r7k7mvriaq7352rv6gyzaplr98w";
- };
- neon = pkgs.fetchzip {
- url = "https://github.com/intel/ARM_NEON_2_x86_SSE/archive/master.zip";
- sha256 = "0ai5c9gkrwafabq9naq3ycxdc394n95xiq0wharg9r5wpfh8fg3b";
- };
- farmhash = pkgs.fetchzip {
- url = "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/farmhash/archive/816a4ae622e964763ca0862d9dbd19324a1eaf45.tar.gz";
- sha256 = "1mqxsljq476n1hb8ilkrpb39yz3ip2hnc7rhzszz4sri8ma7qzp6";
- };
- flatbuffers = pkgs.fetchzip {
- url = "https://github.com/google/flatbuffers/archive/v1.12.0.tar.gz";
- sha256 = "0f7xd66vc1lzjbn7jzd5kyqrgxpsfxi4zc7iymhb5xrwyxipjl1g";
- };
- fft2d = pkgs.fetchzip {
- url ="https://storage.googleapis.com/mirror.tensorflow.org/www.kurims.kyoto-u.ac.jp/~ooura/fft2d.tgz";
- sha256 = "10f1qrk0n2pal6qndh2nk7vy6gvdbamc6myzbpqdp33c308gswvh";
- };
- fp16 = pkgs.fetchzip {
- url = "https://github.com/Maratyszcza/FP16/archive/febbb1c163726b5db24bed55cc9dc42529068997.zip";
- sha256 = "1ayrddk2zdkpzixvrlkvn4az2kx5jnivxhvffr8177yxjslrmbfw";
- #sha256 = ""; # Not provided
- };
- cpuinfo = pkgs.fetchzip {
- url = "https://github.com/pytorch/cpuinfo/archive/c2092219e7c874783a00a62edb94ddc672f57ab3.zip";
- sha256 = "14bbkl82380144y55sr7awkpc9agwnpr7zhkhjm0cpa4wij3vshn";
- };
- downloaddir = "tensorflow/lite/tools/make/downloads";
- in
- stdenv.mkDerivation {
- name = "tensorflow";
- version = "2.4.0";
- src = pkgs.fetchFromGitHub {
- owner = "tensorflow";
- repo = "tensorflow";
- rev = "21273f6e323173c79e614d8f2dd4608416a8f02c";
- sha256 = "1halzg9288hzwh0fpxq46nh2iq58vxg8jilv976q6p6v1788r43a";
- fetchSubmodules = false;
- };
- nativeBuildInputs = [
- python3
- which
- bazelisk
- bazel
- bash
- curl
- breakpointHook
- pkg-config
- ];
- buildInputs = [
- eigen
- gemmlowp
- ruy
- googletest
- absl
- neon
- farmhash
- flatbuffers
- fft2d
- fp16
- cpuinfo
- ];
- # patchShebangs ./tensorflow/lite/tools/make/download_dependencies.sh
- patchPhase = ''
- patchShebangs ./configure
- patchShebangs ./tensorflow/lite/tools/make/Makefile
- patchShebangs ./tensorflow/lite/tools/make/build_lib.sh
- substituteInPlace ./tensorflow/lite/tools/make/Makefile \
- --replace "/bin/bash" "${pkgs.bash}/bin/bash"
- '';
- configurePhase = ''
- mkdir ${downloaddir}
- cp ${eigen} -pr ${downloaddir}/eigen
- cp ${gemmlowp} -pr ${downloaddir}/gemmlowp
- cp ${ruy} -pr ${downloaddir}/ruy
- cp ${googletest} -pr ${downloaddir}/googletest
- cp ${absl} -pr ${downloaddir}/absl
- cp ${neon} -pr ${downloaddir}/neon_2_sse
- cp ${farmhash} -pr ${downloaddir}/farmhash
- cp ${flatbuffers} -pr ${downloaddir}/flatbuffers
- cp ${fft2d} -pr ${downloaddir}/fft2d
- cp ${fp16} -pr ${downloaddir}/fp16
- cp ${cpuinfo} -pr ${downloaddir}/cpuinfo
- substituteInPlace ./tensorflow/lite/tools/make/downloads/eigen/Eigen/src/Core/arch/NEON/Complex.h \
- --replace "static uint32x4_t p4ui_CONJ_XOR = vld1q_u32( conj_XOR_DATA );" "static uint32x4_t p4ui_CONJ_XOR; // = vld1q_u32( conj_XOR_DATA ); - Removed by script"
- substituteInPlace ./tensorflow/lite/tools/make/downloads/eigen/Eigen/src/Core/arch/NEON/Complex.h \
- --replace "static uint32x2_t p2ui_CONJ_XOR = vld1_u32( conj_XOR_DATA );" "static uint32x2_t p2ui_CONJ_XOR;// = vld1_u32( conj_XOR_DATA ); - Removed by scripts"
- substituteInPlace ./tensorflow/lite/tools/make/downloads/eigen/Eigen/src/Core/arch/NEON/Complex.h \
- --replace "static uint64x2_t p2ul_CONJ_XOR = vld1q_u64( p2ul_conj_XOR_DATA );" "static uint64x2_t p2ul_CONJ_XOR;// = vld1q_u64( p2ul_conj_XOR_DATA ); - Removed by script"
- '';
- #configurePhase = ''echo "do nothing"'';
- #dontAddPrefix = true;
- # bash tensorflow/lite/tools/make/download_dependencies.sh
- #buildPhase = ''echo "test this now"; cp '';
- # SCRIPT_DIR="$(cd "$(dirname "$\{BASH_SOURCE[0]}")" && pwd)"
- # echo "this is where I am"
- # echo $SCRIPT_DIR
- # make -j 4 -f tensorflow/lite/tools/make/Makefile
- buildPhase = ''
- cd tensorflow/lite/tools/make && bash build_lib.sh
- '';
- # cd tensorflow/lite/tools/make && bash build_lib.sh
- #"make -j 4 -C . -f tensorflow/lite/tools/make/Makefile";
- # postPatch = "patchShebangs bin";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement