Bagikan melalui


Tutorial: Menginstal dependensi dari registri berbasis Git

vcpkg menggunakan konsep yang disebut registri untuk mengelola repositori paket. Secara bawaan, vcpkg menemukan pustaka dari registri publik terkurasi di https://github.com/Microsoft/vcpkg. Anda dapat menambahkan registri pihak ketiga atau privat untuk membuat paket tambahan tersedia untuk diinstal.

Untuk informasi tentang membuat registri Anda sendiri, bacalah panduan untuk menerbitkan paket ke registri.

Registri dikonfigurasi menggunakan file vcpkg-configuration.json.

Dalam tutorial ini, Anda akan belajar untuk:

Prasyarat

  • Terminal
  • Kompiler C++
  • vcpkg
  • CMake

1 - Membuat proyek

Di folder baru, buat file proyek berikut:

File sumber (main.cpp):

#include <iostream>
#include <beison.h>

int main()
{
    beison::Object obj;
    obj.insert("name", beison::Value::string("demo"));
    std::cout << beison::stringify(obj) << std::endl;
    return 0;
}

File proyek CMake (CMakeLists.txt):

cmake_minimum_required(VERSION 3.18)

project(demo CXX)

add_executable(main main.cpp)

find_package(beicode CONFIG REQUIRED)
find_package(beison CONFIG REQUIRED)
target_link_libraries(main PRIVATE beicode::beicode beison::beison)

2 - Membuat file manifes dan konfigurasi

Jalankan perintah berikut:

vcpkg new --application

Commmand new membuat dua file: file manifes (vcpkg.json) dan file configuration(vcpkg-configuration.json). Biasanya, perintah memerlukan argumen --name dan --version untuk disediakan, tetapi karena tutorial ini adalah aplikasi pengguna akhir, kami menggunakan opsi --application sebagai gantinya.

File yang dihasilkan akan memiliki konten berikut:

vcpkg.json

{}

vcpkg-configuration.json

{
  "default-registry": {
    "kind": "git",
    "baseline": "7476f0d4e77d3333fbb249657df8251c28c4faae",
    "repository": "https://github.com/microsoft/vcpkg"
  },
  "registries": [
    {
      "kind": "artifact",
      "location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip",
      "name": "microsoft"
    }
  ]
}

File konfigurasi yang dihasilkan mencakup dua definisi registri. default-registry yang menunjuk ke registri vcpkg yang dikurasi di https://github.com/Microsoft/vcpkg, menggunakan commit terbaru sebagai baseline , dan registri "artifacts" tambahan, yang untuk tujuan tutorial ini tidak perlu dan dapat dihapus.

3 - Menambahkan registri privat ke file konfigurasi vcpkg Anda

Kode sumber mereferensikan dua pustaka yang tidak tersedia di registri yang dikurasi vcpkg. Untuk memenuhi dependensi ini, kita perlu menambahkan https://github.com/microsoft/vcpkg-docs sebagai registri tambahan.

Ubah konten vcpkg-configuration.json menjadi:

{
  "default-registry": {
    "kind": "git",
    "baseline": "7476f0d4e77d3333fbb249657df8251c28c4faae",
    "repository": "https://github.com/microsoft/vcpkg"
  },
  "registries": [
    {
      "kind": "git",
      "repository": "https://github.com/microsoft/vcpkg-docs",
      "reference": "vcpkg-registry",
      "baseline": "768f6a3ad9f9b6c4c2ff390137690cf26e3c3453",
      "packages": [ "beicode", "beison" ]
    }
  ]
}

File konfigurasi menambahkan registri eksternal sebagai sumber untuk paket beicode dan beison. Registri tambahan harus secara eksplisit menyatakan paket yang mereka sediakan menggunakan daftar "packages". Ketika vcpkg menyelesaikan nama paket ke registri, nama paket apa pun yang tidak ditemukan dalam registri tambahan akan default ke "default-registry". Pelajari selengkapnya tentang resolusi nama paket dalam dokumentasi registri.

4 - Menginstal paket dari registri

Setelah registri ditambahkan ke file konfigurasi, tidak ada yang perlu dilakukan khusus untuk menginstal paket darinya. vcpkg akan secara transparan menyelesaikan nama paket di vcpkg.json Anda ke registri yang benar saat mengikuti mesin penginstalan biasa.

Tambahkan dependensi beicode dan beison dalam file vcpkg.json Anda:

vcpkg add port beicode beison

Bangun dan jalankan proyek (ganti $VCPKG_ROOT dengan jalur penginstalan vcpkg Anda):

cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake
cmake --build build

Jalankan program, output akan terlihat seperti ini:

{
    "name": "demo"
}

Langkah berikutnya

  • Mengunci versi Anda untuk build yang dapat diulang menggunakan penerapan versi
  • Gunakan kembali biner di seluruh eksekusi integrasi lokal atau berkelanjutan menggunakan penembolokan biner
  • Mengelola pustaka privat Anda menggunakan registri kustom