Apple abre código fonte do Swift Build

Компания Apple объявила об открытии исходного кода сборочной системы Swift Build, применявшейся в проприетарных интегрированных средах разработки Xcode и Swift Playground. Система оптимизирована для сборки проектов на языках Swift, C и Objective-C, но может применяться и с другими языками. Для пакетного менеджера Swift Package Manager подготовлен экспериментальный модуль («—build-system swiftbuild»), позволяющий использовать Swift Build в качестве альтернативного движка для сборки пакетов. Код Swift Build написан на языке Swift и открыт под лицензией Apache 2.0. Поддерживается сборка проектов для Linux, macOSIOS, Android, QNX и Windows.

Com base nas regras de compilação fornecidas, o Swift Build gera um plano de compilação e executa os componentes do processo de compilação. O projeto está sendo desenvolvido com o objetivo de fornecer montagem multiplataforma para vários sistemas operacionais e tipos de dispositivos. O principal objetivo de um sistema de construção é descrito como transformar dados de entrada fornecidos pelo usuário, como uma descrição de projeto e código-fonte, em artefatos de saída, como bibliotecas e aplicativos.

O sistema é implementado como um complemento ao conjunto de bibliotecas llbuild (compilação de baixo nível), que implementa primitivas de baixo nível para trabalhar com o gráfico de dependência, definir o formato das regras de compilação, rastrear objetos reconstruídos e criar manifestos para o kit de ferramentas Ninja. Entre os recursos avançados do Swift Build estão: suporte à integração com o compilador Swift para coordenação eficiente de projetos de construção na linguagem Swift; suporte para construção de vários tipos de produtos, incluindo utilitários de linha de comando, aplicativos GUI e bibliotecas; otimizações do gráfico de construção para melhorar a eficiência da paralelização dos processos de construção de código nas linguagens Swift e C.

O Swift Build é baseado no processo SWBBuildService, que é iniciado depois que a compilação é iniciada por um cliente, que pode ser o utilitário swbuild, o ambiente de desenvolvimento Xcode ou o Swift Package Manager. A interação entre o serviço de compilação SWBBuildService e o processo do cliente é realizada enviando mensagens serializadas por meio de um fluxo sem nome (pipe). No lado do cliente, a interação com o sistema de compilação é realizada por meio da API SwiftBuild ou do utilitário de linha de comando swbuild.

A funcionalidade Swift Build define um conjunto de estruturas como:

  • SWBLLBuild é um complemento para acessar a funcionalidade llbuild;
  • SWBUtil - funções auxiliares, como implementação de listas ordenadas;
  • SWBCSupport - suporte para código C e Objective-C;
  • SWBCore - mecanismos para processamento de macros, configurações, modelos de projeto, especificações, plataformas;
  • SWBTaskConstruction — lógica para formação de tarefas;
  • SWBTaskExecution — organização da execução de tarefas de montagem;
  • SWBBuildSystem — construção e planejamento de operações de montagem, gerenciamento da criação e execução de tarefas.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção DDoS, servidores VPS VDS 🔥 Compre hospedagem de sites confiável com proteção contra DDoS, servidores VPS/VDS | ProHoster