Skip to content

luncliff/vcpkg-registry

Repository files navigation

vcpkg-registry

Check

Guides

How To

Setup vcpkg

Follow the official Getting Started Guide to setup your environment. Don't forget to check the vcpkg environment variables are correct.

  • Required environment variables?
    • VCPKG_ROOT to integrate with toolchains. For example, C:\vcpkg or /usr/local/shared/vcpkg
    • PATH to run vcpkg CLI program.

Use vcpkg help command to get descriptions and test the CLI executable works.
Commonly used commands can be checked with:

vcpkg help install
vcpkg help remove
vcpkg help search

Setup vcpkg-registry

Simply clone the repository and use path for the vcpkg commands.

For example, you can put the registry files just under VCPKG_ROOT for easy navigation.

$env:VCPKG_ROOT="C:/vcpkg"
Set-Location $env:VCPKG_ROOT
    git clone "https://github.com/luncliff/vcpkg-registry"
Pop-Location
export VCPKG_ROOT="/usr/local/share/vcpkg"
pushd $VCPKG_ROOT
    git clone https://github.com/luncliff/vcpkg-registry
popd

File Organization

Confirm the files are like our expectation.

user@host:~/vcpkg$ tree -L 2 ./vcpkg-registry/
./vcpkg-registry/
├── docs
│   ├── guide-*.md
│   └── references.md
├── README.md
├── .github
│   ├── workflows/
│   └── prompts/
├── versions
│   ├── ... # files for vcpkg manifest mode
│   └── baseline.json
├── ports
│   ├── ... # files for --overlay-ports
│   ├── openssl3
│   └── tensorflow-lite
└── triplets
    ├── ... # files for --overlay-triplets
    ├── arm64-android.cmake
    └── x64-ios-simulator.cmake

Use vcpkg-registry

Both vcpkg's classic mode and manifest mode are available.

  • classic mode: vcpkg install with overlay(--overlay-ports and --overlay-triplets).
  • manifest mode: use the git repository in vcpkg-configuration.json file.

The vcpkg command may need more detailed options or switches to work properly.

with Overlay Ports (Classic)

Just provide the path of port/ folder.

user@host:~/vcpkg$ ./vcpkg install --overlay-ports="registry/ports" cpuinfo

If it doesn't work, check the command options.

user@host:~/vcpkg$ ./vcpkg help install
...
Options:
...
  --overlay-ports=<path>          Specify directories to be used when searching for ports
                                  (also: $VCPKG_OVERLAY_PORTS)
...

with Overlay Triplets (Classic)

The triplets/ folder contains CMake scripts for Android NDK and iOS Simulator SDK.

You can use envionment variable VCPKG_OVERLAY_TRIPLETS, but I recomment you to use --overlay-triplets to avoid confusion.

vcpkg install --overlay-triplets="vcpkg-registry/triplets" --triplet x64-ios-simulator zlib-ng

If it doesn't work, check the command options.

user@host:~/vcpkg$ ./vcpkg help install
...
Options:
...
  --overlay-triplets=<path>       Specify directories containing triplets files
                                  (also: $VCPKG_OVERLAY_TRIPLETS)
...

For more detailed usage, check the vcpkg documents.

Note

Triplets won't affect your project's configuration and build.
These files are not for VCPKG_CHAINLOAD_TOOLCHAIN_FILE.

with vcpkg.json (Manifest)

With the baseline and version JSON files in versions/ folder, you can use

For registry customization, create your vcpkg-configuration.json.

user@host:~/vcpkg$ cat ./vcpkg-configuration.json | jq
{
  "registries": [
...

The sample configuration can be like this. The ports/ folder contains openssl3 and tensorflow-lite. Put them in the "packages".

{
    "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json",
    "default-registry": {
        "kind": "git",
        "repository": "https://github.com/Microsoft/vcpkg",
        "reference": "2025.12.12",
        "baseline": "84bab45d415d22042bd0b9081aea57f362da3f35"
    },
    "registries": [
        {
            "kind": "git",
            "repository": "https://github.com/luncliff/vcpkg-registry",
            "reference": "main",
            "baseline": "0000...",
            "packages": [
                "openssl3",
                "tensorflow-lite"
            ]
        }
    ]
}

Prompts and Agents

License

The work is for the community.
CC0 1.0 Public Domain for all files.

However, the repository is holding The Unlicense for possible future, software related works. Especially for nested source files, not the distributed source files of the other projects.