liblove now builds as a framework on OS X

This commit is contained in:
Alex Szpakowski
2013-02-10 02:37:54 -04:00
parent 668a1bfa6d
commit 842c01b4e5
4 changed files with 616 additions and 561 deletions
+28
View File
@@ -0,0 +1,28 @@
<?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>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>love2d.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>0.8.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>0.8.0</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
+21 -71
View File
@@ -8,46 +8,27 @@
/* Begin PBXBuildFile section */
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
A911D3C815DFF24D005B7EB8 /* Game_Music_Emu.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A911D3C715DFF24D005B7EB8 /* Game_Music_Emu.framework */; };
A911D3C915DFF25D005B7EB8 /* Game_Music_Emu.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A911D3C715DFF24D005B7EB8 /* Game_Music_Emu.framework */; };
A9255DD11043183600BA1496 /* FreeType.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E4810420B4A007D418B /* FreeType.framework */; };
A9255DD21043183600BA1496 /* SDL.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E5210420B57007D418B /* SDL.framework */; };
A9255DD31043183600BA1496 /* Lua.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E5310420B57007D418B /* Lua.framework */; };
A9255DEC1043188D00BA1496 /* SDLMain.m in Sources */ = {isa = PBXBuildFile; fileRef = A9255DEA1043188D00BA1496 /* SDLMain.m */; };
A9255E031043195A00BA1496 /* Vorbis.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255E021043195A00BA1496 /* Vorbis.framework */; };
A9255EE810431BD000BA1496 /* Vorbis.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9255E021043195A00BA1496 /* Vorbis.framework */; };
A9255F431043240F00BA1496 /* IL.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F421043240F00BA1496 /* IL.framework */; };
A9255F461043247300BA1496 /* IL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F421043240F00BA1496 /* IL.framework */; };
A9255F52104324D700BA1496 /* Ogg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F51104324D700BA1496 /* Ogg.framework */; };
A9255F58104324E100BA1496 /* Ogg.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F51104324D700BA1496 /* Ogg.framework */; };
A93E6E4910420B4A007D418B /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E4610420B4A007D418B /* OpenAL.framework */; };
A93E6E4A10420B4A007D418B /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E4710420B4A007D418B /* OpenGL.framework */; };
A93E6E4B10420B4A007D418B /* FreeType.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E4810420B4A007D418B /* FreeType.framework */; };
A93E6E5410420B57007D418B /* SDL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E5210420B57007D418B /* SDL.framework */; };
A93E6E5510420B57007D418B /* Lua.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E5310420B57007D418B /* Lua.framework */; };
A93E6EED10420BA8007D418B /* love.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A93E6A3410420AC0007D418B /* love.cpp */; };
A9D307EA106635C3004FEDF8 /* physfs.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9D307E9106635C3004FEDF8 /* physfs.framework */; };
A9D307F2106635D3004FEDF8 /* physfs.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9D307E9106635C3004FEDF8 /* physfs.framework */; };
A9DEC1C11046EFA70049C70C /* Love.icns in Resources */ = {isa = PBXBuildFile; fileRef = A9DEC1BF1046EFA60049C70C /* Love.icns */; };
A9DEC1C21046EFA70049C70C /* LoveDocument.icns in Resources */ = {isa = PBXBuildFile; fileRef = A9DEC1C01046EFA70049C70C /* LoveDocument.icns */; };
A9F16927109E7BAD00FC83D1 /* libmodplug.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9F16926109E7BAD00FC83D1 /* libmodplug.framework */; };
A9F169A7109E824900FC83D1 /* mpg123.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9F169A6109E824900FC83D1 /* mpg123.framework */; };
A9F169AC109E825000FC83D1 /* mpg123.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9F169A6109E824900FC83D1 /* mpg123.framework */; };
A9F169AD109E825000FC83D1 /* libmodplug.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9F16926109E7BAD00FC83D1 /* libmodplug.framework */; };
FA577A9A16C721D900860150 /* liblove.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = FA577A9816C7217800860150 /* liblove.dylib */; };
FA577A9C16C723A100860150 /* liblove.dylib in Copy liblove */ = {isa = PBXBuildFile; fileRef = FA577A9816C7217800860150 /* liblove.dylib */; };
FA08F69616C766E000F007B5 /* love.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA08F69116C765A200F007B5 /* love.framework */; };
FA08F69716C766E700F007B5 /* love.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FA08F69116C765A200F007B5 /* love.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
FA577A9716C7217800860150 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FA577A9316C7217800860150 /* liblove.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = 30AB36822AB41E4B0A6C6001;
remoteInfo = love;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
A9255DDE1043185300BA1496 /* Copy Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
@@ -55,6 +36,7 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
FA08F69716C766E700F007B5 /* love.framework in Copy Frameworks */,
A9F169AC109E825000FC83D1 /* mpg123.framework in Copy Frameworks */,
A9F169AD109E825000FC83D1 /* libmodplug.framework in Copy Frameworks */,
A9D307F2106635D3004FEDF8 /* physfs.framework in Copy Frameworks */,
@@ -69,17 +51,6 @@
name = "Copy Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
FA577A9B16C7238D00860150 /* Copy liblove */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = Contents/Libraries;
dstSubfolderSpec = 1;
files = (
FA577A9C16C723A100860150 /* liblove.dylib in Copy liblove */,
);
name = "Copy liblove";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
@@ -104,7 +75,8 @@
A9DEC1C01046EFA70049C70C /* LoveDocument.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = LoveDocument.icns; path = icons/LoveDocument.icns; sourceTree = "<group>"; };
A9F16926109E7BAD00FC83D1 /* libmodplug.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libmodplug.framework; path = /Library/Frameworks/libmodplug.framework; sourceTree = "<absolute>"; };
A9F169A6109E824900FC83D1 /* mpg123.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = mpg123.framework; path = /Library/Frameworks/mpg123.framework; sourceTree = "<absolute>"; };
FA577A9316C7217800860150 /* liblove.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = liblove.xcodeproj; sourceTree = "<group>"; };
FA08F69116C765A200F007B5 /* love.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = love.framework; sourceTree = BUILT_PRODUCTS_DIR; };
FA577A9316C7217800860150 /* love-framework.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = "love-framework.xcodeproj"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -112,20 +84,11 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
FA577A9A16C721D900860150 /* liblove.dylib in Frameworks */,
FA08F69616C766E000F007B5 /* love.framework in Frameworks */,
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
A93E6E4910420B4A007D418B /* OpenAL.framework in Frameworks */,
A93E6E4A10420B4A007D418B /* OpenGL.framework in Frameworks */,
A9255F461043247300BA1496 /* IL.framework in Frameworks */,
A9255EE810431BD000BA1496 /* Vorbis.framework in Frameworks */,
A93E6E4B10420B4A007D418B /* FreeType.framework in Frameworks */,
A93E6E5410420B57007D418B /* SDL.framework in Frameworks */,
A93E6E5510420B57007D418B /* Lua.framework in Frameworks */,
A9255F52104324D700BA1496 /* Ogg.framework in Frameworks */,
A9D307EA106635C3004FEDF8 /* physfs.framework in Frameworks */,
A9F16927109E7BAD00FC83D1 /* libmodplug.framework in Frameworks */,
A9F169A7109E824900FC83D1 /* mpg123.framework in Frameworks */,
A911D3C815DFF24D005B7EB8 /* Game_Music_Emu.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -135,6 +98,7 @@
1058C7A0FEA54F0111CA2CBB /* Frameworks */ = {
isa = PBXGroup;
children = (
FA08F69116C765A200F007B5 /* love.framework */,
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
A93E6E4810420B4A007D418B /* FreeType.framework */,
A911D3C715DFF24D005B7EB8 /* Game_Music_Emu.framework */,
@@ -167,7 +131,7 @@
1058C7A0FEA54F0111CA2CBB /* Frameworks */,
29B97317FDCFA39411CA2CEA /* Resources */,
19C28FACFE9D520D11CA2CBB /* Products */,
FA577A9316C7217800860150 /* liblove.xcodeproj */,
FA577A9316C7217800860150 /* love-framework.xcodeproj */,
);
name = love;
sourceTree = "<group>";
@@ -183,14 +147,6 @@
name = Resources;
sourceTree = "<group>";
};
FA577A9416C7217800860150 /* Products */ = {
isa = PBXGroup;
children = (
FA577A9816C7217800860150 /* liblove.dylib */,
);
name = Products;
sourceTree = "<group>";
};
FA577A9D16C7262E00860150 /* Source */ = {
isa = PBXGroup;
children = (
@@ -212,7 +168,6 @@
8D1107290486CEB800E47090 /* Resources */,
8D11072C0486CEB800E47090 /* Sources */,
A9255DDE1043185300BA1496 /* Copy Frameworks */,
FA577A9B16C7238D00860150 /* Copy liblove */,
8D11072E0486CEB800E47090 /* Frameworks */,
);
buildRules = (
@@ -245,12 +200,6 @@
);
mainGroup = 29B97314FDCFA39411CA2CEA /* love */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = FA577A9416C7217800860150 /* Products */;
ProjectRef = FA577A9316C7217800860150 /* liblove.xcodeproj */;
},
);
projectRoot = "";
targets = (
8D1107260486CEB800E47090 /* love */,
@@ -258,16 +207,6 @@
};
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
FA577A9816C7217800860150 /* liblove.dylib */ = {
isa = PBXReferenceProxy;
fileType = "compiled.mach-o.dylib";
path = liblove.dylib;
remoteRef = FA577A9716C7217800860150 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */
/* Begin PBXResourcesBuildPhase section */
8D1107290486CEB800E47090 /* Resources */ = {
isa = PBXResourcesBuildPhase;
@@ -298,6 +237,11 @@
buildSettings = {
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/build/Release\"",
"\"$(SRCROOT)/build/Debug\"",
);
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
@@ -309,7 +253,7 @@
/Library/Frameworks/Lua.framework/Headers,
/Library/Frameworks/SDL.framework/Headers,
);
INSTALL_PATH = "$(HOME)/Applications";
INSTALL_PATH = /Applications;
PRODUCT_NAME = love;
};
name = Debug;
@@ -319,6 +263,11 @@
buildSettings = {
COMBINE_HIDPI_IMAGES = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/build/Release\"",
"\"$(SRCROOT)/build/Debug\"",
);
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = love_Prefix.pch;
HEADER_SEARCH_PATHS = (
@@ -328,8 +277,9 @@
/Library/Frameworks/Lua.framework/Headers,
/Library/Frameworks/SDL.framework/Headers,
);
INSTALL_PATH = "$(HOME)/Applications";
INSTALL_PATH = /Applications;
PRODUCT_NAME = love;
STRIP_INSTALLED_PRODUCT = YES;
};
name = Release;
};
+43
View File
@@ -36,6 +36,49 @@
#include <fstream>
#endif // LOVE_LEGENDARY_CONSOLE_IO_HACK
#ifdef LOVE_LEGENDARY_LIBSTDCXX_HACK
#include <iostream>
// Workarounds for symbols that are missing from Leopard stdlibc++.dylib.
// http://stackoverflow.com/questions/3484043/os-x-program-runs-on-dev-machine-crashing-horribly-on-others
_GLIBCXX_BEGIN_NAMESPACE(std)
// From ostream_insert.h
template ostream& __ostream_insert(ostream&, const char*, streamsize);
#ifdef _GLIBCXX_USE_WCHAR_T
template wostream& __ostream_insert(wostream&, const wchar_t*, streamsize);
#endif
// From ostream.tcc
template ostream& ostream::_M_insert(long);
template ostream& ostream::_M_insert(unsigned long);
template ostream& ostream::_M_insert(bool);
#ifdef _GLIBCXX_USE_LONG_LONG
template ostream& ostream::_M_insert(long long);
template ostream& ostream::_M_insert(unsigned long long);
#endif
template ostream& ostream::_M_insert(double);
template ostream& ostream::_M_insert(long double);
template ostream& ostream::_M_insert(const void*);
#ifdef _GLIBCXX_USE_WCHAR_T
template wostream& wostream::_M_insert(long);
template wostream& wostream::_M_insert(unsigned long);
template wostream& wostream::_M_insert(bool);
#ifdef _GLIBCXX_USE_LONG_LONG
template wostream& wostream::_M_insert(long long);
template wostream& wostream::_M_insert(unsigned long long);
#endif
template wostream& wostream::_M_insert(double);
template wostream& wostream::_M_insert(long double);
template wostream& wostream::_M_insert(const void*);
#endif
_GLIBCXX_END_NAMESPACE
#endif // LOVE_LEGENDARY_LIBSTDCXX_HACK
// Libraries.
#include "libraries/luasocket/luasocket.h"