custom-allocators
Custom allocator skill for memory allocation strategies. Use when implementing…
C/C++ package manager skill covering Conan and vcpkg. Use when adding third-party library dependencies to C/C++ projects, managing binary compatibility, integrating with CMake, or choosing between Conan and vcpkg. Activates on queries about Conan, vcpkg, C++ dependency
$ npx -y skills add mohitmishra786/low-level-dev-skills --skill conan-vcpkg --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/conan-vcpkgContext preview
The summary Claude sees to decide when to auto-load this skill.
C/C++ package manager skill covering Conan and vcpkg. Use when adding third-party library dependencies to C/C++ projects, managing binary compatibility, integrating with CMake, or choosing between Conan and vcpkg. Activates on queries about Conan, vcpkg, C++ dependency
name: conan-vcpkg description: C/C++ package manager skill covering Conan and vcpkg. Use when adding third-party library dependencies to C/C++ projects, managing binary compatibility, integrating with CMake, or choosing between Conan and vcpkg. Activates on queries about Conan, vcpkg, C++ dependency management, conanfile.txt, vcpkg.json, CMake package integration, or C++ package managers.
Guide agents through C/C++ dependency management with Conan and vcpkg: declaring dependencies, integrating with CMake, managing binary compatibility, and choosing the right tool for a given project.
Which package manager? ├── Team uses MSVC on Windows primarily → vcpkg (better MSVC integration) ├── Need binary packages (no source builds in CI) → Conan (binary cache) ├── Need cross-compilation support → Conan (profiles) or Zig-based builds ├── Need a specific version of a package → Conan (flexible versioning) ├── Quick project setup, just need it to work → vcpkg (simpler) └── Open-source project, broad audience → vcpkg (GitHub-integrated)
# Clone vcpkg
git clone https://github.com/microsoft/vcpkg.git
./vcpkg/bootstrap-vcpkg.sh # Linux/macOS
./vcpkg/bootstrap-vcpkg.bat # Windows
# Install packages (classic mode)
./vcpkg/vcpkg install zlib curl openssl
# Integrate with CMake
cmake -S . -B build \
-DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake// vcpkg.json — place at project root
{
"name": "myapp",
"version": "1.0.0",
"dependencies": [
"zlib",
"curl",
{ "name": "openssl", "version>=": "3.0.0" },
{ "name": "boost-filesystem", "platform": "!windows" },
{
"name": "fmt",
"features": ["core"]
}
],
"builtin-baseline": "abc123..."
}# CMakeLists.txt cmake_minimum_required(VERSION 3.20) project(myapp) find_package(ZLIB REQUIRED) find_package(CURL REQUIRED) find_package(fmt REQUIRED) add_executable(myapp src/main.cpp) target_link_libraries(myapp PRIVATE ZLIB::ZLIB CURL::libcurl fmt::fmt)
# Build — vcpkg automatically installs dependencies
cmake -S . -B build \
-DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build build# Install Conan pip install conan # Set up default profile (detects compiler, OS) conan profile detect # Check your profile conan profile show
# conanfile.txt [requires] zlib/1.3 fmt/10.2.1 openssl/3.2.0 [generators] CMakeDeps CMakeToolchain [options] openssl/*:shared=False
# Install dependencies
conan install . --output-folder=build --build=missing
# Configure and build
cmake -S . -B build \
-DCMAKE_TOOLCHAIN_FILE=build/conan_toolchain.cmake \
-DCMAKE_BUILD_TYPE=Release
cmake --build build# CMakeLists.txt
find_package(ZLIB REQUIRED)
find_package(fmt REQUIRED)
find_package(OpenSSL REQUIRED)
add_executable(myapp src/main.cpp)
target_link_libraries(myapp PRIVATE
ZLIB::ZLIB
fmt::fmt
OpenSSL::SSL OpenSSL::Crypto
)# ~/.conan2/profiles/linux-arm64 [settings] os=Linux arch=armv8 compiler=gcc compiler.version=12 compiler.libcxx=libstdc++11 build_type=Release [buildenv] CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ [tool_requires] # Tools that run on build machine (x86)
# Cross-compile
conan install . \
--profile:build=default \
--profile:host=linux-arm64 \
--output-folder=build-arm \
--build=missing# conanfile.py
from conan import ConanFile
from conan.tools.cmake import CMakeToolchain, CMakeDeps, CMake
class MyAppConan(ConanFile):
name = "myapp"
version = "1.0"
settings = "os", "compiler", "build_type", "arch"
def requirements(self):
self.requires("zlib/1.3")
self.requires("fmt/10.2.1")
if self.settings.os == "Linux":
self.requires("openssl/3.2.0")
def generate(self):
tc = CMakeToolchain(self)
tc.generate()
deps = CMakeDeps(self)
deps.generate()
def build(self):
cmake = CMake(self)
cmake.configure()
cmake.build()| Library | vcpkg name | Conan name | |---------|-----------|-----------| | zlib | `zlib` | `zlib/1.3` | | OpenSSL | `openssl` | `openssl/3.2.0` | | libcurl | `curl` | `libcurl/8.4.0` | | {fmt} | `fmt` | `fmt/10.2.1` | | spdlog | `spdlog` | `spdlog/1.12.0` | | Boost | `boost` | `boost/1.83.0` | | nlohmann-json | `nlohmann-json` | `nlohmann_json/3.11.3` | | googletest | `gtest` | `gtest/1.14.0` | | Google Benchmark | `benchmark` | `benchmark/1.8.3` | | SQLite | `sqlite3` | `sqlite3/3.44.0` | | protobuf | `protobuf` | `protobuf/4.25.1` |
For vcpkg baseline pinning and Conan binary cache setup, see [references/package-manager-patterns.md](references/package-manager-patterns.md).
A curated suite of AI agent skills for systems and low-level programming — C/C++, Rust, Zig, GPU, bare-metal firmware, Linux kernel/driver development, computer architecture, compiler internals, HPC, and more.
Repo: mohitmishra786/low-level-dev-skills
Custom allocator skill for memory allocation strategies. Use when implementing…
NUMA programming skill for multi-socket memory locality. Use when detecting NUMA topology,…
AF_XDP skill for high-performance XDP sockets. Use when creating AF_XDP sockets, configuring…
DPDK skill for userspace packet I/O. Use when initializing EAL, configuring PMD drivers,…
io_uring skill for Linux async I/O. Use when building high-performance servers with liburing,…
Bare-metal ADC and DAC skill. Use when configuring analog sampling, DMA-driven ADC,…