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.
Not
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).
VCPKG_USE_HOST_TOOLS
vcpkg CMAKE_PROGRAM_PATH
tarafından oluşturulan yürütülebilir dosyaları öğesine eklemek için bu CMake seçeneğini ayarlayın.
ve derleme işleminiz sırasında kullanılabilir hale getirin.
Bu seçeneğin etkili olması için, dosyanızdaki CMakeLists.txt
herhangi bir çağrıdan project()
önce ayarlanması gerekir. Değişkenin VCPKG_HOST_TRIPLET
de ayarlanması gerekir.
yalnızca konak üçlüsunun tools
klasöründe yüklü olan araçlar öğesine CMAKE_PROGRAM_PATH
eklenir.
Etkili bir şekilde, aşağıdaki konumlar eklenir:
${VCPKG_INSTALLED/DIR}/${VCPKG_HOST_TRIPLET}/tools
${VCPKG_INSTALLED/DIR}/${VCPKG_HOST_TRIPLET}/tools/*/bin