Apple ha aperto il codice del sistema di build Swift Build

Apple ha annunciato l'apertura del codice sorgente del sistema di build Swift Build, utilizzato in ambienti di sviluppo proprietari come Xcode e Swift Playground. Il sistema è ottimizzato per compilare progetti nei linguaggi Swift, C e Objective-C, ma può essere utilizzato anche con altri linguaggi. Per il gestore di pacchetti Swift Package Manager è stato preparato un modulo sperimentale («—build-system swiftbuild») che consente di utilizzare Swift Build come motore alternativo per la creazione di pacchetti. Il codice di Swift Build è scritto in linguaggio Swift ed è reso disponibile con licenza Apache 2.0. Supporta la compilazione di progetti per Linux, macOS, iOS, Android, QNX e Windows.

Basandosi sulle regole di build fornite, Swift Build genera un piano di compilazione e avvia i componenti del processo di build. Il progetto si sviluppa con l'obiettivo di garantire costruzioni cross-platform per vari sistemi operativi e tipi di dispositivi. La funzione principale del sistema di build è descritta come la trasformazione dei dati in ingresso forniti dall'utente, come la descrizione del progetto e il codice sorgente, in artefatti risultanti, come librerie e applicazioni.

Il sistema è implementato come un'estensione di un insieme di librerie llbuild (build a basso livello), che realizzano primitive a bassa livello per lavorare con il grafo delle dipendenze, determinare il formato delle regole di build, monitorare gli oggetti da ricompilare e creare manifesti per l'utensile Ninja. Tra le funzionalità avanzate di Swift Build si evidenziano: il supporto per l'integrazione con il compilatore Swift per una coordinazione efficace nella compilazione di progetti in Swift; il supporto per la compilazione di vari tipi di prodotti, comprese le utilità da riga di comando, le applicazioni GUI e le librerie; ottimizzazioni del grafo di build per aumentare l'efficienza nella parallelizzazione dei processi di compilazione del codice in Swift e C.

La base di Swift Build è rappresentata dal processo SWBBuildService, che viene avviato dopo l'inizio della build da parte del cliente, che può essere uno strumento come swbuild, l'ambiente di sviluppo Xcode o il gestore pacchetti Swift Package Manager. L'interazione tra il servizio di build SWBBuildService e il processo client avviene attraverso l'invio di messaggi serializzati su un pipe anonimo. Dal lato del client, l'interazione con il sistema di build avviene tramite l'API SwiftBuild o attraverso lo strumento da riga di comando swbuild.

La funzionalità di Swift Build definisce un insieme di framework, come ad esempio:

  • SWBLLBuild — un'estensione per accedere alle funzionalità di llbuild;
  • SWBUtil — funzioni ausiliarie, come l'implementazione di liste ordinate;
  • SWBCSupport — supporto per il codice in C e Objective-C;
  • SWBCore — motori per l'elaborazione di macro, impostazioni, modello di progetto, specifiche, piattaforme;
  • SWBTaskConstruction — logica per la formazione delle attività;
  • SWBTaskExecution — organizzazione dell'esecuzione delle attività di build;
  • SWBBuildSystem — costruzione e pianificazione delle operazioni di build, gestione della creazione e dell'esecuzione delle attività.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster