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

No one assigned

    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