mirror of
https://github.com/apple/swift-nio.git
synced 2026-05-20 20:30:36 +00:00
Swift SDK installation script improvements
### Motivation:
The SDK installation scripts had a few rough edges and didn't verify the
artefacts they downloaded.
### Modifications:
* Change naming to the more accurate "Swift SDK" where we can without
breaking downstream adopters.
* Separate Android NDK installation into its own script.
* Avoid using `cd` when setting up Android NDK.
* Verify checksums for SDKs and signatures for toolchains.
* Specify/control the SDK directory.
### Result:
* More accurate naming.
* More maintainable scripts.
* More secure downloads.
An example of this working
https://github.com/apple/swift-nio/actions/runs/18944235613/job/54090944716?pr=3429
51 lines
1.3 KiB
Bash
Executable File
51 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
##===----------------------------------------------------------------------===##
|
|
##
|
|
## This source file is part of the SwiftNIO open source project
|
|
##
|
|
## Copyright (c) 2025 Apple Inc. and the SwiftNIO project authors
|
|
## Licensed under Apache License v2.0
|
|
##
|
|
## See LICENSE.txt for license information
|
|
## See CONTRIBUTORS.txt for the list of SwiftNIO project authors
|
|
##
|
|
## SPDX-License-Identifier: Apache-2.0
|
|
##
|
|
##===----------------------------------------------------------------------===##
|
|
|
|
set -uo pipefail
|
|
|
|
log() { printf -- "** %s\n" "$*" >&2; }
|
|
error() { printf -- "** ERROR: %s\n" "$*" >&2; }
|
|
fatal() { error "$@"; exit 1; }
|
|
|
|
if command -v apt-get >/dev/null; then
|
|
PACKAGE_MANAGER_BIN="apt-get"
|
|
apt-get update > /dev/null
|
|
elif command -v yum >/dev/null; then
|
|
PACKAGE_MANAGER_BIN="yum"
|
|
else
|
|
fatal "Cannot find either 'apt' or 'yum'"
|
|
fi
|
|
|
|
log "Installing standard Swift prerequisites" # pre-reqs list taken from swift.org
|
|
DEBIAN_FRONTEND=noninteractive "$PACKAGE_MANAGER_BIN" install -y\
|
|
binutils\
|
|
git\
|
|
gnupg2\
|
|
libc6-dev\
|
|
libcurl4-openssl-dev\
|
|
libedit2\
|
|
libgcc-11-dev\
|
|
libpython3-dev\
|
|
libsqlite3-0\
|
|
libstdc++-11-dev\
|
|
libxml2-dev\
|
|
libz3-dev\
|
|
pkg-config\
|
|
python3-lldb-13\
|
|
tzdata\
|
|
unzip\
|
|
zlib1g-dev\
|
|
> /dev/null
|