Эх сурвалжийг харах

feat(spine-ios): Add bindings generation script and remove CocoaPods support

- Add generate-bindings.sh script similar to spine-flutter
- Remove outdated CocoaPods example and podspecs
- Remove setup.sh (no longer needed as we use symlinks)
- CocoaPods users should use Swift Package Manager instead
Mario Zechner 2 долоо хоног өмнө
parent
commit
37fef98fd2

+ 0 - 32
Spine.podspec

@@ -1,32 +0,0 @@
-#
-# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html.
-# Run `pod lib lint spine_flutter.podspec` to validate before publishing.
-#
-Pod::Spec.new do |s|
-  s.name             = 'Spine'
-  s.version          = '4.2.0'
-  s.summary          = 'Spine runtimes for iOS.'
-  s.description      = <<-DESC
-Spine runtimes for iOS.
-                       DESC
-  s.homepage         = 'https://esotericsoftware.com'
-  s.author           = { "Esoteric Software LLC  " => "https://esotericsoftware.com" }
-  s.license          = { :file => 'LICENSE' }
-
-  s.source           = { :git => 'https://github.com/esotericsoftware/spine-runtimes.git', :branch => '4.2' }
-  s.source_files     = 'spine-ios/Sources/Spine/**/*.{swift}'
-  s.platform         = :ios, '13.0'
-
-  s.xcconfig = {
-    'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/SpineCppLite/spine-cpp/spine-cpp/include" "$(PODS_ROOT)/SpineCppLite/spine-cpp/spine-cpp-lite"',
-    'MTL_HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/SpineShadersStructs"'
-  }
-
-  s.resource_bundles = {
-    'SpineBundle' => ['spine-ios/Sources/Spine/**/*.{metal}']
-  }
-
-  s.swift_version = '5.0'
-  s.dependency 'SpineCppLite'
-  s.dependency 'SpineShadersStructs'
-end

+ 0 - 25
SpineCppLite.podspec

@@ -1,25 +0,0 @@
-#
-# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html.
-# Run `pod lib lint spine_flutter.podspec` to validate before publishing.
-#
-Pod::Spec.new do |s|
-  s.name                = 'SpineCppLite'
-  s.version             = '4.2.0'
-  s.summary             = 'Spine runtimes for iOS.'
-  s.description         = <<-DESC
-Spine runtimes for iOS.
-                       DESC
-  s.homepage            = 'https://esotericsoftware.com'
-  s.author              = { "Esoteric Software LLC  " => "https://esotericsoftware.com" }
-  s.license             = { :file => 'LICENSE' }
-  s.platform            = :ios, '13.0'
-
-  s.source              = { :git => 'https://github.com/esotericsoftware/spine-runtimes.git', :branch => '4.2' }
-  s.source_files        =  'spine-cpp/spine-cpp/**/*.{h,cpp}', 'spine-cpp/spine-cpp-lite/*.{h,cpp}'
-  s.module_map          = 'spine-cpp/spine-cpp-lite/module.modulemap'
-  s.pod_target_xcconfig = {
-    'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/SpineCppLite/spine-cpp/spine-cpp/include" "$(PODS_ROOT)/SpineCppLite/spine-cpp/spine-cpp-lite"',
-    'CLANG_CXX_LANGUAGE_STANDARD' => 'c++11',
-    'CLANG_CXX_LIBRARY' => 'libc++'
-  }
-end

+ 0 - 24
SpineShadersStructs.podspec

@@ -1,24 +0,0 @@
-#
-# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html.
-# Run `pod lib lint spine_flutter.podspec` to validate before publishing.
-#
-Pod::Spec.new do |s|
-  s.name                = 'SpineShadersStructs'
-  s.version             = '4.2.0'
-  s.summary             = 'Metal shaders structs for spine'
-  s.description         = <<-DESC
-Metal shaders structs for spine.
-                       DESC
-  s.homepage            = 'https://esotericsoftware.com'
-  s.author              = { "Esoteric Software LLC  " => "https://esotericsoftware.com" }
-  s.license             = { :file => 'LICENSE' }
-  s.platform            = :ios, '13.0'
-
-  s.source              = { :git => 'https://github.com/esotericsoftware/spine-runtimes.git', :branch => '4.2' }
-  s.source_files        = 'spine-ios/Sources/SpineShadersStructs/*.{h,cpp}'
-
-  s.pod_target_xcconfig = {
-    'CLANG_CXX_LANGUAGE_STANDARD' => 'c++11',
-    'CLANG_CXX_LIBRARY' => 'libc++'
-  }
-end

+ 0 - 92
spine-ios/Example - Cocoapods/.gitignore

@@ -1,92 +0,0 @@
-# Xcode
-#
-# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
-
-## User settings
-xcuserdata/
-
-## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
-*.xcscmblueprint
-*.xccheckout
-
-## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
-build/
-DerivedData/
-*.moved-aside
-*.pbxuser
-!default.pbxuser
-*.mode1v3
-!default.mode1v3
-*.mode2v3
-!default.mode2v3
-*.perspectivev3
-!default.perspectivev3
-
-## Obj-C/Swift specific
-*.hmap
-
-## App packaging
-*.ipa
-*.dSYM.zip
-*.dSYM
-
-## Playgrounds
-timeline.xctimeline
-playground.xcworkspace
-
-# Swift Package Manager
-#
-# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
-# Packages/
-# Package.pins
-# Package.resolved
-# *.xcodeproj
-#
-# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
-# hence it is not needed unless you have added a package configuration file to your project
-# .swiftpm
-
-.build/
-
-# CocoaPods
-#
-# We recommend against adding the Pods directory to your .gitignore. However
-# you should judge for yourself, the pros and cons are mentioned at:
-# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
-#
-Pods/
-Podfile.lock
-#
-# Add this line if you want to avoid checking in source code from the Xcode workspace
-*.xcworkspace
-
-# Carthage
-#
-# Add this line if you want to avoid checking in source code from Carthage dependencies.
-# Carthage/Checkouts
-
-Carthage/Build/
-
-# Accio dependency management
-Dependencies/
-.accio/
-
-# fastlane
-#
-# It is recommended to not store the screenshots in the git repo.
-# Instead, use fastlane to re-generate the screenshots whenever they are needed.
-# For more information about the recommended setup visit:
-# https://docs.fastlane.tools/best-practices/source-control/#source-control
-
-fastlane/report.xml
-fastlane/Preview.html
-fastlane/screenshots/**/*.png
-fastlane/test_output
-
-# Code Injection
-#
-# After new code Injection tools there's a generated folder /iOSInjectionProject
-# https://github.com/johnno1962/injectionforxcode
-
-iOSInjectionProject/
-.DS_store

+ 0 - 11
spine-ios/Example - Cocoapods/Podfile

@@ -1,11 +0,0 @@
-# Uncomment the next line to define a global platform for your project
-platform :ios, '13.0'
-
-target 'Spine iOS Example' do
-  # Comment the next line if you don't want to use dynamic frameworks
-  use_frameworks!
-
-  pod 'Spine', :podspec => 'https://raw.githubusercontent.com/EsotericSoftware/spine-runtimes/4.2/Spine.podspec'
-  pod 'SpineCppLite', :podspec => 'https://raw.githubusercontent.com/EsotericSoftware/spine-runtimes/4.2/SpineCppLite.podspec'
-  pod 'SpineShadersStructs', :podspec => 'https://raw.githubusercontent.com/EsotericSoftware/spine-runtimes/4.2/SpineShadersStructs.podspec'
-end

+ 0 - 455
spine-ios/Example - Cocoapods/Spine iOS Example.xcodeproj/project.pbxproj

@@ -1,455 +0,0 @@
-// !$*UTF8*$!
-{
-	archiveVersion = 1;
-	classes = {
-	};
-	objectVersion = 56;
-	objects = {
-
-/* Begin PBXBuildFile section */
-		029E40AACC629A2B19C75855 /* Pods_Spine_iOS_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63A23DBBF6B9A1877F1E82A7 /* Pods_Spine_iOS_Example.framework */; };
-		76381FE22C2EF6100087712B /* spineboy-pma.atlas in Resources */ = {isa = PBXBuildFile; fileRef = 76381FE02C2EF6100087712B /* spineboy-pma.atlas */; };
-		76381FE32C2EF6100087712B /* spineboy-pma.png in Resources */ = {isa = PBXBuildFile; fileRef = 76381FE12C2EF6100087712B /* spineboy-pma.png */; };
-		9281EF152C07885C00BE19F5 /* Spine_iOS_ExampleApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9281EF142C07885C00BE19F5 /* Spine_iOS_ExampleApp.swift */; };
-		9281EF192C07885D00BE19F5 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9281EF182C07885D00BE19F5 /* Assets.xcassets */; };
-		9281EF1C2C07885D00BE19F5 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9281EF1B2C07885D00BE19F5 /* Preview Assets.xcassets */; };
-		92BFC4B62C11BCA10051F2EA /* spineboy-pro.skel in Resources */ = {isa = PBXBuildFile; fileRef = 92BFC4B22C11BCA10051F2EA /* spineboy-pro.skel */; };
-		92BFC4B72C11BCA10051F2EA /* spineboy-pro.json in Resources */ = {isa = PBXBuildFile; fileRef = 92BFC4B32C11BCA10051F2EA /* spineboy-pro.json */; };
-		92BFC4BB2C11BCC50051F2EA /* SimpleAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92BFC4BA2C11BCC50051F2EA /* SimpleAnimation.swift */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXFileReference section */
-		63A23DBBF6B9A1877F1E82A7 /* Pods_Spine_iOS_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Spine_iOS_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
-		76381FE02C2EF6100087712B /* spineboy-pma.atlas */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "spineboy-pma.atlas"; sourceTree = "<group>"; };
-		76381FE12C2EF6100087712B /* spineboy-pma.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "spineboy-pma.png"; sourceTree = "<group>"; };
-		7C440864BA6BF0A3BA8297E4 /* Pods-Spine iOS Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Spine iOS Example.debug.xcconfig"; path = "Target Support Files/Pods-Spine iOS Example/Pods-Spine iOS Example.debug.xcconfig"; sourceTree = "<group>"; };
-		9206EF0B2C119BC500320243 /* SpineCppLite.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SpineCppLite.framework; sourceTree = BUILT_PRODUCTS_DIR; };
-		9281EF112C07885C00BE19F5 /* Spine iOS Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Spine iOS Example.app"; sourceTree = BUILT_PRODUCTS_DIR; };
-		9281EF142C07885C00BE19F5 /* Spine_iOS_ExampleApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Spine_iOS_ExampleApp.swift; sourceTree = "<group>"; };
-		9281EF182C07885D00BE19F5 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
-		9281EF1B2C07885D00BE19F5 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
-		92BFC4B22C11BCA10051F2EA /* spineboy-pro.skel */ = {isa = PBXFileReference; lastKnownFileType = file; path = "spineboy-pro.skel"; sourceTree = "<group>"; };
-		92BFC4B32C11BCA10051F2EA /* spineboy-pro.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "spineboy-pro.json"; sourceTree = "<group>"; };
-		92BFC4BA2C11BCC50051F2EA /* SimpleAnimation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SimpleAnimation.swift; path = "Spine iOS Example/SimpleAnimation.swift"; sourceTree = SOURCE_ROOT; };
-		F571992938153AF59959A005 /* Pods-Spine iOS Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Spine iOS Example.release.xcconfig"; path = "Target Support Files/Pods-Spine iOS Example/Pods-Spine iOS Example.release.xcconfig"; sourceTree = "<group>"; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
-		9281EF0E2C07885C00BE19F5 /* Frameworks */ = {
-			isa = PBXFrameworksBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				029E40AACC629A2B19C75855 /* Pods_Spine_iOS_Example.framework in Frameworks */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
-		646ABFDC442BA39836A04383 /* Pods */ = {
-			isa = PBXGroup;
-			children = (
-				7C440864BA6BF0A3BA8297E4 /* Pods-Spine iOS Example.debug.xcconfig */,
-				F571992938153AF59959A005 /* Pods-Spine iOS Example.release.xcconfig */,
-			);
-			path = Pods;
-			sourceTree = "<group>";
-		};
-		9281EF082C07885C00BE19F5 = {
-			isa = PBXGroup;
-			children = (
-				9281EF132C07885C00BE19F5 /* Spine iOS Example */,
-				9281EF122C07885C00BE19F5 /* Products */,
-				646ABFDC442BA39836A04383 /* Pods */,
-				F18879239F06E7487AA7C894 /* Frameworks */,
-			);
-			sourceTree = "<group>";
-		};
-		9281EF122C07885C00BE19F5 /* Products */ = {
-			isa = PBXGroup;
-			children = (
-				9281EF112C07885C00BE19F5 /* Spine iOS Example.app */,
-			);
-			name = Products;
-			sourceTree = "<group>";
-		};
-		9281EF132C07885C00BE19F5 /* Spine iOS Example */ = {
-			isa = PBXGroup;
-			children = (
-				92BFC4B12C11BC840051F2EA /* spineboy */,
-				9281EF142C07885C00BE19F5 /* Spine_iOS_ExampleApp.swift */,
-				92BFC4BA2C11BCC50051F2EA /* SimpleAnimation.swift */,
-				9281EF182C07885D00BE19F5 /* Assets.xcassets */,
-				9281EF1A2C07885D00BE19F5 /* Preview Content */,
-			);
-			path = "Spine iOS Example";
-			sourceTree = "<group>";
-		};
-		9281EF1A2C07885D00BE19F5 /* Preview Content */ = {
-			isa = PBXGroup;
-			children = (
-				9281EF1B2C07885D00BE19F5 /* Preview Assets.xcassets */,
-			);
-			path = "Preview Content";
-			sourceTree = "<group>";
-		};
-		92BFC4B12C11BC840051F2EA /* spineboy */ = {
-			isa = PBXGroup;
-			children = (
-				76381FE02C2EF6100087712B /* spineboy-pma.atlas */,
-				76381FE12C2EF6100087712B /* spineboy-pma.png */,
-				92BFC4B32C11BCA10051F2EA /* spineboy-pro.json */,
-				92BFC4B22C11BCA10051F2EA /* spineboy-pro.skel */,
-			);
-			path = spineboy;
-			sourceTree = "<group>";
-		};
-		F18879239F06E7487AA7C894 /* Frameworks */ = {
-			isa = PBXGroup;
-			children = (
-				9206EF0B2C119BC500320243 /* SpineCppLite.framework */,
-				63A23DBBF6B9A1877F1E82A7 /* Pods_Spine_iOS_Example.framework */,
-			);
-			name = Frameworks;
-			sourceTree = "<group>";
-		};
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
-		9281EF102C07885C00BE19F5 /* Spine iOS Example */ = {
-			isa = PBXNativeTarget;
-			buildConfigurationList = 9281EF1F2C07885D00BE19F5 /* Build configuration list for PBXNativeTarget "Spine iOS Example" */;
-			buildPhases = (
-				4CE732AF2F7C247F187833EC /* [CP] Check Pods Manifest.lock */,
-				9281EF0D2C07885C00BE19F5 /* Sources */,
-				9281EF0E2C07885C00BE19F5 /* Frameworks */,
-				9281EF0F2C07885C00BE19F5 /* Resources */,
-				A39FE6D793C3DED23C563AA5 /* [CP] Embed Pods Frameworks */,
-			);
-			buildRules = (
-			);
-			dependencies = (
-			);
-			name = "Spine iOS Example";
-			productName = "Spine iOS Example";
-			productReference = 9281EF112C07885C00BE19F5 /* Spine iOS Example.app */;
-			productType = "com.apple.product-type.application";
-		};
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
-		9281EF092C07885C00BE19F5 /* Project object */ = {
-			isa = PBXProject;
-			attributes = {
-				BuildIndependentTargetsInParallel = 1;
-				LastSwiftUpdateCheck = 1520;
-				LastUpgradeCheck = 1520;
-				TargetAttributes = {
-					9281EF102C07885C00BE19F5 = {
-						CreatedOnToolsVersion = 15.2;
-					};
-				};
-			};
-			buildConfigurationList = 9281EF0C2C07885C00BE19F5 /* Build configuration list for PBXProject "Spine iOS Example" */;
-			compatibilityVersion = "Xcode 14.0";
-			developmentRegion = en;
-			hasScannedForEncodings = 0;
-			knownRegions = (
-				en,
-				Base,
-			);
-			mainGroup = 9281EF082C07885C00BE19F5;
-			productRefGroup = 9281EF122C07885C00BE19F5 /* Products */;
-			projectDirPath = "";
-			projectRoot = "";
-			targets = (
-				9281EF102C07885C00BE19F5 /* Spine iOS Example */,
-			);
-		};
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
-		9281EF0F2C07885C00BE19F5 /* Resources */ = {
-			isa = PBXResourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				92BFC4B72C11BCA10051F2EA /* spineboy-pro.json in Resources */,
-				9281EF1C2C07885D00BE19F5 /* Preview Assets.xcassets in Resources */,
-				92BFC4B62C11BCA10051F2EA /* spineboy-pro.skel in Resources */,
-				76381FE22C2EF6100087712B /* spineboy-pma.atlas in Resources */,
-				9281EF192C07885D00BE19F5 /* Assets.xcassets in Resources */,
-				76381FE32C2EF6100087712B /* spineboy-pma.png in Resources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
-		4CE732AF2F7C247F187833EC /* [CP] Check Pods Manifest.lock */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputFileListPaths = (
-			);
-			inputPaths = (
-				"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
-				"${PODS_ROOT}/Manifest.lock",
-			);
-			name = "[CP] Check Pods Manifest.lock";
-			outputFileListPaths = (
-			);
-			outputPaths = (
-				"$(DERIVED_FILE_DIR)/Pods-Spine iOS Example-checkManifestLockResult.txt",
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
-			showEnvVarsInLog = 0;
-		};
-		A39FE6D793C3DED23C563AA5 /* [CP] Embed Pods Frameworks */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputFileListPaths = (
-				"${PODS_ROOT}/Target Support Files/Pods-Spine iOS Example/Pods-Spine iOS Example-frameworks-${CONFIGURATION}-input-files.xcfilelist",
-			);
-			name = "[CP] Embed Pods Frameworks";
-			outputFileListPaths = (
-				"${PODS_ROOT}/Target Support Files/Pods-Spine iOS Example/Pods-Spine iOS Example-frameworks-${CONFIGURATION}-output-files.xcfilelist",
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Spine iOS Example/Pods-Spine iOS Example-frameworks.sh\"\n";
-			showEnvVarsInLog = 0;
-		};
-/* End PBXShellScriptBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
-		9281EF0D2C07885C00BE19F5 /* Sources */ = {
-			isa = PBXSourcesBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-				92BFC4BB2C11BCC50051F2EA /* SimpleAnimation.swift in Sources */,
-				9281EF152C07885C00BE19F5 /* Spine_iOS_ExampleApp.swift in Sources */,
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-		};
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
-		9281EF1D2C07885D00BE19F5 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
-				CLANG_ANALYZER_NONNULL = YES;
-				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_ENABLE_OBJC_WEAK = YES;
-				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_COMMA = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INFINITE_RECURSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
-				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
-				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
-				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
-				CLANG_WARN_STRICT_PROTOTYPES = YES;
-				CLANG_WARN_SUSPICIOUS_MOVE = YES;
-				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				COPY_PHASE_STRIP = NO;
-				DEBUG_INFORMATION_FORMAT = dwarf;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				ENABLE_TESTABILITY = YES;
-				ENABLE_USER_SCRIPT_SANDBOXING = YES;
-				GCC_C_LANGUAGE_STANDARD = gnu17;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_NO_COMMON_BLOCKS = YES;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_PREPROCESSOR_DEFINITIONS = (
-					"DEBUG=1",
-					"$(inherited)",
-				);
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 17.2;
-				LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
-				MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
-				MTL_FAST_MATH = YES;
-				ONLY_ACTIVE_ARCH = YES;
-				SDKROOT = iphoneos;
-				SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
-				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
-			};
-			name = Debug;
-		};
-		9281EF1E2C07885D00BE19F5 /* Release */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
-				CLANG_ANALYZER_NONNULL = YES;
-				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
-				CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
-				CLANG_ENABLE_MODULES = YES;
-				CLANG_ENABLE_OBJC_ARC = YES;
-				CLANG_ENABLE_OBJC_WEAK = YES;
-				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
-				CLANG_WARN_BOOL_CONVERSION = YES;
-				CLANG_WARN_COMMA = YES;
-				CLANG_WARN_CONSTANT_CONVERSION = YES;
-				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
-				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
-				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
-				CLANG_WARN_EMPTY_BODY = YES;
-				CLANG_WARN_ENUM_CONVERSION = YES;
-				CLANG_WARN_INFINITE_RECURSION = YES;
-				CLANG_WARN_INT_CONVERSION = YES;
-				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
-				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
-				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
-				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
-				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
-				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
-				CLANG_WARN_STRICT_PROTOTYPES = YES;
-				CLANG_WARN_SUSPICIOUS_MOVE = YES;
-				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
-				CLANG_WARN_UNREACHABLE_CODE = YES;
-				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
-				COPY_PHASE_STRIP = NO;
-				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				ENABLE_NS_ASSERTIONS = NO;
-				ENABLE_STRICT_OBJC_MSGSEND = YES;
-				ENABLE_USER_SCRIPT_SANDBOXING = YES;
-				GCC_C_LANGUAGE_STANDARD = gnu17;
-				GCC_NO_COMMON_BLOCKS = YES;
-				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
-				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
-				GCC_WARN_UNDECLARED_SELECTOR = YES;
-				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
-				GCC_WARN_UNUSED_FUNCTION = YES;
-				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 17.2;
-				LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
-				MTL_ENABLE_DEBUG_INFO = NO;
-				MTL_FAST_MATH = YES;
-				SDKROOT = iphoneos;
-				SWIFT_COMPILATION_MODE = wholemodule;
-				VALIDATE_PRODUCT = YES;
-			};
-			name = Release;
-		};
-		9281EF202C07885D00BE19F5 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7C440864BA6BF0A3BA8297E4 /* Pods-Spine iOS Example.debug.xcconfig */;
-			buildSettings = {
-				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
-				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
-				CODE_SIGN_STYLE = Automatic;
-				COMPRESS_PNG_FILES = NO;
-				CURRENT_PROJECT_VERSION = 1;
-				DEVELOPMENT_ASSET_PATHS = "\"Spine iOS Example/Preview Content\"";
-				DEVELOPMENT_TEAM = 9ZFD4KCY8F;
-				ENABLE_PREVIEWS = YES;
-				ENABLE_USER_SCRIPT_SANDBOXING = NO;
-				GENERATE_INFOPLIST_FILE = YES;
-				INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
-				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
-				INFOPLIST_KEY_UILaunchScreen_Generation = YES;
-				INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
-				INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
-				IPHONEOS_DEPLOYMENT_TARGET = 14.0;
-				LD_RUNPATH_SEARCH_PATHS = (
-					"$(inherited)",
-					"@executable_path/Frameworks",
-				);
-				MARKETING_VERSION = 1.0;
-				PRODUCT_BUNDLE_IDENTIFIER = "com.esotericsoftware.spine-ios-example.Spine-iOS-Example";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				STRIP_PNG_TEXT = NO;
-				SWIFT_EMIT_LOC_STRINGS = YES;
-				SWIFT_OBJC_INTEROP_MODE = objcxx;
-				SWIFT_VERSION = 5.0;
-				TARGETED_DEVICE_FAMILY = "1,2";
-			};
-			name = Debug;
-		};
-		9281EF212C07885D00BE19F5 /* Release */ = {
-			isa = XCBuildConfiguration;
-			baseConfigurationReference = F571992938153AF59959A005 /* Pods-Spine iOS Example.release.xcconfig */;
-			buildSettings = {
-				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
-				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
-				CODE_SIGN_STYLE = Automatic;
-				COMPRESS_PNG_FILES = NO;
-				CURRENT_PROJECT_VERSION = 1;
-				DEVELOPMENT_ASSET_PATHS = "\"Spine iOS Example/Preview Content\"";
-				DEVELOPMENT_TEAM = 9ZFD4KCY8F;
-				ENABLE_PREVIEWS = YES;
-				ENABLE_USER_SCRIPT_SANDBOXING = NO;
-				GENERATE_INFOPLIST_FILE = YES;
-				INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
-				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
-				INFOPLIST_KEY_UILaunchScreen_Generation = YES;
-				INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
-				INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
-				IPHONEOS_DEPLOYMENT_TARGET = 14.0;
-				LD_RUNPATH_SEARCH_PATHS = (
-					"$(inherited)",
-					"@executable_path/Frameworks",
-				);
-				MARKETING_VERSION = 1.0;
-				PRODUCT_BUNDLE_IDENTIFIER = "com.esotericsoftware.spine-ios-example.Spine-iOS-Example";
-				PRODUCT_NAME = "$(TARGET_NAME)";
-				STRIP_PNG_TEXT = NO;
-				SWIFT_EMIT_LOC_STRINGS = YES;
-				SWIFT_OBJC_INTEROP_MODE = objcxx;
-				SWIFT_VERSION = 5.0;
-				TARGETED_DEVICE_FAMILY = "1,2";
-			};
-			name = Release;
-		};
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
-		9281EF0C2C07885C00BE19F5 /* Build configuration list for PBXProject "Spine iOS Example" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				9281EF1D2C07885D00BE19F5 /* Debug */,
-				9281EF1E2C07885D00BE19F5 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		9281EF1F2C07885D00BE19F5 /* Build configuration list for PBXNativeTarget "Spine iOS Example" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				9281EF202C07885D00BE19F5 /* Debug */,
-				9281EF212C07885D00BE19F5 /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-/* End XCConfigurationList section */
-	};
-	rootObject = 9281EF092C07885C00BE19F5 /* Project object */;
-}

+ 0 - 11
spine-ios/Example - Cocoapods/Spine iOS Example/Assets.xcassets/AccentColor.colorset/Contents.json

@@ -1,11 +0,0 @@
-{
-  "colors" : [
-    {
-      "idiom" : "universal"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}

+ 0 - 13
spine-ios/Example - Cocoapods/Spine iOS Example/Assets.xcassets/AppIcon.appiconset/Contents.json

@@ -1,13 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "platform" : "ios",
-      "size" : "1024x1024"
-    }
-  ],
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}

+ 0 - 6
spine-ios/Example - Cocoapods/Spine iOS Example/Assets.xcassets/Contents.json

@@ -1,6 +0,0 @@
-{
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}

+ 0 - 6
spine-ios/Example - Cocoapods/Spine iOS Example/Preview Content/Preview Assets.xcassets/Contents.json

@@ -1,6 +0,0 @@
-{
-  "info" : {
-    "author" : "xcode",
-    "version" : 1
-  }
-}

+ 0 - 64
spine-ios/Example - Cocoapods/Spine iOS Example/SimpleAnimation.swift

@@ -1,64 +0,0 @@
-/******************************************************************************
- * Spine Runtimes License Agreement
- * Last updated April 5, 2025. Replaces all prior versions.
- *
- * Copyright (c) 2013-2025, Esoteric Software LLC
- *
- * Integration of the Spine Runtimes into software or otherwise creating
- * derivative works of the Spine Runtimes is permitted under the terms and
- * conditions of Section 2 of the Spine Editor License Agreement:
- * http://esotericsoftware.com/spine-editor-license
- *
- * Otherwise, it is permitted to integrate the Spine Runtimes into software
- * or otherwise create derivative works of the Spine Runtimes (collectively,
- * "Products"), provided that each user of the Products must obtain their own
- * Spine Editor license and redistribution of the Products in any form must
- * include this license and copyright notice.
- *
- * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
- * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
-import Spine
-import SwiftUI
-
-struct SimpleAnimation: View {
-
-    @StateObject
-    var controller = SpineController(
-        onInitialized: { controller in
-            controller.animationState.setAnimationByName(
-                trackIndex: 0,
-                animationName: "walk",
-                loop: true
-            )
-        }
-    )
-
-    var body: some View {
-        SpineView(
-            from: .bundle(atlasFileName: "spineboy-pma.atlas", skeletonFileName: "spineboy-pro.skel"),
-            //            from: .http(
-            //                atlasURL: URL(string: "https://github.com/esotericsoftware/spine-runtimes/raw/spine-ios/spine-ios/Example/Spine%20iOS%20Example/Assets/spineboy/spineboy.atlas")!,
-            //                skeletonURL:  URL(string: "https://github.com/esotericsoftware/spine-runtimes/raw/spine-ios/spine-ios/Example/Spine%20iOS%20Example/Assets/spineboy/spineboy-pro.skel")!
-            //            ),
-            controller: controller,
-            mode: .fit,
-            alignment: .center
-        )
-        .navigationTitle("Simple Animation")
-        .navigationBarTitleDisplayMode(.inline)
-    }
-}
-
-#Preview {
-    SimpleAnimation()
-}

+ 0 - 18
spine-ios/Example - Cocoapods/Spine iOS Example/Spine_iOS_ExampleApp.swift

@@ -1,18 +0,0 @@
-//
-//  Spine_iOS_ExampleApp.swift
-//  Spine iOS Example
-//
-//  Created by Denis Andrašec on 29.05.24.
-//
-
-import SpineCppLite
-import SwiftUI
-
-@main
-struct Spine_iOS_ExampleApp: App {
-    var body: some Scene {
-        WindowGroup {
-            SimpleAnimation()
-        }
-    }
-}

+ 0 - 99
spine-ios/Example - Cocoapods/Spine iOS Example/spineboy/spineboy-pma.atlas

@@ -1,99 +0,0 @@
-spineboy-pma.png
-	size: 1024, 256
-	filter: Linear, Linear
-	pma: true
-	scale: 0.5
-crosshair
-	bounds: 263, 11, 45, 45
-eye-indifferent
-	bounds: 214, 11, 47, 45
-eye-surprised
-	bounds: 965, 33, 47, 45
-	rotate: 90
-front-bracer
-	bounds: 2, 5, 29, 40
-	rotate: 90
-front-fist-closed
-	bounds: 505, 3, 38, 41
-	rotate: 90
-front-fist-open
-	bounds: 790, 9, 43, 44
-	rotate: 90
-front-foot
-	bounds: 149, 21, 63, 35
-front-shin
-	bounds: 505, 43, 41, 92
-	rotate: 90
-front-thigh
-	bounds: 359, 14, 23, 56
-	rotate: 90
-front-upper-arm
-	bounds: 955, 8, 23, 49
-	rotate: 90
-goggles
-	bounds: 180, 58, 131, 83
-gun
-	bounds: 313, 39, 105, 102
-head
-	bounds: 29, 83, 136, 149
-	rotate: 90
-hoverboard-board
-	bounds: 180, 143, 246, 76
-hoverboard-thruster
-	bounds: 790, 57, 30, 32
-hoverglow-small
-	bounds: 826, 54, 137, 38
-mouth-grind
-	bounds: 707, 8, 47, 30
-mouth-oooo
-	bounds: 658, 8, 47, 30
-mouth-smile
-	bounds: 548, 11, 47, 30
-muzzle-glow
-	bounds: 997, 194, 25, 25
-muzzle-ring
-	bounds: 2, 114, 25, 105
-muzzle01
-	bounds: 965, 82, 67, 40
-	rotate: 90
-muzzle02
-	bounds: 953, 151, 68, 42
-	rotate: 90
-muzzle03
-	bounds: 420, 31, 83, 53
-muzzle04
-	bounds: 2, 36, 75, 45
-muzzle05
-	bounds: 79, 43, 68, 38
-neck
-	bounds: 997, 171, 18, 21
-portal-bg
-	bounds: 563, 86, 133, 133
-portal-flare1
-	bounds: 79, 11, 56, 30
-portal-flare2
-	bounds: 836, 21, 57, 31
-portal-flare3
-	bounds: 895, 22, 58, 30
-portal-shade
-	bounds: 428, 86, 133, 133
-portal-streaks1
-	bounds: 698, 91, 126, 128
-portal-streaks2
-	bounds: 826, 94, 125, 125
-rear-bracer
-	bounds: 756, 2, 28, 36
-rear-foot
-	bounds: 599, 14, 57, 30
-rear-shin
-	bounds: 599, 46, 38, 89
-	rotate: 90
-rear-thigh
-	bounds: 310, 9, 28, 47
-	rotate: 90
-rear-upper-arm
-	bounds: 417, 9, 20, 44
-	rotate: 90
-torso
-	bounds: 698, 40, 49, 90
-	rotate: 90

BIN
spine-ios/Example - Cocoapods/Spine iOS Example/spineboy/spineboy-pma.png


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 632
spine-ios/Example - Cocoapods/Spine iOS Example/spineboy/spineboy-pro.json


BIN
spine-ios/Example - Cocoapods/Spine iOS Example/spineboy/spineboy-pro.skel


+ 54 - 0
spine-ios/generate-bindings.sh

@@ -0,0 +1,54 @@
+#!/bin/bash
+
+set -e
+
+# Get to the script's directory
+cd "$(dirname "$0")"
+
+# Source logging utilities
+source ../formatters/logging/logging.sh
+
+log_title "spine-swift bindings generation"
+
+# Install dependencies if needed
+if [ ! -d "codegen/node_modules" ]; then
+    log_action "Installing codegen dependencies"
+    if (cd codegen && npm install > /dev/null 2>&1); then
+        log_ok
+    else
+        log_fail
+        exit 1
+    fi
+fi
+
+# Generating spine-c bindings
+log_action "Generating spine-c bindings"
+if LOG=$(cd ../spine-c && ./build.sh codegen 2>&1); then
+    log_ok
+else
+    log_fail
+    log_error_output "$LOG"
+    exit 1
+fi
+
+# Run the Swift codegen
+log_action "Generating Swift bindings"
+if LOG=$(cd codegen && npm run generate 2>&1); then
+    log_ok
+else
+    log_fail
+    log_error_output "$LOG"
+    exit 1
+fi
+
+# Build and run tests
+log_action "Building and running tests"
+if LOG=$(cd test && ./build.sh 2>&1); then
+    log_ok
+else
+    log_fail
+    log_error_output "$LOG"
+    exit 1
+fi
+
+log_summary "✓ Swift bindings generated successfully"

+ 0 - 24
spine-ios/setup.sh

@@ -1,24 +0,0 @@
-#!/bin/bash
-set -e
-cd "$(dirname "$0")"
-
-# Source logging utilities
-source ../formatters/logging/logging.sh
-
-log_title "Spine iOS Setup"
-
-log_action "Running spine-cpp-lite code generator"
-if PYTHON_OUTPUT=$(python3 ../spine-cpp/spine-cpp-lite/spine-cpp-lite-codegen.py 2>&1); then
-    if WRITE_OUTPUT=$(echo "$PYTHON_OUTPUT" > Sources/Spine/Spine.Generated.swift 2>&1); then
-        log_ok
-        log_summary "✓ iOS setup completed successfully"
-    else
-        log_fail
-        log_error_output "$WRITE_OUTPUT"
-        exit 1
-    fi
-else
-    log_fail
-    log_error_output "$PYTHON_OUTPUT"
-    exit 1
-fi

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно