diff options
author | Guillaume Racicot <gracicot42@gmail.com> | 2023-10-10 16:10:28 -0400 |
---|---|---|
committer | Guillaume Racicot <gracicot42@gmail.com> | 2023-12-07 10:01:01 -0300 |
commit | 810da0480b8bf24b1a2f2e0278494cceb5f31964 (patch) | |
tree | 70237db23e9cbe18d2d26da0a5895e4385312039 /pkgs/by-name/vc | |
parent | 673432ef6ea14b51d77a11a3abefdadf7b76668e (diff) |
vcpkg: init at 2023.08.09
Diffstat (limited to 'pkgs/by-name/vc')
-rw-r--r-- | pkgs/by-name/vc/vcpkg/package.nix | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/pkgs/by-name/vc/vcpkg/package.nix b/pkgs/by-name/vc/vcpkg/package.nix new file mode 100644 index 0000000000000..e8beeb0756a16 --- /dev/null +++ b/pkgs/by-name/vc/vcpkg/package.nix @@ -0,0 +1,51 @@ +{ fetchFromGitHub +, stdenvNoCC +, lib +, vcpkg-tool +, writeShellScript +}: + +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "vcpkg"; + version = "2023.10.19"; + + src = fetchFromGitHub { + owner = "microsoft"; + repo = "vcpkg"; + rev = finalAttrs.version; + hash = "sha256-u+4vyOphnowoaZgfkCbzF7Q4tuz2GN1bHylaKw352Lc="; + }; + + installPhase = let + # vcpkg needs two directories to write to that is independent of installation directory. + # Since vcpkg already creates $HOME/.vcpkg/ we use that to create a root where vcpkg can write into. + vcpkgScript = writeShellScript "vcpkg" '' + vcpkg_writable_path="$HOME/.vcpkg/root/" + + VCPKG_ROOT="@out@/share/vcpkg" ${vcpkg-tool}/bin/vcpkg \ + --x-downloads-root="$vcpkg_writable_path"/downloads \ + --x-buildtrees-root="$vcpkg_writable_path"/buildtrees \ + --x-packages-root="$vcpkg_writable_path"/packages \ + "$@" + ''; + in '' + runHook preInstall + + mkdir -p $out/bin $out/share/vcpkg/scripts/buildsystems + cp --preserve=mode -r ./{docs,ports,triplets,scripts,.vcpkg-root,versions,LICENSE.txt} $out/share/vcpkg/ + substitute ${vcpkgScript} $out/bin/vcpkg --subst-var-by out $out + chmod +x $out/bin/vcpkg + ln -s $out/bin/vcpkg $out/share/vcpkg/vcpkg + touch $out/share/vcpkg/vcpkg.disable-metrics + + runHook postInstall + ''; + + meta = { + description = "C++ Library Manager"; + homepage = "https://vcpkg.io/"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ guekka gracicot ]; + platforms = lib.platforms.all; + }; +}) |