Concetto: Porte
Una porta in vcpkg è una ricetta con controllo delle versioni che produce un set di file. L'esecuzione di una porta influisce sul grafico di installazione producendo nuovi file di intestazione o binari. Le porte possono avere dipendenze da altre porte e possono richiedere dipendenze aggiuntive quando alcune funzionalità sono abilitate. Queste dipendenze devono essere riflesse nei metadati delle porte. Come minimo, una porta contiene:
- Metadati relativi al pacchetto: nome, versione, funzionalità supportate, dipendenze e così via.
- Istruzioni per acquisire, compilare, se necessario e installare il pacchetto.
Inoltre, le porte possono includere:
- Patch da applicare al codice sorgente del pacchetto
- Istruzioni per l'integrazione con il sistema di compilazione del progetto
Tutte le porte devono contenere un file di porta (un file denominato portfile.cmake
). Un portfile è uno script che contiene istruzioni su come compilare e installare un pacchetto nell'ambiente vcpkg. Alcune attività comuni eseguite dai file di porta sono:
- Scaricare il codice sorgente di un pacchetto.
- Compilare il pacchetto usando il sistema di compilazione upstream.
- Copiare l'output della compilazione nell'albero di installazione di vcpkg.
- Installare i file di integrazione del sistema di compilazione.
Il vcpkg.json
file descrive i metadati relativi al pacchetto contenuto nella porta vcpkg. Questo file definisce attributi come il nome del pacchetto, la versione, la descrizione, le dipendenze, le funzionalità e le piattaforme supportate e così via. Per altre informazioni, vedere il vcpkg.json
riferimento al file.
Avviso
CONTROL
i file sono deprecati e conservati solo per la compatibilità con le versioni precedenti.
CONTROL
i file in vcpkg fungono da file di metadati che specificano dettagli su un pacchetto o su "porta", che vcpkg può installare. Questi file sono deprecati e sono stati in gran parte sostituiti da vcpkg.json
file manifesto per le nuove porte. Tuttavia, vengono mantenuti per garantire la compatibilità con le versioni precedenti. Per altre informazioni, vedere control-files ( File di controllo).
In alcuni scenari, una porta potrebbe includere file patch. Questi file portano modifiche al codice sorgente della libreria, che sono essenziali per risolvere i problemi esistenti o per mantenere la compatibilità con altri componenti. Prima dell'inizio del processo di compilazione, le patch vengono applicate come parte dei passaggi eseguiti dal portfile, semplificando l'integrazione senza errori e senza errori della libreria. Per altre informazioni, fare riferimento alla guida del manutentore.
Le categorie di porte sono termini colloquiali che i gestori usano per articolato i diversi ruoli di gioco delle porte all'interno di vcpkg. Anche se queste categorie aiutano a descrivere le funzionalità generali, vale la pena notare che qualsiasi porta specificata può appartenere a più categorie o forse nessuno, in base alle relative funzionalità e casi d'uso.
Una porta standard funge da ricetta per la compilazione di librerie dall'origine o la fornitura di file di intestazione per librerie di sola intestazione. Contiene le istruzioni e i metadati necessari per acquisire, compilare e installare la libreria. La maggior parte delle librerie nel Registro di sistema curato sono porte standard.
Una meta porta serve per imporre vincoli al grafico di installazione senza avere i propri file di compilazione. Queste porte vengono spesso usate per raggruppare un set di librerie correlate con un singolo nome o per fungere da livello di riferimento indiretto per i componenti sostituibili. Ad esempio, boost
è una meta-porta che raggruppa varie librerie Boost con un singolo nome per semplificare la gestione delle dipendenze.
Una porta di script contiene script di utilità destinati principalmente alle attività interne all'interno di vcpkg o per l'utilizzo da parte di altre porte. Queste porte consentono il controllo delle versioni degli script dell'utilità, mantenendo così la compatibilità e la standardizzazione. Ad esempio, vcpkg-cmake
è una porta script che espone la vcpkg_cmake_configure()
funzione helper.
Questo documento offre una panoramica delle porte in vcpkg, che illustra in dettaglio gli elementi essenziali e le varie categorie. Per argomenti più avanzati e guide dettagliate, vedere gli argomenti seguenti:
Feedback su vcpkg
vcpkg è un progetto di open source. Selezionare un collegamento per fornire feedback: