Change:
Project description vcpkg is a package manager for C++ and many large and very small libraries are packaged there. Many of my projects use it for CMake configuration and for its toolchain file that automatically download and build libraries. I want to setup dev environment with nix and this is one of the packages I'm looking for that I've been building manually (since the brew packaged vcpkg is not well configured for manifest files support) Metadata homepage URL: source URL: license: MIT platforms: unix, linux, darwin, windows
I'll try something now.
Reading the , it looks like a case for a module, not merely a package.
I'm not sure what's the difference between a package and a module... but if it allows me to download a prebuilt binary of vcpkg that I can simply install, that's fine for me. Know that this package manager is made (partly) in C++ and need compiling. The build script is the you see there.
This issue has been mentioned on NixOS Discourse. There might be relevant details there:
Maybe I am over-engineering here. Reading the AUR script, vcpkg uses systemd scripts/services. Therefore I think it requires more integration with the operating system. Modules are, roughly speaking, designed to "patch" and configure NixOS (the operating system).
Would be nice to have!
Work is ongoing here:

Discussion:
githubId = 6893840; name = "Yacine Hmito"; }; <ins> gracicot = { email = "gracicot42@gmail.com"; github = "gracicot"; githubId = 2906673; name = "Guillaume Racicot"; }; </ins> graham33 = { email = "graham@grahambennett.org"; github = "graham33";

githubId = 21156405; name = "GuangTao Zhang"; }; <ins> guekka = { github = "Guekka"; githubId = 39066502; name = "Guekka"; }; </ins> guibert = { email = "david.guibert@gmail.com"; github = "dguibert";

<ins> { lib , stdenvNoCC , fetchFromGitHub }: stdenvNoCC.mkDerivation (finalAttrs: { pname = "cmrc"; version = "2.0.1"; src = fetchFromGitHub { owner = "vector-of-bool"; repo = "cmrc"; rev = finalAttrs.version; hash = "sha256-++16WAs2K9BKk8384yaSI/YD1CdtdyXVBIjGhqi4JIk="; }; installPhase = '' runHook preInstall install CMakeRC.cmake -DT $out/share/cmakerc/cmakerc-config.cmake runHook postInstall ''; meta = { description = "A Resource Compiler in a Single CMake Script"; homepage = "https://github.com/vector-of-bool/cmrc"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ guekka ]; platforms = lib.platforms.all; }; }) </ins>

<ins> diff --git a/src/vcpkg/vcpkgpaths.cpp b/src/vcpkg/vcpkgpaths.cpp index 3f588c21..e6f2bbed 100644 --- a/src/vcpkg/vcpkgpaths.cpp +++ b/src/vcpkg/vcpkgpaths.cpp @@ -579,7 +579,8 @@ namespace vcpkg if (!args.do_not_take_lock) { std::error_code ec; -                    const auto vcpkg_root_file = root / ".vcpkg-root"; +                    fs.create_directories(Path{"/tmp/vcpkg"}, VCPKG_LINE_INFO); +                    const auto vcpkg_root_file = Path{"/tmp/vcpkg"} / Hash::get_string_sha256(root.c_str()); if (args.wait_for_lock.value_or(false)) { file_lock_handle = fs.take_exclusive_file_lock(vcpkg_root_file, ec); </ins>

<ins> { lib , stdenv , fetchFromGitHub , cacert , cmake , cmakerc , fmt , git , gzip , makeWrapper , meson , ninja , openssh , python3 , zip , zstd , extraRuntimeDeps ? [] }: stdenv.mkDerivation (finalAttrs: { pname = "vcpkg-tool"; version = "2023-10-18"; src = fetchFromGitHub { owner = "microsoft"; repo = "vcpkg-tool"; rev = finalAttrs.version; hash = "sha256-Hm+GSKov9A6tmN10BHOTVy8aWkLOJNBMOQJNm4HnWuI="; }; nativeBuildInputs = [ cmake cmakerc fmt ninja makeWrapper ]; patches = [ ./change-lock-location.patch ]; cmakeFlags = [ "-DVCPKG_DEPENDENCY_EXTERNAL_FMT=ON" "-DVCPKG_DEPENDENCY_CMAKERC=ON" ]; postFixup = let # These are the most common binaries used by vcpkg # Extra binaries can be added via overlay when needed runtimeDeps = [ cacert cmake git gzip meson ninja openssh python3 zip zstd ] ++ extraRuntimeDeps; in '' wrapProgram $out/bin/vcpkg --prefix PATH ${lib.makeBinPath runtimeDeps} ''; meta = { description = "Components of microsoft/vcpkg's binary"; homepage = "https://github.com/microsoft/vcpkg-tool"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ guekka gracicot ]; platforms = lib.platforms.all; }; }) </ins>

<ins> { 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; }; }) </ins>

sea-orm-cli = callPackage ../development/tools/sea-orm-cli { }; <ins> vcpkg-tool = callPackage ../by-name/vc/vcpkg-tool/package.nix { fmt = fmt_10; }; </ins> r3ctl = qt5.callPackage ../tools/misc/r3ctl { }; ptouch-print = callPackage ../misc/ptouch-print { };