Enable building with the Swift Linux SDK (#151)
This commit is contained in:
parent
e76d61155b
commit
e019cb6909
2 changed files with 25 additions and 2 deletions
21
.github/workflows/ci.yml
vendored
21
.github/workflows/ci.yml
vendored
|
|
@ -42,3 +42,24 @@ jobs:
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
run: swift test -v
|
run: swift test -v
|
||||||
|
|
||||||
|
static-linux-sdk-build:
|
||||||
|
name: Linux Static SDK Build (${{ matrix.swift-version }} - ${{ matrix.os }})
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest]
|
||||||
|
swift-version:
|
||||||
|
- 6.1.2
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
container: swift:${{ matrix.swift-version }}-noble
|
||||||
|
timeout-minutes: 30
|
||||||
|
steps:
|
||||||
|
- name: Check out code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Install static SDK and build
|
||||||
|
env:
|
||||||
|
BUILD_FLAGS: ""
|
||||||
|
run: |
|
||||||
|
which curl || (apt -q update && apt -yq install curl)
|
||||||
|
curl -s --retry 3 https://raw.githubusercontent.com/swiftlang/github-workflows/refs/heads/main/.github/workflows/scripts/install-and-build-with-sdk.sh | \
|
||||||
|
bash -s -- --static --flags="$BUILD_FLAGS" ${{ matrix.swift-version }}
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,11 @@ import struct Foundation.Data
|
||||||
import Darwin.POSIX
|
import Darwin.POSIX
|
||||||
#elseif canImport(Glibc)
|
#elseif canImport(Glibc)
|
||||||
import Glibc
|
import Glibc
|
||||||
|
#elseif canImport(Musl)
|
||||||
|
import Musl
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if canImport(Darwin) || canImport(Glibc)
|
#if canImport(Darwin) || canImport(Glibc) || canImport(Musl)
|
||||||
/// An implementation of the MCP stdio transport protocol.
|
/// An implementation of the MCP stdio transport protocol.
|
||||||
///
|
///
|
||||||
/// This transport implements the [stdio transport](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#stdio)
|
/// This transport implements the [stdio transport](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#stdio)
|
||||||
|
|
@ -107,7 +109,7 @@ import struct Foundation.Data
|
||||||
/// - Parameter fileDescriptor: The file descriptor to configure
|
/// - Parameter fileDescriptor: The file descriptor to configure
|
||||||
/// - Throws: Error if the operation fails
|
/// - Throws: Error if the operation fails
|
||||||
private func setNonBlocking(fileDescriptor: FileDescriptor) throws {
|
private func setNonBlocking(fileDescriptor: FileDescriptor) throws {
|
||||||
#if canImport(Darwin) || canImport(Glibc)
|
#if canImport(Darwin) || canImport(Glibc) || canImport(Musl)
|
||||||
// Get current flags
|
// Get current flags
|
||||||
let flags = fcntl(fileDescriptor.rawValue, F_GETFL)
|
let flags = fcntl(fileDescriptor.rawValue, F_GETFL)
|
||||||
guard flags >= 0 else {
|
guard flags >= 0 else {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue