Merge pull request #111299 from stuartcarnie/swift_build

Build: Fix container build path for swift
This commit is contained in:
Rémi Verschelde 2025-10-18 11:45:54 +02:00 committed by GitHub
commit 7864ac8019
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 21 additions and 1 deletions

View file

@ -25,6 +25,7 @@ def get_opts():
return [
("vulkan_sdk_path", "Path to the Vulkan SDK", ""),
("SWIFT_FRONTEND", "Path to the swift-frontend binary", ""),
# APPLE_TOOLCHAIN_PATH Example: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain
(("APPLE_TOOLCHAIN_PATH", "IOS_TOOLCHAIN_PATH"), "Path to the Apple toolchain", ""),
(("APPLE_SDK_PATH", "IOS_SDK_PATH"), "Path to the iOS SDK", ""),

View file

@ -29,6 +29,7 @@ def get_opts():
return [
("osxcross_sdk", "OSXCross SDK version", "darwin16"),
("SWIFT_FRONTEND", "Path to the swift-frontend binary", ""),
("MACOS_SDK_PATH", "Path to the macOS SDK", ""),
("vulkan_sdk_path", "Path to the Vulkan SDK", ""),
EnumVariable("macports_clang", "Build using Clang from MacPorts", "no", ["no", "5.0", "devel"], ignorecase=2),

View file

@ -24,6 +24,7 @@ def get_opts():
from SCons.Variables import BoolVariable
return [
("SWIFT_FRONTEND", "Path to the swift-frontend binary", ""),
# APPLE_TOOLCHAIN_PATH Example: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain
("APPLE_TOOLCHAIN_PATH", "Path to the Apple toolchain", ""),
(("APPLE_SDK_PATH", "VISIONOS_SDK_PATH"), "Path to the visionOS SDK", ""),

View file

@ -270,7 +270,16 @@ def setup_swift_builder(env, apple_platform, sdk_path, current_path, bridging_he
env["ALL_SWIFT_FILES"] = all_swift_files
env["CURRENT_PATH"] = current_path
frontend_path = "$APPLE_TOOLCHAIN_PATH/usr/bin/swift-frontend"
if "SWIFT_FRONTEND" in env and env["SWIFT_FRONTEND"] != "":
frontend_path = env["SWIFT_FRONTEND"]
elif "osxcross" not in env:
frontend_path = "$APPLE_TOOLCHAIN_PATH/usr/bin/swift-frontend"
else:
frontend_path = None
if frontend_path is None:
raise Exception("Swift frontend path is not set. Please set SWIFT_FRONTEND.")
bridging_header_path = current_path + "/" + bridging_header_filename
env["SWIFTC"] = frontend_path + " -frontend -c" # Swift compiler
env["SWIFTCFLAGS"] = [
@ -290,6 +299,14 @@ def setup_swift_builder(env, apple_platform, sdk_path, current_path, bridging_he
"-I./", # Pass the current directory as the header root so bridging headers can include files from any point of the hierarchy
]
if "osxcross" in env:
env.Append(
SWIFTCFLAGS=[
"-resource-dir",
"/root/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift",
]
)
if env["debug_symbols"]:
env.Append(SWIFTCFLAGS=["-g"])