From aac0c69dda6e441a4d69b6424234e561ebe3fa77 Mon Sep 17 00:00:00 2001 From: kingbri Date: Sun, 28 Jul 2024 21:20:12 -0400 Subject: [PATCH 1/2] Swift: Fix Windows build Adds some flags for Swift's LLVM compiler to succeed on Windows. Related: https://github.com/llvm/llvm-project/issues/40056 Signed-off-by: kingbri --- Package.swift | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index 1d90b47bfa3da..7f16f34f0ca49 100644 --- a/Package.swift +++ b/Package.swift @@ -18,7 +18,7 @@ var sources = [ var resources: [Resource] = [] var linkerSettings: [LinkerSetting] = [] -var cSettings: [CSetting] = [ +var cSettings: [CSetting] = [ .unsafeFlags(["-Wno-shorten-64-to-32", "-O3", "-DNDEBUG"]), .unsafeFlags(["-fno-objc-arc"]), // NOTE: NEW_LAPACK will required iOS version 16.4+ @@ -27,6 +27,8 @@ var cSettings: [CSetting] = [ // .define("ACCELERATE_NEW_LAPACK"), // .define("ACCELERATE_LAPACK_ILP64") ] +var cxxSettings: [CXXSetting] = [] +var cxxStandard: CXXLanguageStandard = .cxx11 #if canImport(Darwin) sources.append("ggml/src/ggml-metal.m") @@ -44,6 +46,14 @@ cSettings.append( cSettings.append(.define("_GNU_SOURCE")) #endif +#if canImport(WinSDK) + // See https://github.com/llvm/llvm-project/issues/40056 + cxxSettings.append(.unsafeFlags(["-Xclang", "-fno-split-cold-code"])) + + // MSVC errors below C++ 14 + cxxStandard = .cxx14 +#endif + let package = Package( name: "llama", platforms: [ @@ -75,5 +85,5 @@ let package = Package( linkerSettings: linkerSettings ) ], - cxxLanguageStandard: .cxx11 + cxxLanguageStandard: cxxStandard ) From 6b45680f21c082d088f268b85b4748ba074b0882 Mon Sep 17 00:00:00 2001 From: kingbri Date: Sun, 28 Jul 2024 21:34:49 -0400 Subject: [PATCH 2/2] Swift: Add cxx settings Signed-off-by: kingbri --- Package.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Package.swift b/Package.swift index 7f16f34f0ca49..419293eda2fc6 100644 --- a/Package.swift +++ b/Package.swift @@ -82,6 +82,7 @@ let package = Package( resources: resources, publicHeadersPath: "spm-headers", cSettings: cSettings, + cxxSettings: cxxSettings, linkerSettings: linkerSettings ) ],