Guest User

Untitled

a guest
Feb 10th, 2021
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.13 KB | None | 0 0
  1. { pkgs ? import <nixpkgs> { } }:
  2.  
  3. with pkgs;
  4.  
  5. let
  6. eigen = pkgs.fetchzip {
  7. url = "https://storage.googleapis.com/mirror.tensorflow.org/gitlab.com/libeigen/eigen/-/archive/352f1422d3ceea19a04cab297c6339e0870e1c6c/eigen-352f1422d3ceea19a04cab297c6339e0870e1c6c.tar.gz";
  8. #url = "https://gitlab.com/libeigen/eigen/-/archive/352f1422d3ceea19a04cab297c6339e0870e1c6c/eigen-352f1422d3ceea19a04cab297c6339e0870e1c6c.tar.gz";
  9. sha256 = "0w9nx9xcg2ac9rmcfffg9nxr29wswi7f7f9cy9slf5z523p979mz";
  10. };
  11. gemmlowp = pkgs.fetchzip {
  12. url = "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/gemmlowp/archive/fda83bdc38b118cc6b56753bd540caa49e570745.zip";
  13. sha256 = "1sbp8kmr2azwlvfbzryy1frxi99jhsh1nc93bdbxdf8zdgpv0kxl";
  14. };
  15. ruy = pkgs.fetchzip {
  16. url = "https://github.com/google/ruy/archive/4790797d11a81f96baf24f3731fd3ca44c2c5f8b.zip";
  17. sha256 = "0b0ydm8q4zqc6g2yzx5j9mgnyf4xck5faxs9bhixvvv1d1fn7vii";
  18. };
  19. googletest = pkgs.fetchzip {
  20. url = "https://github.com/google/googletest/archive/release-1.8.0.tar.gz";
  21. sha256 = "0bjlljmbf8glnd9qjabx73w6pd7ibv43yiyngqvmvgxsabzr8399";
  22. };
  23. absl = pkgs.fetchzip {
  24. url = "https://storage.googleapis.com/mirror.tensorflow.org/github.com/abseil/abseil-cpp/archive/df3ea785d8c30a9503321a3d35ee7d35808f190d.tar.gz";
  25. sha256 = "035bffayslawc19q2gmlkr6n6r7k7mvriaq7352rv6gyzaplr98w";
  26. };
  27. neon = pkgs.fetchzip {
  28. url = "https://github.com/intel/ARM_NEON_2_x86_SSE/archive/master.zip";
  29. sha256 = "0ai5c9gkrwafabq9naq3ycxdc394n95xiq0wharg9r5wpfh8fg3b";
  30. };
  31. farmhash = pkgs.fetchzip {
  32. url = "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/farmhash/archive/816a4ae622e964763ca0862d9dbd19324a1eaf45.tar.gz";
  33. sha256 = "1mqxsljq476n1hb8ilkrpb39yz3ip2hnc7rhzszz4sri8ma7qzp6";
  34. };
  35. flatbuffers = pkgs.fetchzip {
  36. url = "https://github.com/google/flatbuffers/archive/v1.12.0.tar.gz";
  37. sha256 = "0f7xd66vc1lzjbn7jzd5kyqrgxpsfxi4zc7iymhb5xrwyxipjl1g";
  38. };
  39. ff2d = pkgs.fetchzip {
  40. url ="https://storage.googleapis.com/mirror.tensorflow.org/www.kurims.kyoto-u.ac.jp/~ooura/fft2d.tgz";
  41. sha256 = "10f1qrk0n2pal6qndh2nk7vy6gvdbamc6myzbpqdp33c308gswvh";
  42. };
  43. fp16 = pkgs.fetchzip {
  44. url = "https://github.com/Maratyszcza/FP16/archive/febbb1c163726b5db24bed55cc9dc42529068997.zip";
  45. sha256 = "1ayrddk2zdkpzixvrlkvn4az2kx5jnivxhvffr8177yxjslrmbfw";
  46. #sha256 = ""; # Not provided
  47. };
  48. cpuinfo = pkgs.fetchzip {
  49. url = "https://github.com/pytorch/cpuinfo/archive/c2092219e7c874783a00a62edb94ddc672f57ab3.zip";
  50. sha256 = "14bbkl82380144y55sr7awkpc9agwnpr7zhkhjm0cpa4wij3vshn";
  51. };
  52. downloaddir = "tensorflow/lite/tools/make/downloads";
  53. in
  54. stdenv.mkDerivation {
  55. name = "tensorflow-lite";
  56. version = "2.4.0";
  57.  
  58. src = pkgs.fetchFromGitHub {
  59. owner = "tensorflow";
  60. repo = "tensorflow";
  61. rev = "21273f6e323173c79e614d8f2dd4608416a8f02c";
  62. sha256 = "1halzg9288hzwh0fpxq46nh2iq58vxg8jilv976q6p6v1788r43a";
  63. fetchSubmodules = false;
  64. };
  65.  
  66. nativeBuildInputs = [
  67. cmake
  68. pkg-config
  69. bazel
  70. ];
  71. buildInputs = [
  72. ];
  73.  
  74. preConfigure = ''
  75. mkdir ${downloaddir}
  76. cp ${eigen} -pr ${downloaddir}/eigen
  77. cp ${gemmlowp} -pr ${downloaddir}/gemmlowp
  78. cp ${ruy} -pr ${downloaddir}/ruy
  79. cp ${googletest} -pr ${downloaddir}/googletest
  80. cp ${absl} -pr ${downloaddir}/absl
  81. cp ${neon} -pr ${downloaddir}/neon_2_sse
  82. cp ${farmhash} -pr ${downloaddir}/farmhash
  83. cp ${flatbuffers} -pr ${downloaddir}/flatbuffers
  84. cp ${ff2d} -pr ${downloaddir}/fft2d
  85. cp ${fp16} -pr ${downloaddir}/fp16
  86. cp ${cpuinfo} -pr ${downloaddir}/cpuinfo
  87. ls ${downloaddir}
  88. patchShebangs ./configure
  89. patchShebangs ./tensorflow/lite/tools/make/Makefile
  90. patchShebangs ./tensorflow/lite/tools/make/build_lib.sh
  91. substituteInPlace ./tensorflow/lite/tools/make/Makefile \
  92. --replace "/bin/bash" "${pkgs.bash}/bin/bash"
  93. '';
  94.  
  95. configurePhase = ''
  96. pwd
  97. ls tensorflow/lite
  98. cmake tensorflow/lite
  99. '';
  100. buildPhase = ''
  101. cmake --build . -j
  102. '';
  103.  
  104. # postPatch = "patchShebangs bin";
  105. }
  106.  
Advertisement
Add Comment
Please, Sign In to add comment