@@ -78,7 +78,7 @@ elif sys.platform == "darwin":
7878elif sys .platform == "win32" or sys .platform == "msys" :
7979 host_platform = "windows"
8080else :
81- raise ValueError ("Could not detect platform automatically, please specify with " " platform=<platform>" )
81+ raise ValueError ("Could not detect platform automatically, please specify with platform=<platform>" )
8282
8383env = Environment (ENV = os .environ )
8484
@@ -124,7 +124,7 @@ opts.Add(
124124opts .Add (EnumVariable ("android_arch" , "Target Android architecture" , "armv7" , ["armv7" , "arm64v8" , "x86" , "x86_64" ]))
125125opts .Add ("macos_deployment_target" , "macOS deployment target" , "default" )
126126opts .Add ("macos_sdk_path" , "macOS SDK path" , "" )
127- opts .Add (EnumVariable ("macos_arch" , "Target macOS architecture" , "x86_64 " , ["x86_64" , "arm64" ]))
127+ opts .Add (EnumVariable ("macos_arch" , "Target macOS architecture" , "universal " , ["universal" , "x86_64" , "arm64" ]))
128128opts .Add (EnumVariable ("ios_arch" , "Target iOS architecture" , "arm64" , ["armv7" , "arm64" , "x86_64" ]))
129129opts .Add (BoolVariable ("ios_simulator" , "Target iOS Simulator" , False ))
130130opts .Add (
@@ -187,7 +187,14 @@ elif env["platform"] == "osx":
187187 if env ["bits" ] == "32" :
188188 raise ValueError ("Only 64-bit builds are supported for the macOS target." )
189189
190- env .Append (CCFLAGS = ["-std=c++17" , "-arch" , env ["macos_arch" ]])
190+ if env ["macos_arch" ] == "universal" :
191+ env .Append (LINKFLAGS = ["-arch" , "x86_64" , "-arch" , "arm64" ])
192+ env .Append (CCFLAGS = ["-arch" , "x86_64" , "-arch" , "arm64" ])
193+ else :
194+ env .Append (LINKFLAGS = ["-arch" , env ["macos_arch" ]])
195+ env .Append (CCFLAGS = ["-arch" , env ["macos_arch" ]])
196+
197+ env .Append (CCFLAGS = ["-std=c++17" ])
191198
192199 if env ["macos_deployment_target" ] != "default" :
193200 env .Append (CCFLAGS = ["-mmacosx-version-min=" + env ["macos_deployment_target" ]])
@@ -199,8 +206,6 @@ elif env["platform"] == "osx":
199206
200207 env .Append (
201208 LINKFLAGS = [
202- "-arch" ,
203- env ["macos_arch" ],
204209 "-framework" ,
205210 "Cocoa" ,
206211 "-Wl,-undefined,dynamic_lookup" ,
@@ -454,10 +459,12 @@ add_sources(sources, "gen/src/classes", "cpp")
454459arch_suffix = env ["bits" ]
455460if env ["platform" ] == "android" :
456461 arch_suffix = env ["android_arch" ]
457- if env ["platform" ] == "ios" :
462+ elif env ["platform" ] == "ios" :
458463 arch_suffix = env ["ios_arch" ]
459- if env ["platform" ] == "javascript" :
464+ elif env ["platform" ] == "javascript" :
460465 arch_suffix = "wasm"
466+ elif env ["platform" ] == "osx" :
467+ arch_suffix = env ["macos_arch" ]
461468
462469library = env .StaticLibrary (
463470 target = "bin/" + "libgodot-cpp.{}.{}.{}{}" .format (env ["platform" ], env ["target" ], arch_suffix , env ["LIBSUFFIX" ]),
0 commit comments