Initial iOS implementation.

--HG--
branch : minor
This commit is contained in:
Alex Szpakowski
2015-02-20 00:21:21 -04:00
parent 24c7539182
commit 85de3c41fb
47 changed files with 5206 additions and 2405 deletions
+3 -1
View File
@@ -19,7 +19,9 @@ glob:*.ncb
glob:*.exe
glob:*.bat
glob:platform/xcode/Build
glob:platform/xcode/DerivedData
glob:platform/xcode/DerivedData
glob:platform/xcode/ios/include
glob:platform/xcode/ios/libraries
glob:*xcuserdata*
glob:*.DS_Store
glob:*.dylib
+1 -1
View File
@@ -123,7 +123,7 @@ DEALINGS IN THE SOFTWARE.
---------
This software uses the following LGPL libraries:
This software uses the following LGPL libraries on Windows, Mac OS X, and Linux:
- libmpg123
Website: http://www.mpg123.de/
@@ -0,0 +1,128 @@
{
"images" : [
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "pig-29pt@1x.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "pig-29pt@2x.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "pig-29pt@3x.png",
"scale" : "3x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "pig-40pt@2x.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "pig-40pt@3x.png",
"scale" : "3x"
},
{
"size" : "57x57",
"idiom" : "iphone",
"filename" : "pig-57pt@1x.png",
"scale" : "1x"
},
{
"size" : "57x57",
"idiom" : "iphone",
"filename" : "pig-57pt@2x.png",
"scale" : "2x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "pig-60pt@2x.png",
"scale" : "2x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "pig-60pt@3x.png",
"scale" : "3x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "pig-29pt@1x.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "pig-29pt@2x.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "pig-40pt@1x.png",
"scale" : "1x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "pig-40pt@2x.png",
"scale" : "2x"
},
{
"size" : "50x50",
"idiom" : "ipad",
"filename" : "pig-50pt@1x.png",
"scale" : "1x"
},
{
"size" : "50x50",
"idiom" : "ipad",
"filename" : "pig-50pt@2x.png",
"scale" : "2x"
},
{
"size" : "72x72",
"idiom" : "ipad",
"filename" : "pig-72pt@1x.png",
"scale" : "1x"
},
{
"size" : "72x72",
"idiom" : "ipad",
"filename" : "pig-72pt@2x.png",
"scale" : "2x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "pig-76pt@1x.png",
"scale" : "1x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "pig-76pt@2x.png",
"scale" : "2x"
},
{
"size" : "120x120",
"idiom" : "car",
"filename" : "pig-120pt@1x.png",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

@@ -0,0 +1,142 @@
{
"images" : [
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"minimum-system-version" : "8.0",
"subtype" : "736h",
"scale" : "3x"
},
{
"orientation" : "landscape",
"idiom" : "iphone",
"extent" : "full-screen",
"minimum-system-version" : "8.0",
"subtype" : "736h",
"scale" : "3x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"minimum-system-version" : "8.0",
"subtype" : "667h",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"subtype" : "retina4",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "1x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"subtype" : "retina4",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "to-status-bar",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "full-screen",
"scale" : "1x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "to-status-bar",
"scale" : "1x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "to-status-bar",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "full-screen",
"scale" : "2x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "to-status-bar",
"scale" : "2x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
+100
View File
@@ -0,0 +1,100 @@
<?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>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFiles</key>
<array>
<string>LoveDocument.icns</string>
</array>
<key>CFBundleTypeName</key>
<string>LÖVE Project</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>org.love2d.love-game</string>
</array>
</dict>
</array>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIcons</key>
<dict/>
<key>CFBundleIcons~ipad</key>
<dict/>
<key>CFBundleIdentifier</key>
<string>love.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIFileSharingEnabled</key>
<true/>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>opengles-2</string>
</array>
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>com.pkware.zip-archive</string>
</array>
<key>UTTypeDescription</key>
<string>LÖVE Project</string>
<key>UTTypeIdentifier</key>
<string>org.love2d.love-game</string>
<key>UTTypeSize320IconFile</key>
<string>LoveDocument</string>
<key>UTTypeSize64IconFile</key>
<string>LoveDocument</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>LOVE</string>
<key>public.filename-extension</key>
<array>
<string>love</string>
</array>
<key>public.mime-type</key>
<string>application/x-love-game</string>
</dict>
</dict>
</array>
</dict>
</plist>
Binary file not shown.
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:liblove.xcodeproj">
</FileRef>
</Workspace>
@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "FA0B78DC1A958B90000E1D17"
BuildableName = "liblove.a"
BlueprintName = "liblove-ios"
ReferencedContainer = "container:liblove.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "FA0B78DC1A958B90000E1D17"
BuildableName = "liblove.a"
BlueprintName = "liblove-ios"
ReferencedContainer = "container:liblove.xcodeproj">
</BuildableReference>
</MacroExpansion>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "FA0B78DC1A958B90000E1D17"
BuildableName = "liblove.a"
BlueprintName = "liblove-ios"
ReferencedContainer = "container:liblove.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "FA0B78DC1A958B90000E1D17"
BuildableName = "liblove.a"
BlueprintName = "liblove-ios"
ReferencedContainer = "container:liblove.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "FA577AAE16C7507900860150"
BuildableName = "love.framework"
BlueprintName = "liblove-macosx"
ReferencedContainer = "container:liblove.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<Testables>
</Testables>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "FA577AAE16C7507900860150"
BuildableName = "love.framework"
BlueprintName = "liblove-macosx"
ReferencedContainer = "container:liblove.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
+356 -54
View File
@@ -21,6 +21,20 @@
FA08F69716C766E700F007B5 /* love.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FA08F69116C765A200F007B5 /* love.framework */; };
FA0B78D21A95814A000E1D17 /* love.icns in Resources */ = {isa = PBXBuildFile; fileRef = FA0B78D01A95814A000E1D17 /* love.icns */; };
FA0B78D31A95814A000E1D17 /* lovedocument.icns in Resources */ = {isa = PBXBuildFile; fileRef = FA0B78D11A95814A000E1D17 /* lovedocument.icns */; };
FA0B7F301A95AC7D000E1D17 /* love.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A93E6A3410420AC0007D418B /* love.cpp */; };
FA5D24821A96CA1800C6FC8F /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5D24811A96CA1800C6FC8F /* OpenAL.framework */; };
FA5D24841A96CA2700C6FC8F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5D24831A96CA2700C6FC8F /* OpenGLES.framework */; };
FA5D24881A96CA8A00C6FC8F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5D24871A96CA8A00C6FC8F /* UIKit.framework */; };
FA5D248A1A96CA9600C6FC8F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5D24891A96CA9600C6FC8F /* AudioToolbox.framework */; };
FA5D248C1A96CA9E00C6FC8F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5D248B1A96CA9E00C6FC8F /* QuartzCore.framework */; };
FA5D248E1A96CAA700C6FC8F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5D248D1A96CAA700C6FC8F /* CoreGraphics.framework */; };
FA5D24901A96CAAE00C6FC8F /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5D248F1A96CAAE00C6FC8F /* ImageIO.framework */; };
FA5D24921A96CAB300C6FC8F /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5D24911A96CAB300C6FC8F /* MobileCoreServices.framework */; };
FA5D24941A96CABA00C6FC8F /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5D24931A96CABA00C6FC8F /* libz.dylib */; };
FA5D24961A96CAC200C6FC8F /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5D24951A96CAC200C6FC8F /* CoreMotion.framework */; };
FA5D249C1A96CF4300C6FC8F /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FA5D249A1A96CF4300C6FC8F /* Images.xcassets */; };
FA5D24C21A96D78000C6FC8F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5D24C11A96D78000C6FC8F /* Foundation.framework */; };
FA5D24D11A96E73300C6FC8F /* liblove.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FA0B7EEF1A95924A000E1D17 /* liblove.a */; };
FA77A36518F1172600D23AE9 /* jpeg-turbo.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FA77A36418F1172600D23AE9 /* jpeg-turbo.framework */; };
FA9B4A0A16E1579F00074F42 /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA9B4A0916E1579F00074F42 /* SDL2.framework */; };
FA9B4A0B16E157B500074F42 /* SDL2.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FA9B4A0916E1579F00074F42 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
@@ -36,6 +50,20 @@
remoteGlobalIDString = FA577AAF16C7507900860150;
remoteInfo = Framework;
};
FA0B7EEE1A95924A000E1D17 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FA577A9316C7217800860150 /* liblove.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = FA0B78DD1A958B90000E1D17;
remoteInfo = "liblove-ios";
};
FA5D24BA1A96D6FC00C6FC8F /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FA577A9316C7217800860150 /* liblove.xcodeproj */;
proxyType = 1;
remoteGlobalIDString = FA0B78DC1A958B90000E1D17;
remoteInfo = "liblove-ios";
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -78,7 +106,21 @@
FA08F69116C765A200F007B5 /* love.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = love.framework; sourceTree = BUILT_PRODUCTS_DIR; };
FA0B78D01A95814A000E1D17 /* love.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = love.icns; path = macosx/love.icns; sourceTree = "<group>"; };
FA0B78D11A95814A000E1D17 /* lovedocument.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = lovedocument.icns; path = macosx/lovedocument.icns; sourceTree = "<group>"; };
FA0B7F061A95AAF3000E1D17 /* love.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = love.app; sourceTree = BUILT_PRODUCTS_DIR; };
FA577A9316C7217800860150 /* liblove.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = liblove.xcodeproj; sourceTree = "<group>"; };
FA5D24811A96CA1800C6FC8F /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/OpenAL.framework; sourceTree = DEVELOPER_DIR; };
FA5D24831A96CA2700C6FC8F /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/OpenGLES.framework; sourceTree = DEVELOPER_DIR; };
FA5D24871A96CA8A00C6FC8F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
FA5D24891A96CA9600C6FC8F /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/AudioToolbox.framework; sourceTree = DEVELOPER_DIR; };
FA5D248B1A96CA9E00C6FC8F /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; };
FA5D248D1A96CAA700C6FC8F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; };
FA5D248F1A96CAAE00C6FC8F /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/ImageIO.framework; sourceTree = DEVELOPER_DIR; };
FA5D24911A96CAB300C6FC8F /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; };
FA5D24931A96CABA00C6FC8F /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/usr/lib/libz.dylib; sourceTree = DEVELOPER_DIR; };
FA5D24951A96CAC200C6FC8F /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/CoreMotion.framework; sourceTree = DEVELOPER_DIR; };
FA5D24971A96CE1E00C6FC8F /* love-ios.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "love-ios.plist"; path = "ios/love-ios.plist"; sourceTree = "<group>"; };
FA5D249A1A96CF4300C6FC8F /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = ios/Images.xcassets; sourceTree = "<group>"; };
FA5D24C11A96D78000C6FC8F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
FA77A36418F1172600D23AE9 /* jpeg-turbo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "jpeg-turbo.framework"; path = "/Library/Frameworks/jpeg-turbo.framework"; sourceTree = "<absolute>"; };
FA9B4A0916E1579F00074F42 /* SDL2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL2.framework; path = /Library/Frameworks/SDL2.framework; sourceTree = "<absolute>"; };
FAAFF04616CB120000CCDE45 /* OpenAL-Soft.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenAL-Soft.framework"; path = "/Library/Frameworks/OpenAL-Soft.framework"; sourceTree = "<absolute>"; };
@@ -97,13 +139,83 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
FA0B7F031A95AAF3000E1D17 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
FA5D24D11A96E73300C6FC8F /* liblove.a in Frameworks */,
FA5D24C21A96D78000C6FC8F /* Foundation.framework in Frameworks */,
FA5D24961A96CAC200C6FC8F /* CoreMotion.framework in Frameworks */,
FA5D24941A96CABA00C6FC8F /* libz.dylib in Frameworks */,
FA5D24921A96CAB300C6FC8F /* MobileCoreServices.framework in Frameworks */,
FA5D24901A96CAAE00C6FC8F /* ImageIO.framework in Frameworks */,
FA5D248E1A96CAA700C6FC8F /* CoreGraphics.framework in Frameworks */,
FA5D248C1A96CA9E00C6FC8F /* QuartzCore.framework in Frameworks */,
FA5D248A1A96CA9600C6FC8F /* AudioToolbox.framework in Frameworks */,
FA5D24881A96CA8A00C6FC8F /* UIKit.framework in Frameworks */,
FA5D24841A96CA2700C6FC8F /* OpenGLES.framework in Frameworks */,
FA5D24821A96CA1800C6FC8F /* OpenAL.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
1058C7A0FEA54F0111CA2CBB /* Frameworks */ = {
isa = PBXGroup;
children = (
FA9B4A0916E1579F00074F42 /* SDL2.framework */,
FA5D24801A96C97900C6FC8F /* ios */,
FA0B7EEC1A959249000E1D17 /* macosx */,
);
name = Frameworks;
sourceTree = "<group>";
};
19C28FACFE9D520D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D1107320486CEB800E47090 /* love.app */,
FA0B7F061A95AAF3000E1D17 /* love.app */,
);
name = Products;
sourceTree = "<group>";
};
29B97314FDCFA39411CA2CEA /* love */ = {
isa = PBXGroup;
children = (
FA5D249A1A96CF4300C6FC8F /* Images.xcassets */,
FA577A9D16C7262E00860150 /* Source */,
FA5D24A01A96CF7200C6FC8F /* Supporting Files */,
1058C7A0FEA54F0111CA2CBB /* Frameworks */,
19C28FACFE9D520D11CA2CBB /* Products */,
29B97317FDCFA39411CA2CEA /* Resources */,
FA577A9316C7217800860150 /* liblove.xcodeproj */,
);
name = love;
sourceTree = "<group>";
usesTabs = 1;
};
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
FAC1A448196F5DC600125284 /* license.txt */,
FA0B78D01A95814A000E1D17 /* love.icns */,
FA0B78D11A95814A000E1D17 /* lovedocument.icns */,
);
name = Resources;
sourceTree = "<group>";
};
FA0B78D41A958301000E1D17 /* Products */ = {
isa = PBXGroup;
children = (
FA0B78D81A958301000E1D17 /* love.framework */,
FA0B7EEF1A95924A000E1D17 /* liblove.a */,
);
name = Products;
sourceTree = "<group>";
};
FA0B7EEC1A959249000E1D17 /* macosx */ = {
isa = PBXGroup;
children = (
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
A93E6E4810420B4A007D418B /* FreeType.framework */,
FA77A36418F1172600D23AE9 /* jpeg-turbo.framework */,
@@ -115,49 +227,10 @@
FAAFF04616CB120000CCDE45 /* OpenAL-Soft.framework */,
A93E6E4710420B4A007D418B /* OpenGL.framework */,
A9D307E9106635C3004FEDF8 /* physfs.framework */,
FA9B4A0916E1579F00074F42 /* SDL2.framework */,
A9255E021043195A00BA1496 /* Vorbis.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
19C28FACFE9D520D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D1107320486CEB800E47090 /* love.app */,
);
name = Products;
sourceTree = "<group>";
};
29B97314FDCFA39411CA2CEA /* love */ = {
isa = PBXGroup;
children = (
FA577A9D16C7262E00860150 /* Source */,
1058C7A0FEA54F0111CA2CBB /* Frameworks */,
29B97317FDCFA39411CA2CEA /* Resources */,
19C28FACFE9D520D11CA2CBB /* Products */,
FA577A9316C7217800860150 /* liblove.xcodeproj */,
);
name = love;
sourceTree = "<group>";
usesTabs = 1;
};
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
FAC1A448196F5DC600125284 /* license.txt */,
A97E3842132A9EDE00198A2F /* love-macosx.plist */,
FA0B78D01A95814A000E1D17 /* love.icns */,
FA0B78D11A95814A000E1D17 /* lovedocument.icns */,
);
name = Resources;
sourceTree = "<group>";
};
FA0B78D41A958301000E1D17 /* Products */ = {
isa = PBXGroup;
children = (
FA0B78D81A958301000E1D17 /* love.framework */,
);
name = Products;
name = macosx;
sourceTree = "<group>";
};
FA577A9D16C7262E00860150 /* Source */ = {
@@ -168,6 +241,33 @@
name = Source;
sourceTree = "<group>";
};
FA5D24801A96C97900C6FC8F /* ios */ = {
isa = PBXGroup;
children = (
FA5D24C11A96D78000C6FC8F /* Foundation.framework */,
FA5D24891A96CA9600C6FC8F /* AudioToolbox.framework */,
FA5D248D1A96CAA700C6FC8F /* CoreGraphics.framework */,
FA5D24951A96CAC200C6FC8F /* CoreMotion.framework */,
FA5D248F1A96CAAE00C6FC8F /* ImageIO.framework */,
FA5D24931A96CABA00C6FC8F /* libz.dylib */,
FA5D24911A96CAB300C6FC8F /* MobileCoreServices.framework */,
FA5D24811A96CA1800C6FC8F /* OpenAL.framework */,
FA5D24831A96CA2700C6FC8F /* OpenGLES.framework */,
FA5D248B1A96CA9E00C6FC8F /* QuartzCore.framework */,
FA5D24871A96CA8A00C6FC8F /* UIKit.framework */,
);
name = ios;
sourceTree = "<group>";
};
FA5D24A01A96CF7200C6FC8F /* Supporting Files */ = {
isa = PBXGroup;
children = (
A97E3842132A9EDE00198A2F /* love-macosx.plist */,
FA5D24971A96CE1E00C6FC8F /* love-ios.plist */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@@ -190,6 +290,24 @@
productReference = 8D1107320486CEB800E47090 /* love.app */;
productType = "com.apple.product-type.application";
};
FA0B7F051A95AAF3000E1D17 /* love-ios */ = {
isa = PBXNativeTarget;
buildConfigurationList = FA0B7F2E1A95AAF4000E1D17 /* Build configuration list for PBXNativeTarget "love-ios" */;
buildPhases = (
FA0B7F021A95AAF3000E1D17 /* Sources */,
FA0B7F031A95AAF3000E1D17 /* Frameworks */,
FA0B7F041A95AAF3000E1D17 /* Resources */,
);
buildRules = (
);
dependencies = (
FA5D24BB1A96D6FC00C6FC8F /* PBXTargetDependency */,
);
name = "love-ios";
productName = "love-ios";
productReference = FA0B7F061A95AAF3000E1D17 /* love.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -197,6 +315,11 @@
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0610;
TargetAttributes = {
FA0B7F051A95AAF3000E1D17 = {
CreatedOnToolsVersion = 6.1.1;
};
};
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "love" */;
compatibilityVersion = "Xcode 3.2";
@@ -207,6 +330,7 @@
Japanese,
French,
German,
Base,
);
mainGroup = 29B97314FDCFA39411CA2CEA /* love */;
projectDirPath = "";
@@ -219,6 +343,7 @@
projectRoot = "";
targets = (
8D1107260486CEB800E47090 /* love-macosx */,
FA0B7F051A95AAF3000E1D17 /* love-ios */,
);
};
/* End PBXProject section */
@@ -231,6 +356,13 @@
remoteRef = FA0B78D71A958301000E1D17 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
FA0B7EEF1A95924A000E1D17 /* liblove.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = liblove.a;
remoteRef = FA0B7EEE1A95924A000E1D17 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */
/* Begin PBXResourcesBuildPhase section */
@@ -244,6 +376,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
FA0B7F041A95AAF3000E1D17 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
FA5D249C1A96CF4300C6FC8F /* Images.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -255,20 +395,43 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
FA0B7F021A95AAF3000E1D17 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
FA0B7F301A95AC7D000E1D17 /* love.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
FA5D24BB1A96D6FC00C6FC8F /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = "liblove-ios";
targetProxy = FA5D24BA1A96D6FC00C6FC8F /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
C01FCF4B08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
/Library/Frameworks,
"\"$(SRCROOT)/build/Release\"",
"\"$(SRCROOT)/build/Debug\"",
);
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
HEADER_SEARCH_PATHS = (
"$(inherited)",
/Library/Frameworks/Lua.framework/Headers,
/Library/Frameworks/SDL2.framework/Headers,
);
INFOPLIST_FILE = "macosx/love-macosx.plist";
INSTALL_PATH = /Applications;
PRODUCT_NAME = love;
@@ -278,13 +441,20 @@
C01FCF4C08A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
COMBINE_HIDPI_IMAGES = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
/Library/Frameworks,
"\"$(SRCROOT)/build/Release\"",
"\"$(SRCROOT)/build/Debug\"",
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
/Library/Frameworks/Lua.framework/Headers,
/Library/Frameworks/SDL2.framework/Headers,
);
INFOPLIST_FILE = "macosx/love-macosx.plist";
INSTALL_PATH = /Applications;
PRODUCT_NAME = love;
@@ -295,12 +465,11 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
FRAMEWORK_SEARCH_PATHS = /Library/Frameworks;
FRAMEWORK_SEARCH_PATHS = "";
GCC_INCREASE_PRECOMPILED_HEADER_SHARING = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = LOVE_APPLE_USE_FRAMEWORKS;
@@ -324,8 +493,6 @@
"\"$(SRCROOT)/../../src\"",
"\"$(SRCROOT)/../../src/libraries\"",
"\"$(SRCROOT)/../../src/modules\"",
/Library/Frameworks/Lua.framework/Headers,
/Library/Frameworks/SDL2.framework/Headers,
);
INFOPLIST_FILE = "love-Info.plist";
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
@@ -350,13 +517,12 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
DEPLOYMENT_POSTPROCESSING = NO;
FRAMEWORK_SEARCH_PATHS = /Library/Frameworks;
FRAMEWORK_SEARCH_PATHS = "";
GCC_INPUT_FILETYPE = automatic;
GCC_OPTIMIZATION_LEVEL = 3;
GCC_PREPROCESSOR_DEFINITIONS = LOVE_APPLE_USE_FRAMEWORKS;
@@ -382,8 +548,6 @@
"\"$(SRCROOT)/../../src\"",
"\"$(SRCROOT)/../../src/libraries\"",
"\"$(SRCROOT)/../../src/modules\"",
/Library/Frameworks/Lua.framework/Headers,
/Library/Frameworks/SDL2.framework/Headers,
);
INFOPLIST_FILE = "love-Info.plist";
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
@@ -406,17 +570,140 @@
};
name = Release;
};
FA0B7F261A95AAF4000E1D17 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_DYNAMIC_NO_PIC = NO;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
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;
HEADER_SEARCH_PATHS = (
"$(inherited)",
ios/include,
ios/include/lua,
ios/include/SDL2,
);
INFOPLIST_FILE = "$(SRCROOT)/ios/love-ios.plist";
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = YES;
PRODUCT_NAME = love;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
FA0B7F271A95AAF4000E1D17 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = 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;
HEADER_SEARCH_PATHS = (
"$(inherited)",
ios/include,
ios/include/lua,
ios/include/SDL2,
);
INFOPLIST_FILE = "$(SRCROOT)/ios/love-ios.plist";
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_NAME = love;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
FA0B7F281A95AAF4000E1D17 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = 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;
HEADER_SEARCH_PATHS = (
"$(inherited)",
ios/include,
ios/include/lua,
ios/include/SDL2,
);
INFOPLIST_FILE = "$(SRCROOT)/ios/love-ios.plist";
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_NAME = love;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Distribution;
};
FA5326C618971A0900F7BBF4 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
DEPLOYMENT_POSTPROCESSING = NO;
FRAMEWORK_SEARCH_PATHS = /Library/Frameworks;
FRAMEWORK_SEARCH_PATHS = "";
GCC_INPUT_FILETYPE = automatic;
GCC_OPTIMIZATION_LEVEL = 3;
GCC_PREPROCESSOR_DEFINITIONS = LOVE_APPLE_USE_FRAMEWORKS;
@@ -442,8 +729,6 @@
"\"$(SRCROOT)/../../src\"",
"\"$(SRCROOT)/../../src/libraries\"",
"\"$(SRCROOT)/../../src/modules\"",
/Library/Frameworks/Lua.framework/Headers,
/Library/Frameworks/SDL2.framework/Headers,
);
INFOPLIST_FILE = "love-Info.plist";
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
@@ -469,13 +754,20 @@
FA5326C718971A0900F7BBF4 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
COMBINE_HIDPI_IMAGES = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
/Library/Frameworks,
"\"$(SRCROOT)/build/Release\"",
"\"$(SRCROOT)/build/Debug\"",
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
/Library/Frameworks/Lua.framework/Headers,
/Library/Frameworks/SDL2.framework/Headers,
);
INFOPLIST_FILE = "macosx/love-macosx.plist";
INSTALL_PATH = /Applications;
PRODUCT_NAME = love;
@@ -505,6 +797,16 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
FA0B7F2E1A95AAF4000E1D17 /* Build configuration list for PBXNativeTarget "love-ios" */ = {
isa = XCConfigurationList;
buildConfigurations = (
FA0B7F261A95AAF4000E1D17 /* Debug */,
FA0B7F271A95AAF4000E1D17 /* Release */,
FA0B7F281A95AAF4000E1D17 /* Distribution */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
@@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "FA0B7F051A95AAF3000E1D17"
BuildableName = "love.app"
BlueprintName = "love-ios"
ReferencedContainer = "container:love.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "NO"
buildForArchiving = "NO"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "FA0B7F1D1A95AAF4000E1D17"
BuildableName = "love-iosTests.xctest"
BlueprintName = "love-iosTests"
ReferencedContainer = "container:love.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "FA0B7F1D1A95AAF4000E1D17"
BuildableName = "love-iosTests.xctest"
BlueprintName = "love-iosTests"
ReferencedContainer = "container:love.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "FA0B7F051A95AAF3000E1D17"
BuildableName = "love.app"
BlueprintName = "love-ios"
ReferencedContainer = "container:love.xcodeproj">
</BuildableReference>
</MacroExpansion>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<BuildableProductRunnable>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "FA0B7F051A95AAF3000E1D17"
BuildableName = "love.app"
BlueprintName = "love-ios"
ReferencedContainer = "container:love.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
<BuildableProductRunnable>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "FA0B7F051A95AAF3000E1D17"
BuildableName = "love.app"
BlueprintName = "love-ios"
ReferencedContainer = "container:love.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0610"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D1107260486CEB800E47090"
BuildableName = "love.app"
BlueprintName = "love-macosx"
ReferencedContainer = "container:love.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D1107260486CEB800E47090"
BuildableName = "love.app"
BlueprintName = "love-macosx"
ReferencedContainer = "container:love.xcodeproj">
</BuildableReference>
</MacroExpansion>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "NO"
allowLocationSimulation = "YES">
<BuildableProductRunnable>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D1107260486CEB800E47090"
BuildableName = "love.app"
BlueprintName = "love-macosx"
ReferencedContainer = "container:love.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
<BuildableProductRunnable>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D1107260486CEB800E47090"
BuildableName = "love.app"
BlueprintName = "love-macosx"
ReferencedContainer = "container:love.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Distribution"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
+7 -3
View File
@@ -29,8 +29,12 @@
# define LOVE_LINUX 1
#endif
#if defined(__APPLE__)
# define LOVE_MACOSX 1
# include <AvailabilityMacros.h>
# include <TargetConditionals.h>
# if TARGET_OS_IPHONE
# define LOVE_IOS 1
# elif TARGET_OS_MAC
# define LOVE_MACOSX 1
# endif
#endif
// Endianness.
@@ -71,7 +75,7 @@
# define NOMINMAX
#endif
#if defined(LOVE_MACOSX)
#if defined(LOVE_MACOSX) || defined(LOVE_IOS)
# define LOVE_LEGENDARY_APP_ARGV_HACK
#endif
+61
View File
@@ -0,0 +1,61 @@
/**
* Copyright (c) 2006-2015 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
**/
#ifndef LOVE_IOS_H
#define LOVE_IOS_H
#include "config.h"
#ifdef LOVE_IOS
#include <string>
namespace love
{
namespace ios
{
/**
* Gets the filepath of the first detected love file. The main .app Bundle is
* searched first, and then the app's Documents folder.
**/
std::string getLoveInResources(bool &fused);
/**
* Gets the directory path where files should be stored.
**/
std::string getAppdataDirectory();
/**
* Get the home directory (on iOS, this really means the app's sandbox dir.)
**/
std::string getHomeDirectory();
/**
* Opens the specified URL with the default program associated with the URL's
* scheme.
**/
bool openURL(const std::string &url);
} // ios
} // love
#endif // LOVE_IOS
#endif // LOVE_IOS_H
+320
View File
@@ -0,0 +1,320 @@
/**
* Copyright (c) 2006-2015 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
**/
#include "iOS.h"
#ifdef LOVE_IOS
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#include <vector>
#include <SDL_events.h>
static NSArray *getLovesInDocuments();
static bool deleteFileInDocuments(NSString *filename);
@interface LOVETableViewController : UITableViewController
- (instancetype)initWithGameList:(NSArray *)list;
@property (nonatomic) NSMutableArray *gameList;
@property (nonatomic, readonly, copy) NSString *selectedGame;
@end
@implementation LOVETableViewController
- (instancetype)initWithGameList:(NSArray *)list
{
if ((self = [super init]))
{
_gameList = [[NSMutableArray alloc] initWithArray:list copyItems:YES];
self.title = @"LÖVE Games";
self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
return self;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
#pragma unused(tableView)
#pragma unused(section)
// We want to list all games plus the no-game screen.
return self.gameList.count + 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"LOVETableCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
if (indexPath.row < (NSInteger) self.gameList.count)
cell.textLabel.text = self.gameList[indexPath.row];
else
cell.textLabel.text = @"No-game screen";
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
#pragma unused(tableView)
if (indexPath.row < (NSInteger) self.gameList.count)
_selectedGame = [(NSString *)(self.gameList[indexPath.row]) copy];
else
{
// We test against nil to check if a game has been selected, so we'll
// just use an empty string instead to represent the no-game screen.
_selectedGame = @"";
}
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle != UITableViewCellEditingStyleDelete)
return;
if (indexPath.row >= (NSInteger) self.gameList.count)
return;
NSString *filename = self.gameList[indexPath.row];
// Delete the file.
if (deleteFileInDocuments(filename))
{
[self.gameList removeObjectAtIndex:indexPath.row];
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
}
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath;
{
#pragma unused(tableView)
// The no-game screen isn't removable.
return indexPath.row < (NSInteger) self.gameList.count;
}
@end
static NSString *getDocumentsDirectory()
{
NSArray *docdirs = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
return docdirs[0];
}
static NSArray *getLovesInDocuments()
{
NSString *documents = getDocumentsDirectory();
NSArray *filepaths = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documents error:nil];
return [filepaths pathsMatchingExtensions:@[@"love"]];
}
static bool deleteFileInDocuments(NSString *filename)
{
NSString *documents = getDocumentsDirectory();
NSString *file = [documents stringByAppendingPathComponent:filename];
bool success = [[NSFileManager defaultManager] removeItemAtPath:file error:nil];
if (success)
NSLog(@"Deleted file %@ in Documents folder.", filename);
return success;
}
static int dropFileEventFilter(void *userdata, SDL_Event *event)
{
if (event->type != SDL_DROPFILE)
return 1;
NSString *fname = @(event->drop.file);
NSFileManager *fmanager = [NSFileManager defaultManager];
if ([fmanager fileExistsAtPath:fname] && [fname.pathExtension isEqual:@"love"])
{
NSString *documents = getDocumentsDirectory();
documents = [[documents stringByStandardizingPath] stringByResolvingSymlinksInPath];
fname = [[fname stringByStandardizingPath] stringByResolvingSymlinksInPath];
// Is the file inside the Documents directory?
if ([fname hasPrefix:documents])
{
LOVETableViewController *vc = (__bridge LOVETableViewController *) userdata;
// Update the game list.
NSArray *games = getLovesInDocuments();
vc.gameList = [[NSMutableArray alloc] initWithArray:games copyItems:YES];
[vc.tableView reloadData];
SDL_free(event->drop.file);
return 0;
}
}
return 1;
}
namespace love
{
namespace ios
{
/**
* Displays a full-screen list of available LOVE games for the user to choose.
* Returns the index of the selected game from the list. The list of games
* includes the no-game screen, and the function will return an index outside
* of the array's range if that is selected.
**/
static NSString *showGameList(NSArray *filenames)
{
// Game list view controller.
LOVETableViewController *tablecontroller = [[LOVETableViewController alloc] initWithGameList:filenames];
// Navigation view controller (only used for the header bar right now.)
// Contains the game list view/controller.
UINavigationController *navcontroller = [[UINavigationController alloc] initWithRootViewController:tablecontroller];
UIWindow *window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
window.rootViewController = navcontroller;
SDL_EventFilter oldfilter = nullptr;
void *oldudata = nullptr;
SDL_GetEventFilter(&oldfilter, &oldudata);
// Manually retain the table VC and use it for the event filter userdata.
// We need to set a custom event filter to update the table when .love files
// are opened by the user.
void *tableudata = (void *) CFBridgingRetain(tablecontroller);
SDL_SetEventFilter(dropFileEventFilter, tableudata);
[window makeKeyAndVisible];
// Process events until a game in the list is selected.
NSRunLoop *runloop = [NSRunLoop currentRunLoop];
while (tablecontroller.selectedGame == nil)
{
[runloop runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantPast]];
[runloop runMode:UITrackingRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:1.0/60.0]];
}
// The window will get released and cleaned up once we go out of scope.
window.hidden = YES;
SDL_SetEventFilter(oldfilter, oldudata);
CFBridgingRelease(tableudata);
return tablecontroller.selectedGame;
}
std::string getLoveInResources(bool &fused)
{
fused = false;
std::string path;
@autoreleasepool
{
// Start by looking in the main bundle (.app) folder for .love files.
NSArray *bundlepaths = [[NSBundle mainBundle] pathsForResourcesOfType:@"love" inDirectory:nil];
if (bundlepaths.count > 0)
{
// The game should be fused if we have something here.
fused = true;
NSLog(@".love files in main Bundle: %@", bundlepaths);
return [bundlepaths[0] UTF8String];
}
// Otherwise look in the app's Documents directory. The game won't be
// fused.
NSArray *filepaths = getLovesInDocuments();
if (filepaths.count > 0)
NSLog(@".love files in Documents: %@", filepaths);
// Let the user select a game from the un-fused list.
NSString *selectedfile = showGameList(filepaths);
// The string length might be 0 if the no-game screen was selected.
if (selectedfile != nil && selectedfile.length > 0)
{
NSString *documents = getDocumentsDirectory();
path = [[documents stringByAppendingPathComponent:selectedfile] UTF8String];
NSLog(@"Using unfused .love file: %@", selectedfile);
}
}
return path;
}
std::string getAppdataDirectory()
{
NSSearchPathDirectory searchdir = NSApplicationSupportDirectory;
std::string path;
@autoreleasepool
{
NSArray *dirs = NSSearchPathForDirectoriesInDomains(searchdir, NSUserDomainMask, YES);
if (dirs.count > 0)
path = [dirs[0] UTF8String];
}
return path;
}
std::string getHomeDirectory()
{
std::string path;
@autoreleasepool
{
path = [NSHomeDirectory() UTF8String];
}
return path;
}
bool openURL(const std::string &url)
{
bool success = false;
@autoreleasepool
{
NSURL *nsurl = [NSURL URLWithString:@(url.c_str())];
if ([[UIApplication sharedApplication] canOpenURL:nsurl])
success = [[UIApplication sharedApplication] openURL:nsurl];
}
return success;
}
} // ios
} // love
#endif // LOVE_IOS
+6 -6
View File
@@ -26,12 +26,12 @@ namespace love
// Version stuff.
#define LOVE_VERSION_STRING "0.10.0"
const int VERSION_MAJOR = 0;
const int VERSION_MINOR = 10;
const int VERSION_REV = 0;
const char *VERSION = LOVE_VERSION_STRING;
const char *VERSION_COMPATIBILITY[] = { VERSION, 0 };
const char *VERSION_CODENAME = "";
static const int VERSION_MAJOR = 0;
static const int VERSION_MINOR = 10;
static const int VERSION_REV = 0;
static const char *VERSION = LOVE_VERSION_STRING;
static const char *VERSION_COMPATIBILITY[] = { VERSION, 0 };
static const char *VERSION_CODENAME = "";
} // love
+37 -4
View File
@@ -39,6 +39,10 @@ extern "C" {
#include "common/OSX.h"
#endif // LOVE_MACOSX
#ifdef LOVE_IOS
#include "common/iOS.h"
#endif
#ifdef LOVE_WINDOWS
extern "C"
{
@@ -101,6 +105,7 @@ static void get_app_arguments(int argc, char **argv, int &new_argc, char **&new_
temp_argv.push_back(std::string(argv[i]));
}
#ifdef LOVE_MACOSX
// Check for a drop file string.
std::string dropfilestr = love::osx::checkDropEvents();
if (!dropfilestr.empty())
@@ -108,15 +113,24 @@ static void get_app_arguments(int argc, char **argv, int &new_argc, char **&new_
temp_argv.insert(temp_argv.begin() + 1, dropfilestr);
}
else
#endif
{
// If it exists, add the love file in love.app/Contents/Resources/ to argv.
std::string loveResourcesPath = love::osx::getLoveInResources();
std::string loveResourcesPath;
bool fused = true;
#if defined(LOVE_MACOSX)
loveResourcesPath = love::osx::getLoveInResources();
#elif defined(LOVE_IOS)
loveResourcesPath = love::ios::getLoveInResources(fused);
#endif
if (!loveResourcesPath.empty())
{
// Run in pseudo-fused mode.
std::vector<std::string>::iterator it = temp_argv.begin();
it = temp_argv.insert(it + 1, loveResourcesPath);
temp_argv.insert(it + 1, std::string("--fused"));
// Run in pseudo-fused mode.
if (fused)
temp_argv.insert(it + 1, std::string("--fused"));
}
}
@@ -147,6 +161,21 @@ static int love_preload(lua_State *L, lua_CFunction f, const char *name)
int main(int argc, char **argv)
{
int retval = 0;
#ifdef LOVE_IOS
int orig_argc = argc;
char **orig_argv = argv;
// on iOS we should never programmatically exit the app, so we'll just
// "restart" when that is attempted. Games which use threads might cause
// some issues if the threads aren't cleaned up properly...
while (true)
{
argc = orig_argc;
argv = orig_argv;
#endif
#ifdef LOVE_LEGENDARY_UTF8_ARGV_HACK
int hack_argc = 0; char **hack_argv = 0;
get_utf8_arguments(hack_argc, hack_argv);
@@ -229,7 +258,6 @@ int main(int argc, char **argv)
// Call the returned boot function.
lua_call(L, 0, 1);
int retval = 0;
if (lua_isnumber(L, -1))
retval = (int) lua_tonumber(L, -1);
@@ -243,6 +271,11 @@ int main(int argc, char **argv)
delete [] hack_argv;
}
#endif // LOVE_LEGENDARY_UTF8_ARGV_HACK || LOVE_LEGENDARY_APP_ARGV_HACK
#ifdef LOVE_IOS
} // while (true)
#endif
return retval;
}
+5
View File
@@ -37,8 +37,13 @@
// OpenAL
#ifdef LOVE_APPLE_USE_FRAMEWORKS // Frameworks have different include paths.
#ifdef LOVE_IOS
#include <OpenAL/alc.h>
#include <OpenAL/al.h>
#else
#include <OpenAL-Soft/alc.h>
#include <OpenAL-Soft/al.h>
#endif
#else
#include <AL/alc.h>
#include <AL/al.h>
+2
View File
@@ -56,7 +56,9 @@ Pool::Pool()
// Create the mutex.
mutex = thread::newMutex();
#ifdef AL_SOFT_direct_channels
ALboolean hasext = alIsExtensionPresent("AL_SOFT_direct_channels");
#endif
// Make all sources available initially.
for (int i = 0; i < totalSources; i++)
+7
View File
@@ -33,9 +33,16 @@
// OpenAL
#ifdef LOVE_APPLE_USE_FRAMEWORKS
#ifdef LOVE_IOS
#include <OpenAL/alc.h>
#include <OpenAL/al.h>
#include <OpenAL/oalMacOSX_OALExtensions.h>
#include <OpenAL/oalStaticBufferExtension.h>
#else
#include <OpenAL-Soft/alc.h>
#include <OpenAL-Soft/al.h>
#include <OpenAL-Soft/alext.h>
#endif
#else
#include <AL/alc.h>
#include <AL/al.h>
+5
View File
@@ -30,8 +30,13 @@
// OpenAL
#ifdef LOVE_APPLE_USE_FRAMEWORKS
#ifdef LOVE_IOS
#include <OpenAL/alc.h>
#include <OpenAL/al.h>
#else
#include <OpenAL-Soft/alc.h>
#include <OpenAL-Soft/al.h>
#endif
#else
#include <AL/alc.h>
#include <AL/al.h>
+1 -1
View File
@@ -41,7 +41,7 @@
# define LOVE_PATH_SEPARATOR "/"
# define LOVE_MAX_PATH _MAX_PATH
#else
# ifdef LOVE_MACOSX
# if defined(LOVE_MACOSX) || defined(LOVE_IOS)
# define LOVE_APPDATA_FOLDER "LOVE"
# elif defined(LOVE_LINUX)
# define LOVE_APPDATA_FOLDER "love"
@@ -46,6 +46,10 @@
# include <unistd.h>
#endif
#ifdef LOVE_IOS
# include "common/iOS.h"
#endif
namespace
{
size_t getDriveDelim(const std::string &input)
@@ -422,6 +426,8 @@ std::string Filesystem::getAppdataDirectory()
std::string udir = getUserDirectory();
udir.append("/Library/Application Support");
appdata = normalize(udir);
#elif defined(LOVE_IOS)
appdata = normalize(love::ios::getAppdataDirectory());
#elif defined(LOVE_LINUX)
char *xdgdatahome = getenv("XDG_DATA_HOME");
if (!xdgdatahome)
+2
View File
@@ -230,6 +230,8 @@ int luaopen_love(lua_State * L)
lua_pushstring(L, "Windows");
#elif defined(LOVE_MACOSX)
lua_pushstring(L, "OS X");
#elif defined(LOVE_IOS)
lua_pushstring(L, "iOS");
#elif defined(LOVE_LINUX)
lua_pushstring(L, "Linux");
#else
+5 -1
View File
@@ -17,9 +17,11 @@
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
**/
#include "common/config.h"
#include "ModPlugDecoder.h"
#ifndef LOVE_NO_MODPLUG
#include "common/Exception.h"
namespace love
@@ -145,3 +147,5 @@ int ModPlugDecoder::getBitDepth() const
} // lullaby
} // sound
} // love
#endif // LOVE_NO_MODPLUG
@@ -21,6 +21,10 @@
#ifndef LOVE_SOUND_LULLABY_MODPLUG_DECODER_H
#define LOVE_SOUND_LULLABY_MODPLUG_DECODER_H
#include "common/config.h"
#ifndef LOVE_NO_MODPLUG
// LOVE
#include "common/Data.h"
#include "Decoder.h"
@@ -62,4 +66,6 @@ private:
} // sound
} // love
#endif // LOVE_NO_MODPLUG
#endif // LOVE_SOUND_LULLABY_MODPLUG_DECODER_H
+5 -1
View File
@@ -69,8 +69,12 @@ sound::Decoder *Sound::newDecoder(love::filesystem::FileData *data, int bufferSi
sound::Decoder *decoder = 0;
// Find a suitable decoder here, and return it.
if (ModPlugDecoder::accepts(ext))
if (false)
/* nothing */;
#ifndef LOVE_NO_MODPLUG
else if (ModPlugDecoder::accepts(ext))
decoder = new ModPlugDecoder(data, ext, bufferSize);
#endif // LOVE_NO_MODPLUG
#ifndef LOVE_NOMPG123
else if (Mpg123Decoder::accepts(ext))
decoder = new Mpg123Decoder(data, ext, bufferSize);
+8
View File
@@ -24,6 +24,8 @@
#if defined(LOVE_MACOSX)
#include <CoreServices/CoreServices.h>
#elif defined(LOVE_IOS)
#include "common/iOS.h"
#elif defined(LOVE_LINUX)
#include <spawn.h>
//#include <stdlib.h>
@@ -60,6 +62,8 @@ std::string System::getOS() const
{
#if defined(LOVE_MACOSX)
return "OS X";
#elif defined(LOVE_IOS)
return "iOS";
#elif defined(LOVE_WINDOWS)
return "Windows";
#elif defined(LOVE_LINUX)
@@ -91,6 +95,10 @@ bool System::openURL(const std::string &url) const
CFRelease(cfurl);
return success;
#elif defined(LOVE_IOS)
return love::ios::openURL(url);
#elif defined(LOVE_LINUX)
pid_t pid;
+3 -3
View File
@@ -30,7 +30,7 @@
#if defined(LOVE_WINDOWS)
#include <windows.h>
#elif defined(LOVE_MACOSX)
#elif defined(LOVE_MACOSX) || defined(LOVE_IOS)
#include <mach/mach_time.h>
#include <sys/time.h>
#elif defined(LOVE_LINUX)
@@ -134,7 +134,7 @@ double Timer::getAverageDelta() const
double Timer::getTimerPeriod()
{
#if defined(LOVE_MACOSX)
#if defined(LOVE_MACOSX) || defined(LOVE_IOS)
mach_timebase_info_data_t info;
mach_timebase_info(&info);
return (double) info.numer / (double) info.denom / 1000000000.0;
@@ -165,7 +165,7 @@ double Timer::getTime() const
#endif
mt = getTimeOfDay();
return mt;
#elif defined(LOVE_MACOSX)
#elif defined(LOVE_MACOSX) || defined(LOVE_IOS)
return (double) mach_absolute_time() * timerPeriod;
#elif defined(LOVE_WINDOWS)
LARGE_INTEGER microTime;