Skip to content

Add support for platform "none" for embedded targets #726

@dschaefer2

Description

@dschaefer2

For example, in the https://github.com/apple/swift-embedded-examples repo, in the rpi-pico-blink example, edit the make file so that swift build uses --build-system swiftbuild and call make. Eventually you get the error:

error: unable to resolve run destination platform: 'none'

The swift build invocation is:

swift build \
    --configuration release --triple armv6m-apple-none-macho --toolset /Users/dschaefer2/swift/embedded/swift-embedded-examples/Tools/Toolsets/pico.json \
    -Xlinker -map -Xlinker /Users/dschaefer2/swift/embedded/swift-embedded-examples/rpi-pico-blink/.build/armv6m-apple-none-macho/release/Application.mangled.map \
    --build-system swiftbuild --verbose

The toolset.json file provides the swiftc and linker extra command line arguments to build for this platform.

From debugging such a build I can see that the flags from toolset.json are being passed to the swiftbuild build request and the platform is set to 'none' from the triple. SwiftBuild needs to be able to handle this case to achieve parity with the SwiftPM native build-system.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions