Swift вместо make
Sep. 23rd, 2025 11:07 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Оказывается, можно использовать утилиту swift вместо make или cmake для чисто C/C++ проектов. Хоть на маке, хоть на Линуксе. Вот пример.
Создадим папку src и в ней файл main.cpp. Положим туда классический пример Hello World.
Создадим папку src и в ней файл main.cpp. Положим туда классический пример Hello World.
Сделаем скрипт сборки для swift.$ mkdir src
$ cat > src/hello.cpp
#include <iostream>
int main()
{
std::cout << "hello world!\n";
}
^D
Компилируем и запускаем.$ 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 на Линуксе ставится командами:$ swift run
Building for debugging...
[3/3] Linking hello
Build of product 'hello' complete! (0.49s)
hello world!
После этого в файле ~/.bashrc устанавливаем алиас: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
Проверяем: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