使用 vcpkg x-add-version 搭配 Git 或目錄結構工具,自動建立與維護本地 vcpkg registry

你可以使用 vcpkg x-add-version 搭配 Git 或目錄結構工具,自動建立與維護本地 vcpkg registry。以下是推薦工具與流程:


🧰 常用工具與方法

1️⃣ vcpkg CLI 工具:x-add-version

  • 功能:自動產生版本資料庫(versions/)與 baseline。
  • 用法:
    vcpkg x-add-version --all --verbose \
      --x-builtin-ports-root=./ports \
      --x-builtin-registry-versions-dir=./versions
    
  • 效果:會為每個 port 建立 versions/<首字母>/<port>.json,並更新 versions/baseline.json

2️⃣ Git + Script 自動化

  • 建立 registry 結構:
    mkdir vcpkg-registry
    cd vcpkg-registry
    mkdir ports versions
    echo "{ \"default\": {} }" > versions/baseline.json
    git init
    
  • 搭配 .bat.sh 腳本自動加入 ports 並執行 x-add-version

3️⃣ Python / Node.js 工具(自建)

  • 若你有大量 ports 或需要版本比對、hash 計算,可用 Python 腳本自動:
    • 掃描 ports/ 資料夾。
    • 產生 vcpkg.jsonportfile.cmake 模板。
    • 呼叫 x-add-version
  • 可整合 Git tag、CI/CD pipeline。

4️⃣ CI/CD 工具:GitHub Actions / GitLab CI

  • 自動在 push 時執行:
    steps:
      - run: vcpkg x-add-version --all --verbose ...
      - run: git commit -am "Update registry versions"
      - run: git push
    
  • 適合團隊維護 registry,確保 baseline 與版本一致。

📋 建議架構與流程

階段 工具 功能
建立 registry 結構 Git + mkdir 建立 ports/versions/
新增 port 手動或腳本 放入 vcpkg.jsonportfile.cmake
建立版本資料庫 x-add-version 自動產生 versions/*.json
baseline 管理 baseline.json + Git 控制預設版本
自動化更新 CI/CD + CLI 確保版本一致性

如果你希望我幫你寫一份 可重複使用的 .bat.sh 腳本,自動建立 registry 結構、加入 port、執行版本更新,我可以幫你整理一份模組化範本,適合團隊使用。要不要我幫你寫出來?

Also See

File8FileLast Modified
vcpkg-local-how-tovcpkg-local-how-to1:22 AM - December 07, 2025
vcpkg_checkervcpkg_checker1:22 AM - December 07, 2025
vcpkg 指令總覽表vcpkg 指令總覽表1:22 AM - December 07, 2025
模組化開發-用 CMake + VCpkg 封裝並重用 C++ 函式庫模組化開發-用 CMake + VCpkg 封裝並重用 C++ 函式庫8:20 PM - December 06, 2025
模組化開發-VCpkg工具模組化開發-VCpkg工具8:20 PM - December 06, 2025
查詢目前vcpkg registry所在路徑查詢目前vcpkg registry所在路徑8:20 PM - December 06, 2025
本地 `src` vs. `vcpkg_from_git`本地 src vs. vcpkg_from_git8:20 PM - December 06, 2025
如何產生 git-tree如何產生 git-tree8:20 PM - December 06, 2025