This is a template showcasing cmkr together with vcpkg for frictionless cross platform dependency management with CMake.
Use the following commands to build the project:
cmake -B build
cmake --build build
Under the hood cmkr generates the CMakeLists.txt required to build this project from the cmake.toml file:
[project] name = "vcpkg_template" # See https://vcpkg.link for available packages # Chose a version from https://github.com/microsoft/vcpkg/releases [vcpkg] version = "2024.11.16" packages = [ "fmt", # disable default features (core) and enable DBSTAT virtual table (dbstat) "sqlite3[core,dbstat]", "mylib", ] overlay = "vcpkg-overlay" # Make the packages available to CMake [find-package.fmt] [find-package.unofficial-sqlite3] [find-package.unofficial-mylib] [target.example] type = "executable" sources = ["src/main.cpp"] link-libraries = [ "fmt::fmt", "unofficial::sqlite3::sqlite3", "unofficial::mylib::mylib", ]
The [vcpkg].overlay key points to a local folder used as an overlay for vcpkg ports and triplets:
vcpkg-overlay ├── mylib # custom port │ ├── CMakeLists.txt │ ├── portfile.cmake │ ├── usage │ └── vcpkg.json └── x64-windows.cmake # custom triplet
The vcpkg-overlay/mylib overlay port is used to make the example mylib available without having to fork the vcpkg repository or create a custom registry.
The vcpkg-overlay/x64-windows.cmake overlay triplet is used to always build static libraries for Windows (instead of shared libraries, which is normally the default).