All Projects → futurejones → Swift Arm64

futurejones / Swift Arm64

Swift for Arm64/aarch64 Servers and SBC's - Rock64, RaspberryPi3 and many more

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Swift Arm64

Smarthome
Device integration platform for your smart home
Stars: ✭ 92 (-8%)
Mutual labels:  raspberry-pi
Bbc Fdc
Floppy disk interface for Raspberry Pi
Stars: ✭ 96 (-4%)
Mutual labels:  raspberry-pi
My Raspberry
My Archlinux Raspberry PI setup
Stars: ✭ 98 (-2%)
Mutual labels:  raspberry-pi
Qtrpi
An easy-to-use environment to cross-compile Qt applications for Raspberry Pi from your desktop.
Stars: ✭ 93 (-7%)
Mutual labels:  raspberry-pi
Picamera
A pure Python interface to the Raspberry Pi camera module
Stars: ✭ 1,339 (+1239%)
Mutual labels:  raspberry-pi
Pimenu
Simple fullscreen menu system for Raspberry Pi Touchscreen
Stars: ✭ 96 (-4%)
Mutual labels:  raspberry-pi
Silvia Pi
A Raspberry Pi modification to the Rancilio Silvia Espresso Machine implementing PID temperature control.
Stars: ✭ 91 (-9%)
Mutual labels:  raspberry-pi
Jagcs
Just another ground control station
Stars: ✭ 99 (-1%)
Mutual labels:  raspberry-pi
Picam
Elixir library used to capture MJPEG video on a Raspberry Pi using the camera module.
Stars: ✭ 96 (-4%)
Mutual labels:  raspberry-pi
Picamnn
Survelliance system with deep learning based people detection (YOLO)
Stars: ✭ 97 (-3%)
Mutual labels:  raspberry-pi
Zynthian Ui
User Interface for Zynthian
Stars: ✭ 92 (-8%)
Mutual labels:  raspberry-pi
Processing Sound
Audio library for Processing built with JSyn
Stars: ✭ 94 (-6%)
Mutual labels:  raspberry-pi
Smgate
用树莓派做v2ray透明翻墙网关
Stars: ✭ 96 (-4%)
Mutual labels:  raspberry-pi
Magicblue
💡 Unofficial Python API to control Magic Blue bulbs over Bluetooth
Stars: ✭ 92 (-8%)
Mutual labels:  raspberry-pi
Nintimdo Rp
Raspberry Pi Gaming Console
Stars: ✭ 98 (-2%)
Mutual labels:  raspberry-pi
Joustmania
Raspberry Pi Jousting at its finest
Stars: ✭ 91 (-9%)
Mutual labels:  raspberry-pi
Phpi
Event driven library for interfacing with Raspberry Pi GPIO in PHP
Stars: ✭ 96 (-4%)
Mutual labels:  raspberry-pi
Iotpos
IotPOS, an open source Point of Sale software.
Stars: ✭ 99 (-1%)
Mutual labels:  raspberry-pi
Wifimeshraspberrypi
Workshop to create a sensor application over a WiFi Mesh network
Stars: ✭ 99 (-1%)
Mutual labels:  raspberry-pi
Nextcloudpi
📦 Build code for NextcloudPi: Raspberry Pi, Odroid, Rock64, Docker, curl installer...
Stars: ✭ 1,340 (+1240%)
Mutual labels:  raspberry-pi

Swift for Arm64/AArch64 Servers and SBC's

Latest build info from our CI server

The awesome Cavium ThunderX from Packet Bare Metal Servers

Swift 5.2.5     Build Status

Swift 5.3         Build Status

Master             Build Status   

Build Status  Build Status  Build Status  Build Status 

Swift-Arm64

Swift for Arm64/aarch64 Servers and SBC's - Rock64, RaspberryPi3 and many more

Install packages are now available for arm64/aarch64 compatible Servers and SBC's.

for Ubuntu/Debian/Stretch

Add repo -

$ curl -s https://packagecloud.io/install/repositories/swift-arm/release/script.deb.sh | sudo bash

Install Swift 5.-.-

$ sudo apt-get install swift5

NOTE: From Swift version 5.2.5 onwards the install package will be named swiftlang

$ sudo apt-get install swiftlang

Tested Servers

c1-large-arm from Packet - Packet Bare Metal Servers
Amazon EC2 Arm64 instances - AWS

Tested Boards and OS's

Rock64 / RockPro64 - Debian/Stretch Ubuntu/Xenial - http://pine64.org
RaspberryPi 3 / 4 models - Ubuntu 18.04 / 20.04 / 20.10 64bit
ODROID-C2 - Ubuntu 16.04.4 LTS xenial

RaspberyPi 3 / 4 64bit OS

An official 64 bit Ubuntu install image is now available for Raspberry Pi 2/3/4.

Ubuntu Focal 20.10 now available for Raspberry Pi

Download image here - https://ubuntu.com/download/raspberry-pi

Swift 5 AArch64 for Ubuntu 18.04 / 19.04 / 20.04 / 20.10 is available here - Swift-Arm Community Releases

Building Swift With Docker

You can now build Swift for multiple OS releases all from the same build server using Docker containers. - Build with Docker

Building Swift

Swift development on AArch64 systems is currently possible on Ubuntu 16.04 and 18.04.
The following build instructions are for Ubuntu 16.04 and 18.04.

Setting up the Swift development environment

  • If possible start with a new clean install of Ubuntu 16.04 / 18.04 and then update and upgrade your system:
    $ sudo apt-get update
    $ sudo apt-get upgrade
  • Install development dependencies:
    $ sudo apt-get install git cmake ninja-build clang python uuid-dev libicu-dev icu-devtools libbsd-dev libedit-dev libxml2-dev libsqlite3-dev swig libpython-dev libncurses5-dev pkg-config libblocksruntime-dev libcurl4-openssl-dev systemtap-sdt-dev tzdata rsync python-six

CMake minimum version.

  • Swift build now requires cmake version 3.15.1 or greater.
    The version you have installed will depend your OS version.
    To check cmake version run -
    cmake --version
    If your version is less than 3.15.2 you have 2 choices
  1. Do nothing. Swift build will automatically download the cmake source code and build cmake version 3.15.1. before starting the swift build. NOTE* This will take considerable time depending on your build machine.
  2. Download and install cmake 3.15.2 from swift-arm/build_tools repo
    $ curl -s https://packagecloud.io/install/repositories/swift-arm/build_tools/script.deb.sh | sudo bash
    $ sudo apt-get install cmake

NOTE: Minimum CMake version for Swift 5.3: is now 3.16.5

Getting Sources for Swift and Related Projects

  • First create a directory for all of the Swift sources:
    mkdir swift-source
    cd swift-source

  • Next clone the Swift repository:
    $ git clone https://github.com/apple/swift.git

  • Next use the "update-checkout" utility to clone the related repositories. When using this utility we can use either a --tag to specify a release or --scheme to specify a branch. If no tag or scheme is used then the master will be used as default.
    The following command will clone and checkout all necessary repositories to build a 4.2.1 release.
    $ ./swift/utils/update-checkout --clone --tag swift-4.2.1-RELEASE
    The following command will clone and checkout all necessary repositories to build the swift-5.0-branch.
    $ ./swift/utils/update-checkout --clone --scheme swift-5.0-branch

Applying Patches

  • Some branches require additional patches for successful builds.
    • swift-4.2-branch:
      $ cd swift
      $ wget https://github.com/futurejones/swift-arm64/raw/master/swift-4.2-patches/swift-4.2-aarch64-VarArgs.patch
      $ git apply swift-4.2-aarch64-VarArgs.patch
      $ wget https://github.com/futurejones/swift-arm64/raw/master/swift-4.2-patches/swift-4.2-pm-fix.patch
      $ git apply swift-4.2-pm-fix.patch
      $ cd -
      NOTE: From v4.2.3 swift-4.2-branch no longer needs patching.

    • swift-5.0-branch:
      From 2019-01-30 changes have been merged with the swift-5.0-branch so patches are no longer required.

    • swift-5.2-branch:
      Currently requires a patch for the swift package manager.
      $ cd swift
      $ wget https://github.com/futurejones/swift-arm64/raw/master/swiftpm/triple-gnu.patch
      $ git apply triple-gnu.patch
      fixed

    • release/5.3:
      No patches required.

    • master:
      Currently requires a patch for the swift package manager.
      $ cd swift
      $ wget https://github.com/futurejones/swift-arm64/raw/master/swiftpm/triple-gnu.patch
      $ git apply triple-gnu.patch
      fixed

Building with Ninja

  • The build-script is a high-level build automation script that supports basic options such as building a Swift-compatible LLDB, building the Swift Package Manager, building for various platforms, running tests after builds, and more.
    We will be using buildbot_linux presets to specify OS, install directories and package names.
    NOTE: Replace [USER] with your user name. You should also rename "swift-4.2.1-aarch64-RELEASE-Ubuntu-16.04.tar.gz" tarball to match your build if needed
    $ ./swift/utils/build-script --preset=buildbot_linux,no_test install_destdir=/home/[USER]/swift-source/install installable_package=/home/[USER]/swift-source/install/swift-4.2.1-aarch64-RELEASE-Ubuntu-16.04.tar.gz -n
    Using the "-n" tag on the end of the command enables a "dry run" to check the commands are correct before running the actual build.
    If everything is correct then you can remove "-n" and proceed with the build.
    Depending on your build system the build can take from 1.5hrs to 15hrs or more.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].