https://github.com/luncliff/vcpkg-registry
vcpkg registry maintained by @luncliff
https://github.com/luncliff/vcpkg-registry
cmake cmake-scripts cplusplus cpp cross-compile package-managment packages vcpkg vcpkg-registry
Last synced: 5 months ago
JSON representation
vcpkg registry maintained by @luncliff
- Host: GitHub
- URL: https://github.com/luncliff/vcpkg-registry
- Owner: luncliff
- License: cc0-1.0
- Created: 2021-04-03T11:09:00.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2025-04-18T02:18:32.000Z (about 1 year ago)
- Last Synced: 2025-04-18T06:25:51.346Z (about 1 year ago)
- Topics: cmake, cmake-scripts, cplusplus, cpp, cross-compile, package-managment, packages, vcpkg, vcpkg-registry
- Language: CMake
- Homepage: https://luncliff.github.io/vcpkg-registry/
- Size: 1.11 MB
- Stars: 33
- Watchers: 4
- Forks: 6
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# vcpkg-registry
[](https://github.com/luncliff/vcpkg-registry/actions/workflows/build.yml)
* [vcpkg](https://github.com/microsoft/vcpkg): recommend [2025.12.12](https://github.com/microsoft/vcpkg/releases/tag/2025.12.12) or later
* [vcpkg-tool](https://github.com/microsoft/vcpkg-tool): recommend [2025-12-16](https://github.com/microsoft/vcpkg-tool/releases/tag/2025-12-16) or later
## Guides
- [Create Port Guide](docs/guide-create-port.md)
- [Update Port Guide](docs/guide-update-port.md)
- [Troubleshooting Guide](docs/troubleshooting.md)
### Quick [References](docs/references.md)
* Microsoft C++ Team Blog: https://devblogs.microsoft.com/cppblog/
* https://devblogs.microsoft.com/cppblog/registries-bring-your-own-libraries-to-vcpkg/
* https://github.com/northwindtraders/vcpkg-registry
* GitHub Topics `vcpkg-registry`: https://github.com/topics/vcpkg-registry
* Discussions https://github.com/microsoft/vcpkg/discussions
* Vcpkg documentation: https://learn.microsoft.com/en-us/vcpkg/
* https://learn.microsoft.com/en-us/vcpkg/consume/git-registries
* https://learn.microsoft.com/en-us/vcpkg/maintainers/registries
* Vcpkg mainstream: https://github.com/microsoft/vcpkg
* https://github.com/microsoft/vcpkg-tool/releases
* Vcpkg configuration
* https://learn.microsoft.com/en-us/vcpkg/reference/vcpkg-configuration-json
## How To
### Setup vcpkg
Follow the official [Getting Started Guide](https://learn.microsoft.com/en-us/vcpkg/get_started/get-started) to setup your environment.
Don't forget to check [the vcpkg environment variables](https://github.com/microsoft/vcpkg/blob/master/docs/users/config-environment.md) 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.
```powershell
$env:VCPKG_ROOT="C:/vcpkg"
Set-Location $env:VCPKG_ROOT
git clone "https://github.com/luncliff/vcpkg-registry"
Pop-Location
```
```bash
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.
```console
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](https://learn.microsoft.com/en-us/vcpkg/concepts/classic-mode): `vcpkg install` with overlay(`--overlay-ports` and `--overlay-triplets`).
- [manifest mode](https://learn.microsoft.com/en-us/vcpkg/concepts/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](https://learn.microsoft.com/en-us/vcpkg/concepts/overlay-ports) (Classic)
Just provide the path of `port/` folder.
```console
user@host:~/vcpkg$ ./vcpkg install --overlay-ports="registry/ports" cpuinfo
```
If it doesn't work, check the command options.
```console
user@host:~/vcpkg$ ./vcpkg help install
...
Options:
...
--overlay-ports= Specify directories to be used when searching for ports
(also: $VCPKG_OVERLAY_PORTS)
...
```
#### with [Overlay Triplets](https://learn.microsoft.com/en-us/vcpkg/concepts/triplets) (Classic)
The [triplets/](./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.
```bash
vcpkg install --overlay-triplets="vcpkg-registry/triplets" --triplet x64-ios-simulator zlib-ng
```
If it doesn't work, check the command options.
```console
user@host:~/vcpkg$ ./vcpkg help install
...
Options:
...
--overlay-triplets= Specify directories containing triplets files
(also: $VCPKG_OVERLAY_TRIPLETS)
...
```
For more detailed usage, check the vcpkg documents.
- [Using Overlay Triplets](https://learn.microsoft.com/en-us/vcpkg/users/examples/overlay-triplets-linux-dynamic)
- [Vcpkg and Android](https://learn.microsoft.com/en-us/vcpkg/users/platforms/android)
> [!NOTE]
>
> Triplets won't affect your project's configuration and build.
> These files are not for [`VCPKG_CHAINLOAD_TOOLCHAIN_FILE`](https://github.com/microsoft/vcpkg/blob/master/docs/users/triplets.md#vcpkg_chainload_toolchain_file).
>
#### with vcpkg.json (Manifest)
- https://learn.microsoft.com/en-us/vcpkg/consume/git-registries
With the baseline and version JSON files in [versions/](./versions/) folder, you can use
For registry customization, create your [vcpkg-configuration.json](https://github.com/microsoft/vcpkg/blob/master/docs/specifications/registries.md).
```console
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".
```json
{
"$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
- 🌱 [.github/prompts](./.github/prompts/): [GitHub Copilot Prompt Designs](./docs/prompt-designs.md)
- :construction: .github/agents experiment in progress. Currently no files.
## License
The work is for the community.
[CC0 1.0 Public Domain](https://creativecommons.org/publicdomain/zero/1.0/deed.ko) for all files.
However, the repository is holding [The Unlicense](https://unlicense.org) for possible future, software related works.
Especially for nested source files, not the distributed source files of the other projects.