Оказывается, можно использовать утилиту swift вместо make или cmake для чисто C/C++ проектов. Хоть на маке, хоть на Линуксе. Вот пример.
Создадим папку src и в ней файл main.cpp. Положим туда классический пример Hello World.
$ mkdir src
$ cat > src/hello.cpp
#include <iostream>
int main()
{
std::cout << "hello world!\n";
}
^D
Сделаем скрипт сборки для swift.
$ cat > Package.swift
// swift-tools-version: 6.2
import PackageDescription
let package = Package(
name: "Hello",
products: [
.executable(
name: "hello",
targets: ["Hello"],
),
],
targets: [
.executableTarget(
name: "Hello",
path: "src",
),
],
)
^D
Компилируем и запускаем.
$ swift run
Building for debugging...
[3/3] Linking hello
Build of product 'hello' complete! (0.49s)
hello world!
Напомню, что компилятор Swift на Линуксе ставится командами:
wget https://download.swift.org/swift-6.2-release/ubuntu2404/swift-6.2-RELEASE/swift-6.2-RELEASE-ubuntu24.04.tar.gz
tar xf swift-6.2-RELEASE-ubuntu24.04.tar.gz -C /opt
После этого в файле ~/.bashrc устанавливаем алиас:
alias swift='/opt/swift-6.2-RELEASE-ubuntu24.04/usr/bin/swift'
Проверяем:
$ swift --version
Swift version 6.2 (swift-6.2-RELEASE)
Target: x86_64-unknown-linux-gnu