Konak bağımlılıkları
Kod oluşturmak veya özel derleme sistemi uygulamak için diğer bağlantı noktaları tarafından derleme zamanında kullanılan araçlar vcpkg içinde paketlenebilir.
Tüketen
Bir bağlantı noktasını araç olarak kullanırken, bağımlılığın "host"
alanını true olarak ayarlamanız gerekir. Örneğin:
{
"name": "contoso-http-library",
"version-string": "1.0.0",
"description": "Contoso's http runtime library",
"dependencies": [
"contoso-core-library",
{
"name": "contoso-code-generator",
"host": true
},
{
"name": "contoso-build-system",
"host": true
}
]
}
Bu durumda, contoso-code-generator
ve contoso-build-system
(geçişli bağımlılıklar dahil) oluşturulmadan önce contoso-http-library
konak üçlüs için derlenir ve yüklenir.
Dekont
Tüketicilerin meta veri biçimi yerine CONTROL
kullanması vcpkg.json
gerekir. kullanarak vcpkg format-manifest /path/to/CONTROL
var olan CONTROL
bir dosyayı kolayca dönüştürebilirsiniz.
Ardından, tüketicinin portfile dosyasında (contoso-http-library
örnekte), CMake değişkeni CURRENT_HOST_INSTALLED_DIR
olarak installed/<host-triplet>
tanımlanır ve gerekli varlıkları bulmak için kullanılmalıdır. Örnekte, contoso-code-generator
tüketicinin yerel yoluna şu yollarla ekleyebileceği bir yükleme tools/contoso-code-generator/ccg.exe
yapmış olabilir:
# ports/contoso-http-library/portfile.cmake
vcpkg_add_to_path(${CURRENT_HOST_INSTALLED_DIR}/tools/contoso-code-generator)
Konak Üçlüsunun Belirtilmesi
Varsayılan konak üçlüleri, konak mimarisine ve işletim sistemine (örneğin x64-windows
, , x64-linux
veya x64-osx
) göre seçilir. Bunlar şu şekilde geçersiz kılınabilir:
- CMake tabanlı bildirim modunda, ilk
project()
yönergeden önce çağrılırset(VCPKG_HOST_TRIPLET "<triplet>" CACHE STRING "")
- MSBuild tabanlı bildirim modunda özelliğini ayarlama
VcpkgHostTriplet
- Komut satırında, bayrağı aracılığıyla
--host-triplet=...
VCPKG_DEFAULT_HOST_TRIPLET
ortam değişkeni
Üretim
Bir araç üretmenin özel gereksinimleri yoktur; araçlar, tüm normal ilkeler ve uygulamalar izlenerek standart bir bağlantı noktası olarak yazılmalıdır. Özellikle, bağlantı noktası dosyası bağlamında değilHOST_TRIPLET
, üzerinde derleme TARGET_TRIPLET
yapmalıdır.
Geçerli bağlam çapraz derleniyorsa (TARGET_TRIPLET
değil HOST_TRIPLET
), VCPKG_CROSSCOMPILING
doğru bir değere ayarlanır.
if(VCPKG_CROSSCOMPILING)
# This is a native build
else()
# This is a cross build
endif()
Yalnızca konak bağlantı noktaları
Bazı bağlantı noktaları yalnızca bir konak bağımlılığı aracılığıyla bağımlı olmalıdır; betik bağlantı noktaları ve araç bağlantı noktaları yaygın örneklerdir. Bu durumda, bunu açıklamak için supports ifadesini kullanabilirsiniz "native"
. Bu, false olduğunda VCPKG_CROSSCOMPILING
ifadenin doğru olduğunu destekler (bunu TARGET_TRIPLET == HOST_TRIPLET
ifade ediyor).
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin