L’écosystème Swift se développe activement en dehors des plates-formes Apple, et il est aujourd’hui assez confortable d’y écrire sous Windows à l’aide du sous-système Windows pour Linux (WSL2). Il convient de noter que pour les assemblys sous Linux/WSL, une version allégée de Swift est disponible – sans frameworks propriétaires Apple (tels que SwiftUI, UIKit, AppKit, CoreData, CoreML, ARKit, SpriteKit et autres bibliothèques spécifiques à iOS/macOS), mais pour les utilitaires de console et le backend, cela est plus que suffisant. Dans cet article, nous allons parcourir étape par étape le processus de préparation de l’environnement et de construction du compilateur Swift à partir du code source dans WSL2 (en utilisant Ubuntu/Debian comme exemple).
Nous mettons à jour la liste des packages et le système lui-même :
sudo apt update && sudo apt upgrade -y
Installez les dépendances nécessaires pour le build :
sudo apt install -y \
git cmake ninja-build clang python3 python3-pip \
libicu-dev libxml2-dev libcurl4-openssl-dev \
libedit-dev libsqlite3-dev swig libncurses5-dev \
pkg-config tzdata rsync
Installez le compilateur et l’éditeur de liens (LLVM et LLD) :
sudo apt install -y llvm lld
Clonez le dépôt Swift avec toutes les dépendances :
git clone https://github.com/apple/swift.git
cd swift
utils/update-checkout --clone
Installez Swiftly et prêt à l’emploi avec Swiftc
curl -O https://download.swift.org/swiftly/linux/swiftly-$(uname -m).tar.gz && \
tar zxf swiftly-$(uname -m).tar.gz && \
./swiftly init --quiet-shell-followup && \
. "${SWIFTLY_HOME_DIR:-$HOME/.local/share/swiftly}/env.sh" && \
hash -r
Commençons la construction (cela prendra beaucoup de temps) :
utils/build-script \
--release-debuginfo \
--swift-darwin-supported-archs="x86_64" \
--llvm-targets-to-build="X86" \
--skip-build-benchmarks \
--skip-test-cmark \
--skip-test-swift \
--skip-ios \
--skip-tvos \
--skip-watchos \
--skip-build-libdispatch=false \
--skip-build-cmark=false \
--skip-build-foundation \
--skip-build-lldb \
--skip-build-xctest \
--skip-test-swift
Une fois la construction terminée, ajoutez le chemin d’accès au compilateur à PATH (spécifiez votre chemin d’accès au dossier de construction) :
export PATH=/root/Sources/3rdparty/build/Ninja-RelWithDebInfoAssert/swift-linux-x86_64/bin/swiftc:$PATH
Nous vérifions que la version installée de Swift fonctionne :
swift --version
Créez un fichier de test et exécutez-le :
echo "print(\"Hello, World!\")" > hello.swift
swift hello.swift
Vous pouvez également compiler le binaire et l’exécuter :
swiftc hello.swift
./hello
Sources
- Démarrer avec Swift sous Windows
- Swiftly (outil de contrôle de version)
- Créer Swift à partir du code source