From e307c6d844bd2bf3d5725a113685e3c38c64bdb8 Mon Sep 17 00:00:00 2001 From: Zac Bowling Date: Sun, 3 Dec 2017 17:41:59 -0800 Subject: [PATCH 1/2] Search arch specific lib directory --- lib/script.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/script.py b/lib/script.py index 150eb95d48..0501d108c5 100644 --- a/lib/script.py +++ b/lib/script.py @@ -120,9 +120,10 @@ def generate_products(self): swift_flags += "-O " swift_flags += Configuration.current.extra_swift_flags - + swift_flags += """ -TARGET_SWIFTEXE_FLAGS = -I${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + """ -L${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + """ """ +TARGET_SWIFTEXE_FLAGS = -I${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + """ -L${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + \ +""" -L${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + """/""" +Configuration.current.target.swift_arch + """ """ if Configuration.current.build_mode == Configuration.Debug: swift_flags += "-g -Onone -enable-testing " elif Configuration.current.build_mode == Configuration.Release: @@ -135,7 +136,8 @@ def generate_products(self): EXTRA_LD_FLAGS = """ + Configuration.current.extra_ld_flags ld_flags += """ -TARGET_LDFLAGS = --target=${TARGET} ${EXTRA_LD_FLAGS} -L${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + """ """ +TARGET_LDFLAGS = --target=${TARGET} ${EXTRA_LD_FLAGS} -L${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + \ +""" -L${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + """/""" +Configuration.current.target.swift_arch + """ """ if Configuration.current.system_root is not None: ld_flags += "--sysroot=${SYSROOT}" From ad2f29b446c6aba991f250500d2e6f3a8706c6fa Mon Sep 17 00:00:00 2001 From: Zac Bowling Date: Sun, 3 Dec 2017 20:07:23 -0800 Subject: [PATCH 2/2] be more specific for lib search paths --- lib/script.py | 23 +++++++++++++++++------ lib/target.py | 2 ++ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/lib/script.py b/lib/script.py index 0501d108c5..e722606f36 100644 --- a/lib/script.py +++ b/lib/script.py @@ -122,10 +122,16 @@ def generate_products(self): swift_flags += Configuration.current.extra_swift_flags swift_flags += """ -TARGET_SWIFTEXE_FLAGS = -I${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + """ -L${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + \ -""" -L${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + """/""" +Configuration.current.target.swift_arch + """ """ +TARGET_SWIFTEXE_FLAGS = """ + if Configuration.current.target.fat_binaries: + swift_flags += """ -I${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + swift_flags += """ -L${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + else: + swift_flags += """ -I${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + """/""" + Configuration.current.target.swift_arch + swift_flags += """ -L${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + """/""" + Configuration.current.target.swift_arch + if Configuration.current.build_mode == Configuration.Debug: - swift_flags += "-g -Onone -enable-testing " + swift_flags += " -g -Onone -enable-testing " elif Configuration.current.build_mode == Configuration.Release: swift_flags += " " swift_flags += Configuration.current.extra_swift_flags @@ -136,10 +142,15 @@ def generate_products(self): EXTRA_LD_FLAGS = """ + Configuration.current.extra_ld_flags ld_flags += """ -TARGET_LDFLAGS = --target=${TARGET} ${EXTRA_LD_FLAGS} -L${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + \ -""" -L${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + """/""" +Configuration.current.target.swift_arch + """ """ +TARGET_LDFLAGS = --target=${TARGET} ${EXTRA_LD_FLAGS} """ + + if Configuration.current.target.fat_binaries: + ld_flags += """-L${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + else: + ld_flags += """-L${SDKROOT}/lib/swift/""" + Configuration.current.target.swift_sdk_name + """/""" + Configuration.current.target.swift_arch + if Configuration.current.system_root is not None: - ld_flags += "--sysroot=${SYSROOT}" + ld_flags += " --sysroot=${SYSROOT}" if Configuration.current.bootstrap_directory is not None: ld_flags += """ -L${TARGET_BOOTSTRAP_DIR}/usr/lib""" diff --git a/lib/target.py b/lib/target.py index bdeecdff37..745d46ced4 100644 --- a/lib/target.py +++ b/lib/target.py @@ -331,6 +331,7 @@ class Target: dynamic_library_suffix = ".dylib" static_library_prefix = "lib" static_library_suffix = ".a" + fat_binaries = False def __init__(self, triple): if "linux" in triple: @@ -349,6 +350,7 @@ def __init__(self, triple): self.environ = EnvironmentType.UnknownEnvironment elif "darwin" in triple: self.sdk = OSType.MacOSX + self.fat_binaries = True else: print("Unknown platform")