# Copyright 2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 TOOL_TAG="2026-05-27" DATA_TAG="2026.05.25" inherit cmake DESCRIPTION="C/C++ library manager from Microsoft" HOMEPAGE="https://github.com/microsoft/vcpkg https://vcpkg.io" SRC_URI=" https://github.com/microsoft/vcpkg-tool/archive/refs/tags/${TOOL_TAG}.tar.gz -> ${PN}-tool-${TOOL_TAG}.tar.gz https://github.com/microsoft/vcpkg/archive/refs/tags/${DATA_TAG}.tar.gz -> ${PN}-data-${DATA_TAG}.tar.gz " S="${WORKDIR}/vcpkg-tool-${TOOL_TAG}" LICENSE="MIT" SLOT="0" KEYWORDS="~amd64 ~arm64" IUSE="telemetry" RDEPEND=" dev-libs/libfmt:= net-misc/curl[ssl] " DEPEND="${RDEPEND}" BDEPEND="dev-cpp/cmrc" PATCHES=( "${FILESDIR}/${PN}-tool-${TOOL_TAG}-fix-includes.patch" ) src_configure() { local mycmakeargs=( -DBUILD_TESTING=OFF -DVCPKG_DEVELOPMENT_WARNINGS=OFF -DVCPKG_WARNINGS_AS_ERRORS=OFF -DVCPKG_BUILD_TLS12_DOWNLOADER=OFF -DVCPKG_BUILD_FUZZING=OFF -DVCPKG_EMBED_GIT_SHA=OFF -DVCPKG_ARTIFACTS_DEVELOPMENT=OFF -DVCPKG_OFFICIAL_BUILD=OFF # vcpkg-tool's custom cmake/Find*.cmake modules download their own # copies of fmt/cmrc/curl from GitHub/curl.se by default, which happens in src_configure, however # in src configure there is no network access outside of SRC_URIs, resulting in failed to resolve hostname issues -DVCPKG_DEPENDENCY_EXTERNAL_FMT=ON -DVCPKG_DEPENDENCY_CMAKERC=ON -DVCPKG_LIBCURL_DLSYM=OFF # cmrc's hasn't been bumped in 3 years, so it # fails against CMake >=4.0 unless CMAKE_POLICY_VERSION_MINIMUM is explicitly set -DCMAKE_POLICY_VERSION_MINIMUM=3.5 ) cmake_src_configure } src_install() { local vcpkg_data_dir="${WORKDIR}/vcpkg-${DATA_TAG}" local vcpkg_home="/usr/share/vcpkg" local vcpkg_libexec="/usr/libexec/vcpkg" exeinto "${vcpkg_libexec}" doexe "${BUILD_DIR}/vcpkg" insinto "${vcpkg_home}" doins "${vcpkg_data_dir}/.vcpkg-root" doins -r "${vcpkg_data_dir}"/{scripts,triplets} insinto /usr/bin newins - vcpkg <<-EOF #!/bin/sh exec "${EPREFIX}${vcpkg_libexec}/vcpkg" --vcpkg-root "${EPREFIX}${vcpkg_home}" "\$@" EOF fperms +x /usr/bin/vcpkg # Equivalent to --disable-metrics if ! use telemetry; then newins - vcpkg.disable_metrics <<<"" fi dodoc "${vcpkg_data_dir}/README.md" } pkg_postinst() { elog "Ports registry is not bundled; vcpkg fetches it on demand." if use telemetry; then elog "Telemetry is ENABLED. Rebuild with USE=-telemetry to disable." else elog "Telemetry is DISABLED (vcpkg.disable_metrics installed)." fi }