diff --git a/spine-godot/Info.ios.plist b/spine-godot/Info.ios.plist
new file mode 100644
index 000000000..84d3d2bb3
--- /dev/null
+++ b/spine-godot/Info.ios.plist
@@ -0,0 +1,24 @@
+
+
+
+
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundlePackageType
+ FMWK
+ CFBundleExecutable
+ ${BUNDLE_LIBRARY}
+ CFBundleName
+ ${BUNDLE_NAME}
+ CFBundleIdentifier
+ ${BUNDLE_IDENTIFIER}
+ CFBundleVersion
+ ${BUNDLE_VERSION}
+ CFBundleShortVersionString
+ ${BUNDLE_VERSION}
+ MinimumOSVersion
+ ${MIN_IOS_VERSION}
+ DTPlatformName
+ iphoneos
+
+
diff --git a/spine-godot/Info.macos.plist b/spine-godot/Info.macos.plist
new file mode 100644
index 000000000..6be9410ac
--- /dev/null
+++ b/spine-godot/Info.macos.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundlePackageType
+ FMWK
+ CFBundleExecutable
+ ${BUNDLE_LIBRARY}
+ CFBundleName
+ ${BUNDLE_NAME}
+ CFBundleIdentifier
+ ${BUNDLE_IDENTIFIER}
+ CFBundleVersion
+ ${BUNDLE_VERSION}
+ CFBundleShortVersionString
+ ${BUNDLE_VERSION}
+ LSMinimumSystemVersion
+ ${MIN_MACOS_VERSION}
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+
+
diff --git a/spine-godot/SConstruct b/spine-godot/SConstruct
index 1e405f98f..ee775d51a 100644
--- a/spine-godot/SConstruct
+++ b/spine-godot/SConstruct
@@ -112,12 +112,13 @@ if env["target"] in ["editor", "template_debug"]:
except AttributeError:
print("Not including class reference as we're targeting a pre-4.3 baseline.")
-file = "{}{}{}".format(libname, env["suffix"], env["SHLIBSUFFIX"])
+file = "lib{}{}{}".format(libname, env["suffix"], env["SHLIBSUFFIX"])
filepath = ""
if env["platform"] == "macos" or env["platform"] == "ios":
- filepath = "{}.framework/".format(env["platform"])
- file = "{}.{}.{}".format(libname, env["platform"], env["target"])
+ filepath = "lib{}.{}.{}.framework/".format(libname, env["platform"], env["target"])
+ file = "lib{}.{}.{}".format(libname, env["platform"], env["target"])
+ env.Append(LINKFLAGS=["-Wl,-install_name,@rpath/{}{}".format(filepath, file)])
libraryfile = "bin/{}/{}{}".format(env["platform"], filepath, file)
library = env.SharedLibrary(
@@ -125,9 +126,40 @@ library = env.SharedLibrary(
source=sources,
)
-copy = env.InstallAs("{}/bin/{}/{}lib{}".format(projectdir, env["platform"], filepath, file), library)
+if env["platform"] == "macos" or env["platform"] == "ios":
+ plist_subst = {
+ "${BUNDLE_LIBRARY}": file,
+ "${BUNDLE_NAME}": "spine-godot",
+ "${BUNDLE_IDENTIFIER}": "com.esotericsoftware.spine.spine-godot",
+ "${BUNDLE_VERSION}": "4.2.0", # TODO: Get the proper version from somewhere. Note that this must be three integers.
+ "${MIN_MACOS_VERSION}": "10.12",
+ "${MIN_IOS_VERSION}": "12.0"
+ }
+ if env["platform"] == "macos":
+ plist_file = "bin/macos/{}Resources/Info.plist".format(filepath)
+ plist = env.Substfile(
+ target=plist_file,
+ source="Info.macos.plist",
+ SUBST_DICT=plist_subst
+ )
+ elif env["platform"] == "ios":
+ plist_file = "bin/ios/{}Info.plist".format(filepath)
+ plist = env.Substfile(
+ target=plist_file,
+ source="Info.ios.plist",
+ SUBST_DICT=plist_subst
+ )
+
+ env.Depends(library, plist)
+
+copy = env.InstallAs("{}/{}".format(projectdir, libraryfile), library)
default_args = [library, copy]
+
+if env["platform"] == "macos" or env["platform"] == "ios":
+ copy_plist = env.InstallAs("{}/{}".format(projectdir, plist_file), plist_file)
+ default_args.append(copy_plist)
+
if localEnv.get("compiledb", False):
default_args += [compilation_db]
Default(*default_args)
\ No newline at end of file
diff --git a/spine-godot/build/build-extension.sh b/spine-godot/build/build-extension.sh
index 253064b74..b392891bc 100755
--- a/spine-godot/build/build-extension.sh
+++ b/spine-godot/build/build-extension.sh
@@ -57,87 +57,7 @@ echo "CPUS: $cpus"
pushd ..
-if [ "$raw_platform" == "ios" ]; then
- BINDIR="example-v4-extension/bin/ios"
- mkdir -p $BINDIR
-
- # Step 1: Build simulator binaries
- echo "Building for iOS simulator..."
- scons -j $cpus $options $platform target=template_debug arch=universal ios_simulator=yes
- mv $BINDIR/ios.framework/libspine_godot.ios.template_debug $BINDIR/libspine_godot.ios.template_debug.simulator.a
-
- scons -j $cpus $options $platform target=template_release arch=universal ios_simulator=yes
- mv $BINDIR/ios.framework/libspine_godot.ios.template_release $BINDIR/libspine_godot.ios.template_release.simulator.a
-
- # Step 2: Build device binaries
- echo "Building for iOS device..."
- scons -j $cpus $options $platform target=template_debug arch=arm64 ios_simulator=no
- mv $BINDIR/ios.framework/libspine_godot.ios.template_debug $BINDIR/libspine_godot.ios.template_debug.a
-
- scons -j $cpus $options $platform target=template_release arch=arm64 ios_simulator=no
- mv $BINDIR/ios.framework/libspine_godot.ios.template_release $BINDIR/libspine_godot.ios.template_release.a
-
- # Step 3: Create xcframeworks
- echo "Creating xcframeworks..."
-
- xcodebuild -create-xcframework \
- -library $BINDIR/libspine_godot.ios.template_debug.a \
- -library $BINDIR/libspine_godot.ios.template_debug.simulator.a \
- -output $BINDIR/libspine_godot.ios.template_debug.xcframework
-
- xcodebuild -create-xcframework \
- -library $BINDIR/libspine_godot.ios.template_release.a \
- -library $BINDIR/libspine_godot.ios.template_release.simulator.a \
- -output $BINDIR/libspine_godot.ios.template_release.xcframework
-
- # Cleanup intermediate files
- rm -f $BINDIR/*.a
- rm -rf $BINDIR/ios.framework
-
-elif [ "$raw_platform" == "macos" ]; then
- BINDIR="example-v4-extension/bin/macos/macos.framework"
- TMPDIR="example-v4-extension/bin/macos/tmp"
- mkdir -p $BINDIR $TMPDIR
-
- # Build x86_64 binaries
- echo "Building for macOS x86_64..."
- scons -j $cpus $options $platform target=editor arch=x86_64
- mv $BINDIR/libspine_godot.macos.editor $TMPDIR/libspine_godot.macos.editor.x86_64
- scons -j $cpus $options $platform target=template_debug arch=x86_64
- mv $BINDIR/libspine_godot.macos.template_debug $TMPDIR/libspine_godot.macos.template_debug.x86_64
- scons -j $cpus $options $platform target=template_release arch=x86_64
- mv $BINDIR/libspine_godot.macos.template_release $TMPDIR/libspine_godot.macos.template_release.x86_64
-
- # Build arm64 binaries
- echo "Building for macOS arm64..."
- scons -j $cpus $options $platform target=editor arch=arm64
- mv $BINDIR/libspine_godot.macos.editor $TMPDIR/libspine_godot.macos.editor.arm64
- scons -j $cpus $options $platform target=template_debug arch=arm64
- mv $BINDIR/libspine_godot.macos.template_debug $TMPDIR/libspine_godot.macos.template_debug.arm64
- scons -j $cpus $options $platform target=template_release arch=arm64
- mv $BINDIR/libspine_godot.macos.template_release $TMPDIR/libspine_godot.macos.template_release.arm64
-
- # Create universal binaries
- echo "Creating universal binaries..."
- lipo -create \
- $TMPDIR/libspine_godot.macos.editor.x86_64 \
- $TMPDIR/libspine_godot.macos.editor.arm64 \
- -output $BINDIR/libspine_godot.macos.editor
-
- lipo -create \
- $TMPDIR/libspine_godot.macos.template_debug.x86_64 \
- $TMPDIR/libspine_godot.macos.template_debug.arm64 \
- -output $BINDIR/libspine_godot.macos.template_debug
-
- lipo -create \
- $TMPDIR/libspine_godot.macos.template_release.x86_64 \
- $TMPDIR/libspine_godot.macos.template_release.arm64 \
- -output $BINDIR/libspine_godot.macos.template_release
-
- # Cleanup intermediate files
- rm -rf $TMPDIR
-
-elif [ "$raw_platform" == "web" ]; then
+if [ "$raw_platform" == "web" ]; then
BINDIR="example-v4-extension/bin/web"
mkdir -p $BINDIR
@@ -150,10 +70,9 @@ elif [ "$raw_platform" == "web" ]; then
echo "Building web without threads..."
scons -j $cpus $options $platform target=template_debug threads=no
scons -j $cpus $options $platform target=template_release threads=no
-
else
# Normal build process for other platforms
- if [ "$raw_platform" != "android" ] && [ "$raw_platform" != "web" ]; then
+ if [ "$raw_platform" != "android" ] && [ "$raw_platform" != "ios" ] && [ "$raw_platform" != "web" ]; then
scons -j $cpus $options $platform target=editor
fi
scons -j $cpus $options $platform target=template_debug
diff --git a/spine-godot/spine_godot_extension.gdextension b/spine-godot/spine_godot_extension.gdextension
index 8b263ce23..7a986d2a8 100644
--- a/spine-godot/spine_godot_extension.gdextension
+++ b/spine-godot/spine_godot_extension.gdextension
@@ -5,36 +5,36 @@ compatibility_minimum = "4.1"
[libraries]
-macos.editor = "res://bin/macos/macos.framework/libspine_godot.macos.editor"
-macos.debug = "res://bin/macos/macos.framework/libspine_godot.macos.template_debug"
-macos.release = "res://bin/macos/macos.framework/libspine_godot.macos.template_release"
+macos.editor = "macos/libspine_godot.macos.editor.framework"
+macos.debug = "macos/libspine_godot.macos.template_debug.framework"
+macos.release = "macos/libspine_godot.macos.template_release.framework"
-ios.debug = "res://bin/ios/ios.framework/libspine_godot.ios.template_debug.xcframework"
-ios.release = "res://bin/ios/ios.framework/libspine_godot.ios.template_release.xcframework"
+ios.debug = "ios/libspine_godot.ios.template_debug.framework"
+ios.release = "ios/libspine_godot.ios.template_release.framework"
-windows.editor.x86_64 = "res://bin/windows/libspine_godot.windows.editor.x86_64.dll"
-windows.debug.x86_64 = "res://bin/windows/libspine_godot.windows.template_debug.x86_64.dll"
-windows.release.x86_64 = "res://bin/windows/libspine_godot.windows.template_release.x86_64.dll"
+windows.editor.x86_64 = "windows/libspine_godot.windows.editor.x86_64.dll"
+windows.debug.x86_64 = "windows/libspine_godot.windows.template_debug.x86_64.dll"
+windows.release.x86_64 = "windows/libspine_godot.windows.template_release.x86_64.dll"
-linux.editor.x86_64 = "res://bin/linux/libspine_godot.linux.editor.x86_64.so"
-linux.debug.x86_64 = "res://bin/linux/libspine_godot.linux.template_debug.x86_64.so"
-linux.release.x86_64 = "res://bin/linux/libspine_godot.linux.template_release.x86_64.so"
+linux.editor.x86_64 = "linux/libspine_godot.linux.editor.x86_64.so"
+linux.debug.x86_64 = "linux/libspine_godot.linux.template_debug.x86_64.so"
+linux.release.x86_64 = "linux/libspine_godot.linux.template_release.x86_64.so"
-linux.editor.arm64 = "res://bin/linux/libspine_godot.linux.editor.arm64.so"
-linux.debug.arm64 = "res://bin/linux/libspine_godot.linux.template_debug.arm64.so"
-linux.release.arm64 = "res://bin/linux/libspine_godot.linux.template_release.arm64.so"
+linux.editor.arm64 = "linux/libspine_godot.linux.editor.arm64.so"
+linux.debug.arm64 = "linux/libspine_godot.linux.template_debug.arm64.so"
+linux.release.arm64 = "linux/libspine_godot.linux.template_release.arm64.so"
-linux.editor.rv64 = "res://bin/linux/libspine_godot.linux.editor.rv64.so"
-linux.debug.rv64 = "res://bin/linux/libspine_godot.linux.template_debug.rv64.so"
-linux.release.rv64 = "res://bin/linux/libspine_godot.linux.template_release.rv64.so"
+linux.editor.rv64 = "linux/libspine_godot.linux.editor.rv64.so"
+linux.debug.rv64 = "linux/libspine_godot.linux.template_debug.rv64.so"
+linux.release.rv64 = "linux/libspine_godot.linux.template_release.rv64.so"
-android.debug.x86_64 = "res://bin/android/libspine_godot.android.template_debug.x86_64.so"
-android.release.x86_64 = "res://bin/android/libspine_godot.android.template_release.x86_64.so"
+android.debug.x86_64 = "android/libspine_godot.android.template_debug.x86_64.so"
+android.release.x86_64 = "android/libspine_godot.android.template_release.x86_64.so"
-android.debug.arm64 = "res://bin/android/libspine_godot.android.template_debug.arm64.so"
-android.release.arm64 = "res://bin/android/libspine_godot.android.template_release.arm64.so"
+android.debug.arm64 = "android/libspine_godot.android.template_debug.arm64.so"
+android.release.arm64 = "android/libspine_godot.android.template_release.arm64.so"
-web.debug.threads.wasm32 = "res://bin/web/libgdexample.web.template_debug.wasm32.wasm"
-web.release.threads.wasm32 = "res://bin/web/libgdexample.web.template_release.wasm32.wasm"
-web.debug.wasm32 = "res://bin/web/libgdexample.web.template_debug.wasm32.nothreads.wasm"
-web.release.wasm32 = "res://bin/web/libgdexample.web.template_release.wasm32.nothreads.wasm"
\ No newline at end of file
+web.debug.threads.wasm32 = "web/libgdexample.web.template_debug.wasm32.wasm"
+web.release.threads.wasm32 = "web/libgdexample.web.template_release.wasm32.wasm"
+web.debug.wasm32 = "web/libgdexample.web.template_debug.wasm32.nothreads.wasm"
+web.release.wasm32 = "web/libgdexample.web.template_release.wasm32.nothreads.wasm"
\ No newline at end of file