[WIP] Add separate simulator
flag for iOS build, change main library to xcframework
format.
This commit is contained in:
parent
49b5776e8b
commit
efd8f27790
11 changed files with 112 additions and 21 deletions
|
@ -8,11 +8,11 @@
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
1F1575721F582BE20003B888 /* dylibs in Resources */ = {isa = PBXBuildFile; fileRef = 1F1575711F582BE20003B888 /* dylibs */; };
|
1F1575721F582BE20003B888 /* dylibs in Resources */ = {isa = PBXBuildFile; fileRef = 1F1575711F582BE20003B888 /* dylibs */; };
|
||||||
DEADBEEF2F582BE20003B888 /* $binary.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DEADBEEF1F582BE20003B888 /* $binary.a */; };
|
DEADBEEF2F582BE20003B888 /* $binary.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = DEADBEEF1F582BE20003B888 /* $binary.xcframework */; };
|
||||||
$modules_buildfile
|
$modules_buildfile
|
||||||
1FF8DBB11FBA9DE1009DE660 /* dummy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1FF8DBB01FBA9DE1009DE660 /* dummy.cpp */; };
|
1FF8DBB11FBA9DE1009DE660 /* dummy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1FF8DBB01FBA9DE1009DE660 /* dummy.cpp */; };
|
||||||
D07CD44E1C5D589C00B7FB28 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D07CD44D1C5D589C00B7FB28 /* Images.xcassets */; };
|
D07CD44E1C5D589C00B7FB28 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D07CD44D1C5D589C00B7FB28 /* Images.xcassets */; };
|
||||||
9039D3BE24C093AC0020482C /* MoltenVK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9039D3BD24C093AC0020482C /* MoltenVK.a */; };
|
9039D3BE24C093AC0020482C /* MoltenVK.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9039D3BD24C093AC0020482C /* MoltenVK.xcframework */; };
|
||||||
9073252C24BF980B0063BCD4 /* vulkan in Resources */ = {isa = PBXBuildFile; fileRef = 905036DC24BF932E00301046 /* vulkan */; };
|
9073252C24BF980B0063BCD4 /* vulkan in Resources */ = {isa = PBXBuildFile; fileRef = 905036DC24BF932E00301046 /* vulkan */; };
|
||||||
D0BCFE4618AEBDA2004A7AAE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D0BCFE4418AEBDA2004A7AAE /* InfoPlist.strings */; };
|
D0BCFE4618AEBDA2004A7AAE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D0BCFE4418AEBDA2004A7AAE /* InfoPlist.strings */; };
|
||||||
D0BCFE7818AEBFEB004A7AAE /* $binary.pck in Resources */ = {isa = PBXBuildFile; fileRef = D0BCFE7718AEBFEB004A7AAE /* $binary.pck */; };
|
D0BCFE7818AEBFEB004A7AAE /* $binary.pck in Resources */ = {isa = PBXBuildFile; fileRef = D0BCFE7718AEBFEB004A7AAE /* $binary.pck */; };
|
||||||
|
@ -35,11 +35,11 @@
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
1F1575711F582BE20003B888 /* dylibs */ = {isa = PBXFileReference; lastKnownFileType = folder; name = dylibs; path = "$binary/dylibs"; sourceTree = "<group>"; };
|
1F1575711F582BE20003B888 /* dylibs */ = {isa = PBXFileReference; lastKnownFileType = folder; name = dylibs; path = "$binary/dylibs"; sourceTree = "<group>"; };
|
||||||
DEADBEEF1F582BE20003B888 /* $binary.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = godot; path = "$binary.a"; sourceTree = "<group>"; };
|
DEADBEEF1F582BE20003B888 /* $binary.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = godot; path = "$binary.xcframework"; sourceTree = "<group>"; };
|
||||||
$modules_fileref
|
$modules_fileref
|
||||||
1FF4C1881F584E6300A41E41 /* $binary.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "$binary.entitlements"; sourceTree = "<group>"; };
|
1FF4C1881F584E6300A41E41 /* $binary.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "$binary.entitlements"; sourceTree = "<group>"; };
|
||||||
1FF8DBB01FBA9DE1009DE660 /* dummy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = dummy.cpp; sourceTree = "<group>"; };
|
1FF8DBB01FBA9DE1009DE660 /* dummy.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = dummy.cpp; sourceTree = "<group>"; };
|
||||||
9039D3BD24C093AC0020482C /* MoltenVK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = MoltenVK; path = MoltenVK.a; sourceTree = "<group>"; };
|
9039D3BD24C093AC0020482C /* MoltenVK.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = MoltenVK; path = MoltenVK.xcframework; sourceTree = "<group>"; };
|
||||||
905036DC24BF932E00301046 /* vulkan */ = {isa = PBXFileReference; lastKnownFileType = folder; name = vulkan; path = "$binary/vulkan"; sourceTree = "<group>"; };
|
905036DC24BF932E00301046 /* vulkan */ = {isa = PBXFileReference; lastKnownFileType = folder; name = vulkan; path = "$binary/vulkan"; sourceTree = "<group>"; };
|
||||||
D07CD44D1C5D589C00B7FB28 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
D07CD44D1C5D589C00B7FB28 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
||||||
D0BCFE3418AEBDA2004A7AAE /* $binary.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "$binary.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
D0BCFE3418AEBDA2004A7AAE /* $binary.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "$binary.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
@ -56,8 +56,8 @@
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
9039D3BE24C093AC0020482C /* MoltenVK.a in Frameworks */,
|
9039D3BE24C093AC0020482C /* MoltenVK.xcframework in Frameworks */,
|
||||||
DEADBEEF2F582BE20003B888 /* $binary.a */,
|
DEADBEEF2F582BE20003B888 /* $binary.xcframework */,
|
||||||
$modules_buildphase
|
$modules_buildphase
|
||||||
$additional_pbx_frameworks_build
|
$additional_pbx_frameworks_build
|
||||||
);
|
);
|
||||||
|
@ -90,8 +90,8 @@
|
||||||
D0BCFE3618AEBDA2004A7AAE /* Frameworks */ = {
|
D0BCFE3618AEBDA2004A7AAE /* Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
9039D3BD24C093AC0020482C /* MoltenVK.a */,
|
9039D3BD24C093AC0020482C /* MoltenVK.xcframework */,
|
||||||
DEADBEEF1F582BE20003B888 /* $binary.a */,
|
DEADBEEF1F582BE20003B888 /* $binary.xcframework */,
|
||||||
$modules_buildgrp
|
$modules_buildgrp
|
||||||
$additional_pbx_frameworks_refs
|
$additional_pbx_frameworks_refs
|
||||||
);
|
);
|
||||||
|
|
40
misc/dist/ios_xcode/libgodot.iphone.debug.xcframework/Info.plist
vendored
Normal file
40
misc/dist/ios_xcode/libgodot.iphone.debug.xcframework/Info.plist
vendored
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>AvailableLibraries</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>LibraryIdentifier</key>
|
||||||
|
<string>ios-arm64</string>
|
||||||
|
<key>LibraryPath</key>
|
||||||
|
<string>libgodot.a</string>
|
||||||
|
<key>SupportedArchitectures</key>
|
||||||
|
<array>
|
||||||
|
<string>arm64</string>
|
||||||
|
</array>
|
||||||
|
<key>SupportedPlatform</key>
|
||||||
|
<string>ios</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>LibraryIdentifier</key>
|
||||||
|
<string>ios-arm64_x86_64-simulator</string>
|
||||||
|
<key>LibraryPath</key>
|
||||||
|
<string>libgodot.a</string>
|
||||||
|
<key>SupportedArchitectures</key>
|
||||||
|
<array>
|
||||||
|
<string>arm64</string>
|
||||||
|
<string>x86_64</string>
|
||||||
|
</array>
|
||||||
|
<key>SupportedPlatform</key>
|
||||||
|
<string>ios</string>
|
||||||
|
<key>SupportedPlatformVariant</key>
|
||||||
|
<string>simulator</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>XFWK</string>
|
||||||
|
<key>XCFrameworkFormatVersion</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
1
misc/dist/ios_xcode/libgodot.iphone.debug.xcframework/ios-arm64/empty
vendored
Normal file
1
misc/dist/ios_xcode/libgodot.iphone.debug.xcframework/ios-arm64/empty
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Dummy file to make dylibs folder exported
|
1
misc/dist/ios_xcode/libgodot.iphone.debug.xcframework/ios-arm64_x86_64-simulator/empty
vendored
Normal file
1
misc/dist/ios_xcode/libgodot.iphone.debug.xcframework/ios-arm64_x86_64-simulator/empty
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Dummy file to make dylibs folder exported
|
40
misc/dist/ios_xcode/libgodot.iphone.release.xcframework/Info.plist
vendored
Normal file
40
misc/dist/ios_xcode/libgodot.iphone.release.xcframework/Info.plist
vendored
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>AvailableLibraries</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>LibraryIdentifier</key>
|
||||||
|
<string>ios-arm64</string>
|
||||||
|
<key>LibraryPath</key>
|
||||||
|
<string>libgodot.a</string>
|
||||||
|
<key>SupportedArchitectures</key>
|
||||||
|
<array>
|
||||||
|
<string>arm64</string>
|
||||||
|
</array>
|
||||||
|
<key>SupportedPlatform</key>
|
||||||
|
<string>ios</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>LibraryIdentifier</key>
|
||||||
|
<string>ios-arm64_x86_64-simulator</string>
|
||||||
|
<key>LibraryPath</key>
|
||||||
|
<string>libgodot.a</string>
|
||||||
|
<key>SupportedArchitectures</key>
|
||||||
|
<array>
|
||||||
|
<string>arm64</string>
|
||||||
|
<string>x86_64</string>
|
||||||
|
</array>
|
||||||
|
<key>SupportedPlatform</key>
|
||||||
|
<string>ios</string>
|
||||||
|
<key>SupportedPlatformVariant</key>
|
||||||
|
<string>simulator</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>XFWK</string>
|
||||||
|
<key>XCFrameworkFormatVersion</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
1
misc/dist/ios_xcode/libgodot.iphone.release.xcframework/ios-arm64/empty
vendored
Normal file
1
misc/dist/ios_xcode/libgodot.iphone.release.xcframework/ios-arm64/empty
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Dummy file to make dylibs folder exported
|
1
misc/dist/ios_xcode/libgodot.iphone.release.xcframework/ios-arm64_x86_64-simulator/empty
vendored
Normal file
1
misc/dist/ios_xcode/libgodot.iphone.release.xcframework/ios-arm64_x86_64-simulator/empty
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Dummy file to make dylibs folder exported
|
|
@ -34,6 +34,7 @@ def get_opts():
|
||||||
" validation layers)",
|
" validation layers)",
|
||||||
False,
|
False,
|
||||||
),
|
),
|
||||||
|
BoolVariable("ios_simulator", "Build for iOS Simulator", False),
|
||||||
BoolVariable("ios_exceptions", "Enable exceptions", False),
|
BoolVariable("ios_exceptions", "Enable exceptions", False),
|
||||||
("ios_triple", "Triple for ios toolchain", ""),
|
("ios_triple", "Triple for ios toolchain", ""),
|
||||||
]
|
]
|
||||||
|
@ -107,8 +108,17 @@ def configure(env):
|
||||||
|
|
||||||
## Compile flags
|
## Compile flags
|
||||||
|
|
||||||
if env["arch"] == "x86" or env["arch"] == "x86_64":
|
if env["ios_simulator"]:
|
||||||
detect_darwin_sdk_path("iphonesimulator", env)
|
detect_darwin_sdk_path("iphonesimulator", env)
|
||||||
|
env.Append(CCFLAGS=["-mios-simulator-version-min=13.0"])
|
||||||
|
env.Append(LINKFLAGS=["-mios-simulator-version-min=13.0"])
|
||||||
|
env.extra_suffix = ".simulator" + env.extra_suffix
|
||||||
|
else:
|
||||||
|
detect_darwin_sdk_path("iphone", env)
|
||||||
|
env.Append(CCFLAGS=["-miphoneos-version-min=11.0"])
|
||||||
|
env.Append(LINKFLAGS=["-miphoneos-version-min=11.0"])
|
||||||
|
|
||||||
|
if env["arch"] == "x86" or env["arch"] == "x86_64":
|
||||||
env["ENV"]["MACOSX_DEPLOYMENT_TARGET"] = "10.9"
|
env["ENV"]["MACOSX_DEPLOYMENT_TARGET"] = "10.9"
|
||||||
arch_flag = "i386" if env["arch"] == "x86" else env["arch"]
|
arch_flag = "i386" if env["arch"] == "x86" else env["arch"]
|
||||||
env.Append(
|
env.Append(
|
||||||
|
@ -116,11 +126,10 @@ def configure(env):
|
||||||
"-fobjc-arc -arch "
|
"-fobjc-arc -arch "
|
||||||
+ arch_flag
|
+ arch_flag
|
||||||
+ " -fobjc-abi-version=2 -fobjc-legacy-dispatch -fmessage-length=0 -fpascal-strings -fblocks"
|
+ " -fobjc-abi-version=2 -fobjc-legacy-dispatch -fmessage-length=0 -fpascal-strings -fblocks"
|
||||||
" -fasm-blocks -isysroot $IPHONESDK -mios-simulator-version-min=13.0"
|
" -fasm-blocks -isysroot $IPHONESDK"
|
||||||
).split()
|
).split()
|
||||||
)
|
)
|
||||||
elif env["arch"] == "arm":
|
elif env["arch"] == "arm":
|
||||||
detect_darwin_sdk_path("iphone", env)
|
|
||||||
env.Append(
|
env.Append(
|
||||||
CCFLAGS=(
|
CCFLAGS=(
|
||||||
"-fobjc-arc -arch armv7 -fmessage-length=0 -fno-strict-aliasing"
|
"-fobjc-arc -arch armv7 -fmessage-length=0 -fno-strict-aliasing"
|
||||||
|
@ -128,16 +137,15 @@ def configure(env):
|
||||||
" -fpascal-strings -fblocks -isysroot $IPHONESDK -fvisibility=hidden -mthumb"
|
" -fpascal-strings -fblocks -isysroot $IPHONESDK -fvisibility=hidden -mthumb"
|
||||||
' "-DIBOutlet=__attribute__((iboutlet))"'
|
' "-DIBOutlet=__attribute__((iboutlet))"'
|
||||||
' "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))"'
|
' "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))"'
|
||||||
' "-DIBAction=void)__attribute__((ibaction)" -miphoneos-version-min=11.0 -MMD -MT dependencies'.split()
|
' "-DIBAction=void)__attribute__((ibaction)" -MMD -MT dependencies'.split()
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
elif env["arch"] == "arm64":
|
elif env["arch"] == "arm64":
|
||||||
detect_darwin_sdk_path("iphone", env)
|
|
||||||
env.Append(
|
env.Append(
|
||||||
CCFLAGS=(
|
CCFLAGS=(
|
||||||
"-fobjc-arc -arch arm64 -fmessage-length=0 -fno-strict-aliasing"
|
"-fobjc-arc -arch arm64 -fmessage-length=0 -fno-strict-aliasing"
|
||||||
" -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits"
|
" -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits"
|
||||||
" -fpascal-strings -fblocks -fvisibility=hidden -MMD -MT dependencies -miphoneos-version-min=11.0"
|
" -fpascal-strings -fblocks -fvisibility=hidden -MMD -MT dependencies"
|
||||||
" -isysroot $IPHONESDK".split()
|
" -isysroot $IPHONESDK".split()
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -162,7 +170,6 @@ def configure(env):
|
||||||
LINKFLAGS=[
|
LINKFLAGS=[
|
||||||
"-arch",
|
"-arch",
|
||||||
arch_flag,
|
arch_flag,
|
||||||
"-mios-simulator-version-min=13.0",
|
|
||||||
"-isysroot",
|
"-isysroot",
|
||||||
"$IPHONESDK",
|
"$IPHONESDK",
|
||||||
"-Xlinker",
|
"-Xlinker",
|
||||||
|
@ -173,9 +180,9 @@ def configure(env):
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
elif env["arch"] == "arm":
|
elif env["arch"] == "arm":
|
||||||
env.Append(LINKFLAGS=["-arch", "armv7", "-Wl,-dead_strip", "-miphoneos-version-min=11.0"])
|
env.Append(LINKFLAGS=["-arch", "armv7", "-Wl,-dead_strip"])
|
||||||
if env["arch"] == "arm64":
|
if env["arch"] == "arm64":
|
||||||
env.Append(LINKFLAGS=["-arch", "arm64", "-Wl,-dead_strip", "-miphoneos-version-min=11.0"])
|
env.Append(LINKFLAGS=["-arch", "arm64", "-Wl,-dead_strip"])
|
||||||
|
|
||||||
env.Append(
|
env.Append(
|
||||||
LINKFLAGS=[
|
LINKFLAGS=[
|
||||||
|
|
|
@ -1575,9 +1575,9 @@ Error EditorExportPlatformIOS::export_project(const Ref<EditorExportPreset> &p_p
|
||||||
return ERR_SKIP;
|
return ERR_SKIP;
|
||||||
}
|
}
|
||||||
|
|
||||||
String library_to_use = "libgodot.iphone." + String(p_debug ? "debug" : "release") + ".fat.a";
|
String library_to_use = "libgodot.iphone." + String(p_debug ? "debug" : "release") + ".xcframework";
|
||||||
|
|
||||||
print_line("Static library: " + library_to_use);
|
print_line("Static framework: " + library_to_use);
|
||||||
String pkg_name;
|
String pkg_name;
|
||||||
if (p_preset->get("application/name") != "") {
|
if (p_preset->get("application/name") != "") {
|
||||||
pkg_name = p_preset->get("application/name"); // app_name
|
pkg_name = p_preset->get("application/name"); // app_name
|
||||||
|
@ -1663,7 +1663,7 @@ Error EditorExportPlatformIOS::export_project(const Ref<EditorExportPreset> &p_p
|
||||||
if (files_to_parse.has(file)) {
|
if (files_to_parse.has(file)) {
|
||||||
_fix_config_file(p_preset, data, config_data, p_debug);
|
_fix_config_file(p_preset, data, config_data, p_debug);
|
||||||
} else if (file.begins_with("libgodot.iphone")) {
|
} else if (file.begins_with("libgodot.iphone")) {
|
||||||
if (file != library_to_use) {
|
if (!file.begins_with(library_to_use) || file.ends_with(String("/empty"))) {
|
||||||
ret = unzGoToNextFile(src_pkg_zip);
|
ret = unzGoToNextFile(src_pkg_zip);
|
||||||
continue; //ignore!
|
continue; //ignore!
|
||||||
}
|
}
|
||||||
|
@ -1671,7 +1671,7 @@ Error EditorExportPlatformIOS::export_project(const Ref<EditorExportPreset> &p_p
|
||||||
#if defined(OSX_ENABLED) || defined(X11_ENABLED)
|
#if defined(OSX_ENABLED) || defined(X11_ENABLED)
|
||||||
is_execute = true;
|
is_execute = true;
|
||||||
#endif
|
#endif
|
||||||
file = "godot_ios.a";
|
file = file.replace(library_to_use, binary_name + ".xcframework");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (file == project_file) {
|
if (file == project_file) {
|
||||||
|
|
Loading…
Reference in a new issue