diff --git a/pkgs/by-name/he/hexagon-sdk/package.nix b/pkgs/by-name/he/hexagon-sdk/package.nix new file mode 100644 index 0000000..3481ddd --- /dev/null +++ b/pkgs/by-name/he/hexagon-sdk/package.nix @@ -0,0 +1,90 @@ +{ + lib, + pkgs, + stdenvNoCC, + stdenv, + p7zip, + curl, + jq, + cacert, +}: + +let + version = "v6.4.0.2"; + src = fetchTarball { + url = "https://github.com/snapdragon-toolchain/hexagon-sdk/releases/download/v6.4.0.2/hexagon-sdk-v6.4.0.2-amd64-lnx.tar.xz"; + sha256 = "0qadmn84sdqbqh3s837s0amdmln3akb1b01k8x5nha0lkw6a3jwc"; + }; + gmp_override = pkgs.gmp.overrideAttrs ( + final: prev: { + postInstall = + (prev.postInstall or "") + + " + ls + cd $out + cd lib + ls + rm libgmp.so.10 + cp libgmp.so.10.5.0 libgmp.so.10 + cp libgmp.so.10.5.0 $out/libgmp.so.10 + "; + } + ); + libs = [ + pkgs.stdenv.cc.cc.lib + pkgs.libc + pkgs.libcxx + pkgs.gmp + pkgs.libz + pkgs.libgccjit + # pkgs.zlib + # pkgs.ncurses + ]; + + # we get Nixpkgs to create the library paths for us, so we don't have to wrangle them by hand + libPath = pkgs.lib.makeLibraryPath libs; +in +stdenv.mkDerivation rec { + pname = "hexagon-sdk"; + inherit version src; + + # dontUnpack = true; + # dontBuild = true; + + nativeBuildInputs = [ + ]; + buildInputs = [ pkgs.patchelf ]; + runtimeDependencies = with pkgs; [ gmpxx ]; + + buildPhase = '' + runHook preBuild + # cp $out/opt/tools/HEXAGON_Tools/19.0.04/Tools/lib/libLW.so.3 $out/opt/tools/HEXAGON_Tools/19.0.04/Tools/bin/ + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + mkdir $out + cp -r ${src} $out/opt + runHook postInstall + + chmod +w $out/opt/ipc/fastrpc/qaic/bin/qaic + chmod +w $out/opt/tools/HEXAGON_Tools/19.0.04/Tools/bin/hexagon-clang + chmod +w $out/opt/tools/HEXAGON_Tools/19.0.04/Tools/bin/hexagon-link + patchelf $out/opt/ipc/fastrpc/qaic/bin/qaic --set-interpreter ${pkgs.stdenv.cc.bintools.dynamicLinker} --set-rpath ${libPath} + patchelf $out/opt/tools/HEXAGON_Tools/19.0.04/Tools/bin/hexagon-clang --set-interpreter ${pkgs.stdenv.cc.bintools.dynamicLinker} --set-rpath ${libPath} + lib=${libPath} + lib=$lib:$out/opt/tools/HEXAGON_Tools/19.0.04/Tools/lib + echo $lib + patchelf $out/opt/tools/HEXAGON_Tools/19.0.04/Tools/bin/hexagon-link --set-interpreter ${pkgs.stdenv.cc.bintools.dynamicLinker} --set-rpath $lib + ''; + + meta = { + description = "Hexagon SDK for working with the Qualcomm NPU/DSP"; + homepage = "https://github.com/snapdragon-toolchain/hexagon-sdk"; + license = lib.licenses.unfree; + platforms = [ + "x86_64-linux" + ]; + }; +}