Rust и кросс-компиляция с Linux на Mac на GitHub Actions


Введение

Итак, у вас есть бинарный файл, который вы хотите распространять, но в данный момент вы можете компилировать только для Windows и Linux. Вы потратили часы, если не дни, на поиск в гугле подходящего способа кросс-компиляции с Linux на Mac… Ну, я здесь, чтобы сказать вам, что я был там и теперь предлагаю простое решение!

Соус

Основное использование

# Setup Rust, use the x86_64-apple-darwin target but the rest can be customized.
- uses: ATiltedTree/setup-rust@v1
  with:
    targets: x86_64-apple-darwin
    rust-version: nightly # Works both with 'stable' and 'nightly'

# Use the v1 of this action
- uses: mbround18/setup-osxcross@v1
  # This builds executables & sets env variables for rust to consume.
  with:
    osx-version: "12.3"

# Checkout your code
- name: Clone your Code
  uses: actions/checkout@v3

# Build your code for apple-darwin based release
- name: Build Your Code
  run: cargo build --release --target x86_64-apple-darwin
Войдите в полноэкранный режим Выход из полноэкранного режима

Объяснение функциональности

  1. Создает папку osxcross в рабочей директории github actions. (чтобы избежать вмешательства в любые файлы, с которыми вы можете работать)
  2. Клонирует репозиторий osxcross.
  3. Загружает SDK, соответствующий указанной вами версии, из @joseluisq/macosx-sdks
  4. Проверяет кэш
  5. Собирает, если кэш не был достигнут
  6. Устанавливает переменные окружения для сборки x86_64-apple-darwin.

Крики и благодарности

  • Спасибо Джеймсу Уэйплзу за написание статьи о кросс-компиляции
  • Спасибо osxcross за создание пути вперед
  • Спасибо joseluisq за упаковку SDK

Оцените статью
devanswers.ru
Добавить комментарий