From cf0a45f60174ca956bf2e84255fd05a0a295e4a5 Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Tue, 28 Dec 2021 15:10:09 -0400 Subject: [PATCH 1/7] Fix non-stream buffers uploading redundant data when a sub-range is modified. https://love2d.org/forums/viewtopic.php?f=4&t=92458 --- src/modules/graphics/opengl/Buffer.cpp | 38 +++++++++++++------------- src/modules/graphics/opengl/Buffer.h | 4 +-- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/modules/graphics/opengl/Buffer.cpp b/src/modules/graphics/opengl/Buffer.cpp index 6bb069c54..57bbd775e 100644 --- a/src/modules/graphics/opengl/Buffer.cpp +++ b/src/modules/graphics/opengl/Buffer.cpp @@ -39,8 +39,8 @@ Buffer::Buffer(size_t size, const void *data, BufferType type, vertex::Usage usa : love::graphics::Buffer(size, type, usage, mapflags) , vbo(0) , memory_map(nullptr) - , modified_offset(0) - , modified_size(0) + , modified_start(std::numeric_limits::max()) + , modified_end(0) { target = OpenGL::getGLBufferType(type); @@ -78,8 +78,8 @@ void *Buffer::map() is_mapped = true; - modified_offset = 0; - modified_size = 0; + modified_start = std::numeric_limits::max(); + modified_end = 0; return memory_map; } @@ -119,21 +119,25 @@ void Buffer::unmap() if ((map_flags & MAP_EXPLICIT_RANGE_MODIFY) != 0) { - modified_offset = std::min(modified_offset, getSize() - 1); - modified_size = std::min(modified_size, getSize() - modified_offset); + if (modified_end >= modified_start) + { + modified_start = std::min(modified_start, getSize() - 1); + modified_end = std::min(modified_end, getSize() - 1); + } } else { - modified_offset = 0; - modified_size = getSize(); + modified_start = 0; + modified_end = getSize() - 1; } - if (modified_size > 0) + if (modified_end >= modified_start) { + size_t modified_size = (modified_end - modified_start) + 1; switch (getUsage()) { case vertex::USAGE_STATIC: - unmapStatic(modified_offset, modified_size); + unmapStatic(modified_start, modified_size); break; case vertex::USAGE_STREAM: unmapStream(); @@ -145,13 +149,13 @@ void Buffer::unmap() if (modified_size >= getSize() / 3) unmapStream(); else - unmapStatic(modified_offset, modified_size); + unmapStatic(modified_start, modified_size); break; } } - modified_offset = 0; - modified_size = 0; + modified_start = std::numeric_limits::max(); + modified_end = 0; is_mapped = false; } @@ -164,12 +168,8 @@ void Buffer::setMappedRangeModified(size_t offset, size_t modifiedsize) // We're being conservative right now by internally marking the whole range // from the start of section a to the end of section b as modified if both // a and b are marked as modified. - - size_t old_range_end = modified_offset + modified_size; - modified_offset = std::min(modified_offset, offset); - - size_t new_range_end = std::max(offset + modifiedsize, old_range_end); - modified_size = new_range_end - modified_offset; + modified_start = std::min(modified_start, offset); + modified_end = std::max(modified_end, offset + modifiedsize - 1); } void Buffer::fill(size_t offset, size_t size, const void *data) diff --git a/src/modules/graphics/opengl/Buffer.h b/src/modules/graphics/opengl/Buffer.h index ba0a36a05..e944e0b2b 100644 --- a/src/modules/graphics/opengl/Buffer.h +++ b/src/modules/graphics/opengl/Buffer.h @@ -70,8 +70,8 @@ private: // A pointer to mapped memory. char *memory_map; - size_t modified_offset; - size_t modified_size; + size_t modified_start; + size_t modified_end; }; // Buffer From 0786eff6560d79335e3e7016d4f3ffe8dda258bf Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Tue, 28 Dec 2021 15:30:10 -0400 Subject: [PATCH 2/7] Update changelog --- changes.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/changes.txt b/changes.txt index c46ccde82..0b50efb21 100644 --- a/changes.txt +++ b/changes.txt @@ -4,6 +4,7 @@ LOVE 11.4 [Mysterious Mysteries] Released: N/A * Added native arm64 support on macOS. +* Added a variant of love.filesystem.newFileData which accepts a Data object. * Added Body:getLocalPoints. * Added Font:getKerning. * Added support for r16, rg16, and rgba16 pixel formats in Canvases. @@ -11,14 +12,17 @@ Released: N/A * Changed love.timer.getTime to start at 0 when the module is first loaded. * Changed certain out-of-Lua-memory situations to show a message box instead of instantly crashing. +* Changed the naming scheme of LOVE's embedded Lua files for improved integration with Lua chunkname APIs. * Fixed build-time compatibility with Lua 5.4. * Fixed code compatibility with math.mod and string.gfind when LuaJIT 2.1 is used. * Fixed errors on some systems related to > 53 bit pointer addresses, when recent versions of LuaJIT 2.1 are used. +* Fixed the default error handler showing a blank screen on some mobile devices. * Fixed drag-and-drop to open a love game on macOS causing love.event.quit("restart") to fail. * Fixed fused macOS apps opening other love games when drag-and-drop is used (if the fused app hasn't already removed .love files from recognized document types). * Fixed File:isEOF when called on a dropped file. * Fixed support for > 2GB dropped files on desktops. +* Fixed ByteData and DataView missing Data:clone implementations. * Fixed love.physics meter scale value persisting after love.event.quit("restart"). * Fixed audio to resume properly after interruption on iOS. * Fixed love.graphics.newVideo to error instead of crash when an invalid video file is given. @@ -41,6 +45,7 @@ Released: N/A * Fixed rare issues where textures were not sent to shaders correctly. * Fixed Shader:send(name, data, matrixlayout, ...). * Fixed quad offsets in ParticleSystems when ParticleSystem:setOffset is not used. +* Fixed a performance issue with setting a small subrange of data in non-stream Meshes and SpriteBatches. * Fixed rounded rectangles breaking if the rx or ry parameters are negative. * Fixed rounded rectangle automatic points calculation when rx or ry are more than half the rectangle's size. * Fixed source code compilation on Xcode 12+. From ebe628eb8b7267ffbbaa0488f543ca25ec41fa28 Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Tue, 28 Dec 2021 16:25:03 -0400 Subject: [PATCH 3/7] Update CI and readme for new love-apple-dependencies repo path. --- .github/workflows/main.yml | 4 ++-- readme.md | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e601f3b64..23a18de07 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -71,7 +71,7 @@ jobs: uses: actions/checkout@v2 with: path: apple-dependencies - repository: slime73/love-apple-dependencies + repository: love2d/love-apple-dependencies ref: main - name: Move Dependencies run: @@ -99,7 +99,7 @@ jobs: uses: actions/checkout@v2 with: path: apple-dependencies - repository: slime73/love-apple-dependencies + repository: love2d/love-apple-dependencies ref: main - name: Move Dependencies run: | diff --git a/readme.md b/readme.md index ceba05852..826e16058 100644 --- a/readme.md +++ b/readme.md @@ -54,15 +54,17 @@ Run `platform/unix/automagic` from the repository root, then run ./configure and When using a source release, automagic has already been run, and the first step can be skipped. ### macOS -Download or clone [this repository][dependencies-macos] and place the Frameworks subfolder in love's `platform/xcode/macosx/` folder. +Download or clone [this repository][dependencies-apple] and copy, move, or symlink the `macOS/Frameworks` subfolder into love's `platform/xcode/macosx` folder. Then use the Xcode project found at `platform/xcode/love.xcodeproj` to build the `love-macosx` target. ### iOS Building for iOS requires macOS and Xcode. -Download the `ios-libraries` zip file corresponding to the LÖVE version being used from [here][dependencies-ios], -unzip it, and place the `include` and `libraries` subfolders into LÖVE's `platform/xcode/ios` folder. +Download the `ios-libraries` zip file corresponding to the LÖVE version being used from the [Releases page][dependencies-ios], +unzip it, and place the `include` and `libraries` subfolders into love's `platform/xcode/ios` folder. + +Or, download or clone [this repository][dependencies-apple] and copy, move, or symlink the `iOS/include` and `iOS/libraries` subfolders into love's `platform/xcode/ios` folder. Then use the Xcode project found at `platform/xcode/love.xcodeproj` to build the `love-ios` target. @@ -89,7 +91,7 @@ Dependencies [forums]: https://love2d.org/forums [discord]: https://discord.gg/rhUets9 [irc]: irc://irc.oftc.net/love -[dependencies-macos]: https://github.com/slime73/love-apple-dependencies +[dependencies-apple]: https://github.com/love2d/love-apple-dependencies [dependencies-ios]: https://github.com/love2d/love/releases [megasource]: https://github.com/love2d/megasource [unstableppa]: https://launchpad.net/~bartbes/+archive/love-unstable From 165ffa7e34ce2f91ecaa57dea0b0b8c4338820c8 Mon Sep 17 00:00:00 2001 From: Miku AuahDark Date: Thu, 30 Dec 2021 20:00:04 +0800 Subject: [PATCH 4/7] Package JIT modules as artifact in Windows See #1752 --- .github/workflows/main.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 23a18de07..ca8d8fa21 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -58,10 +58,15 @@ jobs: shell: cmd run: cmake --build build --config Release --target install -j2 - name: Artifact - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v2 with: name: love-windows-${{ matrix.platform }} path: install + - name: Artifact JIT Modules + uses: actions/upload-artifact@v2 + with: + name: love-windows-jitmodules-${{ matrix.platform }} + path: build/libs/LuaJIT/src/jit/*.lua macOS: runs-on: macos-latest steps: From c0dc051bc4fe5d130380b2fb2778a2212a50ec91 Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Thu, 30 Dec 2021 12:46:37 -0400 Subject: [PATCH 5/7] iOS: use new xcframework dependency libraries. They support arm64+x64 simulators, as well as 64 bit iOS devices. --- platform/xcode/ios/luajit-iOS.sh | 43 ++-- .../xcode/liblove.xcodeproj/project.pbxproj | 194 ++++-------------- platform/xcode/love.xcodeproj/project.pbxproj | 22 +- readme.md | 13 +- 4 files changed, 88 insertions(+), 184 deletions(-) diff --git a/platform/xcode/ios/luajit-iOS.sh b/platform/xcode/ios/luajit-iOS.sh index b8b3e1720..0533b4138 100755 --- a/platform/xcode/ios/luajit-iOS.sh +++ b/platform/xcode/ios/luajit-iOS.sh @@ -1,25 +1,25 @@ mkdir -p include/luajit mkdir -p libraries/luajit -git clone https://github.com/LuaJIT/LuaJIT.git luajit-git +if [ ! -d luajit-git ]; then + git clone https://github.com/LuaJIT/LuaJIT.git luajit-git +fi cd luajit-git -git pull +git pull --no-rebase git checkout v2.1 +export MACOSX_DEPLOYMENT_TARGET=10.7 + # iOS device binaries +# LuaJIT does not support building for armv7 on modern macOS versions. ISDKP=$(xcrun --sdk iphoneos --show-sdk-path) ICC=$(xcrun --sdk iphoneos --find clang) -ISDKF="-arch armv7 -isysroot $ISDKP -mios-version-min=8.0" -make clean -make -j8 HOST_CC="clang -m32 -arch i386" CROSS="$(dirname $ICC)/" TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS -cp src/libluajit.a ../libraries/luajit/libluajit_arm7.a - ISDKF="-arch arm64 -isysroot $ISDKP -mios-version-min=8.0" -make clean -make -j8 CROSS="$(dirname $ICC)/" TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS -cp src/libluajit.a ../libraries/luajit/libluajit_arm64.a +make clean TARGET_SYS=iOS +make -j8 CC="clang" CROSS="$(dirname $ICC)/" TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS +cp src/libluajit.a ../libraries/luajit/libluajit_arm64_device.a # iOS simulator binaries @@ -27,15 +27,15 @@ cp src/libluajit.a ../libraries/luajit/libluajit_arm64.a ISDKP=$(xcrun --sdk iphonesimulator --show-sdk-path) ICC=$(xcrun --sdk iphonesimulator --find clang) -ISDKF="-arch i386 -isysroot $ISDKP -mios-simulator-version-min=8.0" -make clean -make -j8 HOST_CC="clang -m32 -arch i386" CROSS="$(dirname $ICC)/" TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS -cp src/libluajit.a ../libraries/luajit/libluajit_x86.a - ISDKF="-arch x86_64 -isysroot $ISDKP -mios-simulator-version-min=8.0" -make clean -make -j8 CROSS="$(dirname $ICC)/" TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS -cp src/libluajit.a ../libraries/luajit/libluajit_x86_64.a +make clean TARGET_SYS=iOS +make -j8 CC="clang" CROSS="$(dirname $ICC)/" TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS +cp src/libluajit.a ../libraries/luajit/libluajit_x86_64_sim.a + +ISDKF="-arch arm64 -isysroot $ISDKP -mios-simulator-version-min=8.0" +make clean TARGET_SYS=iOS +make -j8 CC="clang" CROSS="$(dirname $ICC)/" TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS +cp src/libluajit.a ../libraries/luajit/libluajit_arm64_sim.a # copy includes @@ -49,4 +49,9 @@ cp src/luajit.h ../include/luajit # combine lib cd ../libraries/luajit -lipo -create -output libluajit.a libluajit_arm7.a libluajit_arm64.a libluajit_x86.a libluajit_x86_64.a +lipo -create -output libluajit_device.a libluajit_arm64_device.a +lipo -create -output libluajit_sim.a libluajit_x86_64_sim.a libluajit_arm64_sim.a + +# create xcframework with all platforms +rm -rf Lua.xcframework +xcodebuild -create-xcframework -library libluajit_device.a -headers ../../include/luajit -library libluajit_sim.a -headers ../../include/luajit -output Lua.xcframework diff --git a/platform/xcode/liblove.xcodeproj/project.pbxproj b/platform/xcode/liblove.xcodeproj/project.pbxproj index 9a405300a..ac729053a 100644 --- a/platform/xcode/liblove.xcodeproj/project.pbxproj +++ b/platform/xcode/liblove.xcodeproj/project.pbxproj @@ -884,7 +884,6 @@ FA56AA381FAFF02000A43D5F /* memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA56AA361FAFF02000A43D5F /* memory.cpp */; }; FA56AA391FAFF02000A43D5F /* memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA56AA361FAFF02000A43D5F /* memory.cpp */; }; FA56AA3A1FAFF02000A43D5F /* memory.h in Headers */ = {isa = PBXBuildFile; fileRef = FA56AA371FAFF02000A43D5F /* memory.h */; }; - FA56D9BC1C208A0200D8D3C7 /* libmodplug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FA56D9BA1C2089EE00D8D3C7 /* libmodplug.a */; }; FA577AB016C7507900860150 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA577A7916C71A1700860150 /* Cocoa.framework */; }; FA577AC516C7513400860150 /* libmodplug.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA577A8216C71A5300860150 /* libmodplug.framework */; }; FA577AC716C7513A00860150 /* mpg123.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA577A6F16C719F000860150 /* mpg123.framework */; }; @@ -895,10 +894,6 @@ FA57FB991AE1993600F2AD6D /* noise1234.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA57FB961AE1993600F2AD6D /* noise1234.cpp */; }; FA57FB9A1AE1993600F2AD6D /* noise1234.h in Headers */ = {isa = PBXBuildFile; fileRef = FA57FB971AE1993600F2AD6D /* noise1234.h */; }; FA59A2D31C06481400328DBA /* ParticleSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAE272501C05A15B00A67640 /* ParticleSystem.cpp */; }; - FA59A2D81C0649C200328DBA /* libtheora.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FA59A2D61C0649BB00328DBA /* libtheora.a */; }; - FA5D24B31A96D2EC00C6FC8F /* libogg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5D24AB1A96D2EC00C6FC8F /* libogg.a */; }; - FA5D24B51A96D2EC00C6FC8F /* libvorbis.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5D24AF1A96D2EC00C6FC8F /* libvorbis.a */; }; - FA5D24CF1A96E68300C6FC8F /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5D24CD1A96E63D00C6FC8F /* libSDL2.a */; }; FA620A321AA2F8DB005DB4C2 /* wrap_Quad.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA620A2E1AA2F8DB005DB4C2 /* wrap_Quad.cpp */; }; FA620A331AA2F8DB005DB4C2 /* wrap_Quad.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA620A2E1AA2F8DB005DB4C2 /* wrap_Quad.cpp */; }; FA620A341AA2F8DB005DB4C2 /* wrap_Quad.h in Headers */ = {isa = PBXBuildFile; fileRef = FA620A2F1AA2F8DB005DB4C2 /* wrap_Quad.h */; }; @@ -922,10 +917,14 @@ FA6A2B7A1F60B8250074C308 /* wrap_ByteData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA6A2B781F60B8250074C308 /* wrap_ByteData.cpp */; }; FA6A2B7B1F60B8250074C308 /* wrap_ByteData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA6A2B781F60B8250074C308 /* wrap_ByteData.cpp */; }; FA6BDE5C1F31725300786805 /* Color.h in Headers */ = {isa = PBXBuildFile; fileRef = FA6BDE5B1F31725300786805 /* Color.h */; }; - FA7550A81AEBE276003E311E /* libluajit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FA7550A71AEBE276003E311E /* libluajit.a */; }; FA76344A1E28722A0066EF9E /* StreamBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA7634481E28722A0066EF9E /* StreamBuffer.cpp */; }; FA76344B1E28722A0066EF9E /* StreamBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA7634481E28722A0066EF9E /* StreamBuffer.cpp */; }; FA76344C1E28722A0066EF9E /* StreamBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = FA7634491E28722A0066EF9E /* StreamBuffer.h */; }; + FA7E9207277E120900C24CB2 /* theora.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA7E9206277E120900C24CB2 /* theora.xcframework */; }; + FA84DE76277CB3D5002674C6 /* SDL2.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA84DE75277CB3D4002674C6 /* SDL2.xcframework */; }; + FA84DE7A277D4C88002674C6 /* modplug.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA84DE79277D4C88002674C6 /* modplug.xcframework */; }; + FA84DE7C277E045E002674C6 /* ogg.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA84DE7B277E045E002674C6 /* ogg.xcframework */; }; + FA84DE7E277E0A43002674C6 /* vorbis.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA84DE7D277E0A43002674C6 /* vorbis.xcframework */; }; FA8951A21AA2EDF300EC385A /* wrap_Event.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA8951A01AA2EDF300EC385A /* wrap_Event.cpp */; }; FA8951A31AA2EDF300EC385A /* wrap_Event.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FA8951A01AA2EDF300EC385A /* wrap_Event.cpp */; }; FA8951A41AA2EDF300EC385A /* wrap_Event.h in Headers */ = {isa = PBXBuildFile; fileRef = FA8951A11AA2EDF300EC385A /* wrap_Event.h */; }; @@ -1027,6 +1026,8 @@ FACA02FB1F5E397E0084B28F /* HashFunction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FACA02E61F5E396B0084B28F /* HashFunction.cpp */; }; FACA02FC1F5E39810084B28F /* wrap_CompressedData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FACA02E81F5E396B0084B28F /* wrap_CompressedData.cpp */; }; FACA02FD1F5E39840084B28F /* wrap_DataModule.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FACA02EA1F5E396B0084B28F /* wrap_DataModule.cpp */; }; + FACFB751276D7E3B0089F78D /* freetype.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = FACFB750276D7E2B0089F78D /* freetype.xcframework */; }; + FACFB753276D7F860089F78D /* Lua.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = FACFB752276D7F6F0089F78D /* Lua.xcframework */; }; FAD19A171DFF8CA200D5398A /* ImageDataBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAD19A151DFF8CA200D5398A /* ImageDataBase.cpp */; }; FAD19A181DFF8CA200D5398A /* ImageDataBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAD19A151DFF8CA200D5398A /* ImageDataBase.cpp */; }; FAD19A191DFF8CA200D5398A /* ImageDataBase.h in Headers */ = {isa = PBXBuildFile; fileRef = FAD19A161DFF8CA200D5398A /* ImageDataBase.h */; }; @@ -1073,7 +1074,6 @@ FADF543D1E3DAFF700012CC0 /* wrap_Graphics.h in Headers */ = {isa = PBXBuildFile; fileRef = FADF543A1E3DAFF700012CC0 /* wrap_Graphics.h */; }; FAE272521C05A15B00A67640 /* ParticleSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAE272501C05A15B00A67640 /* ParticleSystem.cpp */; }; FAE272531C05A15B00A67640 /* ParticleSystem.h in Headers */ = {isa = PBXBuildFile; fileRef = FAE272511C05A15B00A67640 /* ParticleSystem.h */; }; - FAE64A7F207135AD00BC7981 /* libfreetype.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FAE64A7D2071359C00BC7981 /* libfreetype.a */; }; FAE64A802071362A00BC7981 /* physfs_archiver_7z.c in Sources */ = {isa = PBXBuildFile; fileRef = FAC7CD5D1FE35E95006A60C7 /* physfs_archiver_7z.c */; }; FAE64A812071363100BC7981 /* physfs_archiver_dir.c in Sources */ = {isa = PBXBuildFile; fileRef = FAC7CD6C1FE35E95006A60C7 /* physfs_archiver_dir.c */; }; FAE64A822071363100BC7981 /* physfs_archiver_grp.c in Sources */ = {isa = PBXBuildFile; fileRef = FAC7CD741FE35E95006A60C7 /* physfs_archiver_grp.c */; }; @@ -1826,7 +1826,6 @@ FA4F2BE21DE6650600CA37D7 /* wrap_Transform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wrap_Transform.h; sourceTree = ""; }; FA56AA361FAFF02000A43D5F /* memory.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = memory.cpp; sourceTree = ""; }; FA56AA371FAFF02000A43D5F /* memory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = memory.h; sourceTree = ""; }; - FA56D9BA1C2089EE00D8D3C7 /* libmodplug.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libmodplug.a; sourceTree = ""; }; FA577A6D16C719EA00860150 /* Lua.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Lua.framework; path = macosx/Frameworks/Lua.framework; sourceTree = ""; }; FA577A6F16C719F000860150 /* mpg123.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = mpg123.framework; path = macosx/Frameworks/mpg123.framework; sourceTree = ""; }; FA577A7116C719F400860150 /* ogg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ogg.framework; path = macosx/Frameworks/ogg.framework; sourceTree = ""; }; @@ -1839,10 +1838,6 @@ FA577AAF16C7507900860150 /* love.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = love.framework; sourceTree = BUILT_PRODUCTS_DIR; }; FA57FB961AE1993600F2AD6D /* noise1234.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = noise1234.cpp; sourceTree = ""; }; FA57FB971AE1993600F2AD6D /* noise1234.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = noise1234.h; sourceTree = ""; }; - FA59A2D61C0649BB00328DBA /* libtheora.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libtheora.a; sourceTree = ""; }; - FA5D24AB1A96D2EC00C6FC8F /* libogg.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libogg.a; sourceTree = ""; }; - FA5D24AF1A96D2EC00C6FC8F /* libvorbis.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libvorbis.a; sourceTree = ""; }; - FA5D24CD1A96E63D00C6FC8F /* libSDL2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libSDL2.a; sourceTree = ""; }; FA620A2E1AA2F8DB005DB4C2 /* wrap_Quad.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wrap_Quad.cpp; sourceTree = ""; }; FA620A2F1AA2F8DB005DB4C2 /* wrap_Quad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wrap_Quad.h; sourceTree = ""; }; FA620A301AA2F8DB005DB4C2 /* wrap_Texture.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wrap_Texture.cpp; sourceTree = ""; }; @@ -1861,10 +1856,14 @@ FA6A2B771F60B8250074C308 /* wrap_ByteData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wrap_ByteData.h; sourceTree = ""; }; FA6A2B781F60B8250074C308 /* wrap_ByteData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wrap_ByteData.cpp; sourceTree = ""; }; FA6BDE5B1F31725300786805 /* Color.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Color.h; sourceTree = ""; }; - FA7550A71AEBE276003E311E /* libluajit.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libluajit.a; sourceTree = ""; }; FA7634481E28722A0066EF9E /* StreamBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StreamBuffer.cpp; sourceTree = ""; }; FA7634491E28722A0066EF9E /* StreamBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StreamBuffer.h; sourceTree = ""; }; FA7DA04C1C16874A0056B200 /* wrap_Math.lua */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = wrap_Math.lua; sourceTree = ""; }; + FA7E9206277E120900C24CB2 /* theora.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = theora.xcframework; path = ios/libraries/theora.xcframework; sourceTree = ""; }; + FA84DE75277CB3D4002674C6 /* SDL2.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = SDL2.xcframework; path = ios/libraries/SDL2.xcframework; sourceTree = ""; }; + FA84DE79277D4C88002674C6 /* modplug.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = modplug.xcframework; path = ios/libraries/modplug.xcframework; sourceTree = ""; }; + FA84DE7B277E045E002674C6 /* ogg.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = ogg.xcframework; path = ios/libraries/ogg.xcframework; sourceTree = ""; }; + FA84DE7D277E0A43002674C6 /* vorbis.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = vorbis.xcframework; path = ios/libraries/vorbis.xcframework; sourceTree = ""; }; FA8951A01AA2EDF300EC385A /* wrap_Event.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wrap_Event.cpp; sourceTree = ""; }; FA8951A11AA2EDF300EC385A /* wrap_Event.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wrap_Event.h; sourceTree = ""; }; FA91DA891F377C3900C80E33 /* deprecation.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = deprecation.cpp; sourceTree = ""; }; @@ -1948,6 +1947,8 @@ FACA02E91F5E396B0084B28F /* wrap_CompressedData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wrap_CompressedData.h; sourceTree = ""; }; FACA02EA1F5E396B0084B28F /* wrap_DataModule.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wrap_DataModule.cpp; sourceTree = ""; }; FACA02EB1F5E396B0084B28F /* wrap_DataModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wrap_DataModule.h; sourceTree = ""; }; + FACFB750276D7E2B0089F78D /* freetype.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = freetype.xcframework; path = ios/libraries/freetype.xcframework; sourceTree = ""; }; + FACFB752276D7F6F0089F78D /* Lua.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Lua.xcframework; path = ios/libraries/Lua.xcframework; sourceTree = ""; }; FAD19A151DFF8CA200D5398A /* ImageDataBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImageDataBase.cpp; sourceTree = ""; }; FAD19A161DFF8CA200D5398A /* ImageDataBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageDataBase.h; sourceTree = ""; }; FAD43ECB1FF312D800831BB8 /* freetype.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = freetype.framework; path = macosx/Frameworks/freetype.framework; sourceTree = ""; }; @@ -1982,7 +1983,6 @@ FADF543A1E3DAFF700012CC0 /* wrap_Graphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wrap_Graphics.h; sourceTree = ""; }; FAE272501C05A15B00A67640 /* ParticleSystem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ParticleSystem.cpp; sourceTree = ""; }; FAE272511C05A15B00A67640 /* ParticleSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParticleSystem.h; sourceTree = ""; }; - FAE64A7D2071359C00BC7981 /* libfreetype.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libfreetype.a; sourceTree = ""; }; FAECA1B01F3164700095D008 /* CompressedSlice.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CompressedSlice.cpp; sourceTree = ""; }; FAECA1B11F3164700095D008 /* CompressedSlice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CompressedSlice.h; sourceTree = ""; }; FAF13FC21E20934C00F898D2 /* CodeGen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CodeGen.cpp; sourceTree = ""; }; @@ -2058,13 +2058,13 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - FA5D24B51A96D2EC00C6FC8F /* libvorbis.a in Frameworks */, - FAE64A7F207135AD00BC7981 /* libfreetype.a in Frameworks */, - FA5D24B31A96D2EC00C6FC8F /* libogg.a in Frameworks */, - FA59A2D81C0649C200328DBA /* libtheora.a in Frameworks */, - FA56D9BC1C208A0200D8D3C7 /* libmodplug.a in Frameworks */, - FA7550A81AEBE276003E311E /* libluajit.a in Frameworks */, - FA5D24CF1A96E68300C6FC8F /* libSDL2.a in Frameworks */, + FACFB751276D7E3B0089F78D /* freetype.xcframework in Frameworks */, + FA84DE7A277D4C88002674C6 /* modplug.xcframework in Frameworks */, + FA84DE7C277E045E002674C6 /* ogg.xcframework in Frameworks */, + FACFB753276D7F860089F78D /* Lua.xcframework in Frameworks */, + FA7E9207277E120900C24CB2 /* theora.xcframework in Frameworks */, + FA84DE76277CB3D5002674C6 /* SDL2.xcframework in Frameworks */, + FA84DE7E277E0A43002674C6 /* vorbis.xcframework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3358,15 +3358,6 @@ path = xxHash; sourceTree = ""; }; - FA56D9B91C2089CE00D8D3C7 /* modplug */ = { - isa = PBXGroup; - children = ( - FA56D9BA1C2089EE00D8D3C7 /* libmodplug.a */, - ); - name = modplug; - path = ios/libraries/modplug; - sourceTree = ""; - }; FA577A6616C7199700860150 /* Frameworks */ = { isa = PBXGroup; children = ( @@ -3375,15 +3366,6 @@ name = Frameworks; sourceTree = ""; }; - FA59A2D51C0649BB00328DBA /* theora */ = { - isa = PBXGroup; - children = ( - FA59A2D61C0649BB00328DBA /* libtheora.a */, - ); - name = theora; - path = ios/libraries/theora; - sourceTree = ""; - }; FA5D24A11A96D24500C6FC8F /* Libraries */ = { isa = PBXGroup; children = ( @@ -3395,62 +3377,17 @@ FA5D24A31A96D2C300C6FC8F /* ios */ = { isa = PBXGroup; children = ( - FA5D24A41A96D2EC00C6FC8F /* freetype */, - FA7550A61AEBE250003E311E /* luajit */, - FA56D9B91C2089CE00D8D3C7 /* modplug */, - FA5D24AA1A96D2EC00C6FC8F /* ogg */, - FA5D24CC1A96E63D00C6FC8F /* SDL2 */, - FA59A2D51C0649BB00328DBA /* theora */, - FA5D24AE1A96D2EC00C6FC8F /* vorbis */, + FACFB750276D7E2B0089F78D /* freetype.xcframework */, + FACFB752276D7F6F0089F78D /* Lua.xcframework */, + FA84DE79277D4C88002674C6 /* modplug.xcframework */, + FA84DE7B277E045E002674C6 /* ogg.xcframework */, + FA84DE75277CB3D4002674C6 /* SDL2.xcframework */, + FA7E9206277E120900C24CB2 /* theora.xcframework */, + FA84DE7D277E0A43002674C6 /* vorbis.xcframework */, ); name = ios; sourceTree = ""; }; - FA5D24A41A96D2EC00C6FC8F /* freetype */ = { - isa = PBXGroup; - children = ( - FAE64A7D2071359C00BC7981 /* libfreetype.a */, - ); - name = freetype; - path = ios/libraries/freetype; - sourceTree = ""; - }; - FA5D24AA1A96D2EC00C6FC8F /* ogg */ = { - isa = PBXGroup; - children = ( - FA5D24AB1A96D2EC00C6FC8F /* libogg.a */, - ); - name = ogg; - path = ios/libraries/ogg; - sourceTree = ""; - }; - FA5D24AE1A96D2EC00C6FC8F /* vorbis */ = { - isa = PBXGroup; - children = ( - FA5D24AF1A96D2EC00C6FC8F /* libvorbis.a */, - ); - name = vorbis; - path = ios/libraries/vorbis; - sourceTree = ""; - }; - FA5D24CC1A96E63D00C6FC8F /* SDL2 */ = { - isa = PBXGroup; - children = ( - FA5D24CD1A96E63D00C6FC8F /* libSDL2.a */, - ); - name = SDL2; - path = ios/libraries/SDL2; - sourceTree = ""; - }; - FA7550A61AEBE250003E311E /* luajit */ = { - isa = PBXGroup; - children = ( - FA7550A71AEBE276003E311E /* libluajit.a */, - ); - name = luajit; - path = ios/libraries/luajit; - sourceTree = ""; - }; FAAA3FD21F64B3AD00F89E99 /* lua53 */ = { isa = PBXGroup; children = ( @@ -5094,6 +5031,9 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + "ARCHS[sdk=iphonesimulator*]" = "$(ARCHS_STANDARD_64_BIT)"; + FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/ios/libraries"; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", LOVE_SUPPORT_COREAUDIO, @@ -5101,26 +5041,8 @@ ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_WARN_64_TO_32_BIT_CONVERSION = NO; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - ios/include, - ios/include/luajit, - ios/include/freetype, - ios/include/SDL2, - ios/include/modplug, - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/ios/libraries/freetype", - "$(PROJECT_DIR)/ios/libraries/lua", - "$(PROJECT_DIR)/ios/libraries/ogg", - "$(PROJECT_DIR)/ios/libraries/physfs", - "$(PROJECT_DIR)/ios/libraries/vorbis", - "$(PROJECT_DIR)/ios/libraries/SDL2", - "$(PROJECT_DIR)/ios/libraries/luajit", - "$(PROJECT_DIR)/ios/libraries/theora", - "$(PROJECT_DIR)/ios/libraries/modplug", - ); + HEADER_SEARCH_PATHS = "$(inherited)"; + LIBRARY_SEARCH_PATHS = "$(inherited)"; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = "-ObjC"; PRODUCT_NAME = love; @@ -5134,34 +5056,19 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + "ARCHS[sdk=iphonesimulator*]" = "$(ARCHS_STANDARD_64_BIT)"; COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; + FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/ios/libraries"; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", LOVE_SUPPORT_COREAUDIO, LOVE_NOMPG123, ); GCC_WARN_64_TO_32_BIT_CONVERSION = NO; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - ios/include, - ios/include/luajit, - ios/include/freetype, - ios/include/SDL2, - ios/include/modplug, - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/ios/libraries/freetype", - "$(PROJECT_DIR)/ios/libraries/lua", - "$(PROJECT_DIR)/ios/libraries/ogg", - "$(PROJECT_DIR)/ios/libraries/physfs", - "$(PROJECT_DIR)/ios/libraries/vorbis", - "$(PROJECT_DIR)/ios/libraries/SDL2", - "$(PROJECT_DIR)/ios/libraries/luajit", - "$(PROJECT_DIR)/ios/libraries/theora", - "$(PROJECT_DIR)/ios/libraries/modplug", - ); + HEADER_SEARCH_PATHS = "$(inherited)"; + LIBRARY_SEARCH_PATHS = "$(inherited)"; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = "-ObjC"; PRODUCT_NAME = love; @@ -5176,34 +5083,19 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + "ARCHS[sdk=iphonesimulator*]" = "$(ARCHS_STANDARD_64_BIT)"; COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; + FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/ios/libraries"; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", LOVE_SUPPORT_COREAUDIO, LOVE_NOMPG123, ); GCC_WARN_64_TO_32_BIT_CONVERSION = NO; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - ios/include, - ios/include/luajit, - ios/include/freetype, - ios/include/SDL2, - ios/include/modplug, - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/ios/libraries/freetype", - "$(PROJECT_DIR)/ios/libraries/lua", - "$(PROJECT_DIR)/ios/libraries/ogg", - "$(PROJECT_DIR)/ios/libraries/physfs", - "$(PROJECT_DIR)/ios/libraries/vorbis", - "$(PROJECT_DIR)/ios/libraries/SDL2", - "$(PROJECT_DIR)/ios/libraries/luajit", - "$(PROJECT_DIR)/ios/libraries/theora", - "$(PROJECT_DIR)/ios/libraries/modplug", - ); + HEADER_SEARCH_PATHS = "$(inherited)"; + LIBRARY_SEARCH_PATHS = "$(inherited)"; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = "-ObjC"; PRODUCT_NAME = love; diff --git a/platform/xcode/love.xcodeproj/project.pbxproj b/platform/xcode/love.xcodeproj/project.pbxproj index d03d1b52e..4eeb2fb5b 100644 --- a/platform/xcode/love.xcodeproj/project.pbxproj +++ b/platform/xcode/love.xcodeproj/project.pbxproj @@ -35,6 +35,7 @@ FA5D24C21A96D78000C6FC8F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5D24C11A96D78000C6FC8F /* Foundation.framework */; }; FA5D24D11A96E73300C6FC8F /* liblove.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FA0B7EEF1A95924A000E1D17 /* liblove.a */; }; FA7C636A1A9C49570000FD29 /* Launch Screen.xib in Resources */ = {isa = PBXBuildFile; fileRef = FA7C63691A9C49570000FD29 /* Launch Screen.xib */; }; + FA84DE78277CB55B002674C6 /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA84DE77277CB55B002674C6 /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 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, ); }; }; FAAFF04716CB120000CCDE45 /* OpenAL-Soft.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FAAFF04616CB120000CCDE45 /* OpenAL-Soft.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; @@ -128,6 +129,7 @@ FA5D249A1A96CF4300C6FC8F /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 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; }; FA7C63691A9C49570000FD29 /* Launch Screen.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = "Launch Screen.xib"; path = "ios/Launch Screen.xib"; sourceTree = ""; }; + FA84DE77277CB55B002674C6 /* CoreHaptics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreHaptics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.2.sdk/System/Library/Frameworks/CoreHaptics.framework; sourceTree = DEVELOPER_DIR; }; FA9B4A0916E1579F00074F42 /* SDL2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL2.framework; path = macosx/Frameworks/SDL2.framework; sourceTree = ""; }; FAAFF04616CB120000CCDE45 /* OpenAL-Soft.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenAL-Soft.framework"; path = "macosx/Frameworks/OpenAL-Soft.framework"; sourceTree = ""; }; FAC1A448196F5DC600125284 /* license.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = license.txt; path = ../../license.txt; sourceTree = ""; }; @@ -153,6 +155,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + FA84DE78277CB55B002674C6 /* CoreHaptics.framework in Frameworks */, FAE64A9D2072738600BC7981 /* Metal.framework in Frameworks */, FA15DFB41F9B8D9E0042AB22 /* libbz2.tbd in Frameworks */, CE73F8001EEB64150052DAB3 /* AVFoundation.framework in Frameworks */, @@ -176,6 +179,7 @@ 1058C7A0FEA54F0111CA2CBB /* Frameworks */ = { isa = PBXGroup; children = ( + FA84DE77277CB55B002674C6 /* CoreHaptics.framework */, FAE64A9C2072738600BC7981 /* Metal.framework */, FA15DFB31F9B8D9E0042AB22 /* libbz2.tbd */, CE73F7FF1EEB64150052DAB3 /* AVFoundation.framework */, @@ -649,6 +653,7 @@ FA0B7F261A95AAF4000E1D17 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; ASSETCATALOG_COMPILER_APPICON_NAME = "iOS AppIcon"; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; @@ -665,11 +670,10 @@ DEVELOPMENT_TEAM = ""; ENABLE_BITCODE = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - EXCLUDED_ARCHS = ""; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)", + "$(PROJECT_DIR)/ios/libraries", ); GCC_DYNAMIC_NO_PIC = NO; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -685,8 +689,6 @@ HEADER_SEARCH_PATHS = ( "$(inherited)", ios/include, - ios/include/luajit, - ios/include/SDL2, ); INFOPLIST_FILE = "$(SRCROOT)/ios/love-ios.plist"; LD_RUNPATH_SEARCH_PATHS = ( @@ -706,6 +708,7 @@ FA0B7F271A95AAF4000E1D17 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; ASSETCATALOG_COMPILER_APPICON_NAME = "iOS AppIcon"; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; @@ -723,11 +726,10 @@ ENABLE_BITCODE = NO; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - EXCLUDED_ARCHS = ""; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)", + "$(PROJECT_DIR)/ios/libraries", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -737,8 +739,6 @@ HEADER_SEARCH_PATHS = ( "$(inherited)", ios/include, - ios/include/luajit, - ios/include/SDL2, ); INFOPLIST_FILE = "$(SRCROOT)/ios/love-ios.plist"; LD_RUNPATH_SEARCH_PATHS = ( @@ -759,6 +759,7 @@ FA0B7F281A95AAF4000E1D17 /* Distribution */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; ASSETCATALOG_COMPILER_APPICON_NAME = "iOS AppIcon"; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; @@ -776,11 +777,10 @@ ENABLE_BITCODE = NO; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - EXCLUDED_ARCHS = ""; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)", + "$(PROJECT_DIR)/ios/libraries", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -790,8 +790,6 @@ HEADER_SEARCH_PATHS = ( "$(inherited)", ios/include, - ios/include/luajit, - ios/include/SDL2, ); INFOPLIST_FILE = "$(SRCROOT)/ios/love-ios.plist"; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/readme.md b/readme.md index 826e16058..148d09023 100644 --- a/readme.md +++ b/readme.md @@ -61,11 +61,20 @@ Then use the Xcode project found at `platform/xcode/love.xcodeproj` to build the ### iOS Building for iOS requires macOS and Xcode. +#### LÖVE 11.4 and newer +Download the `love-apple-dependencies` zip file corresponding to the LÖVE version being used from the [Releases page][dependencies-ios], +unzip it, and place the `iOS/libraries` subfolder into love's `platform/xcode/ios` folder. + +Or, download or clone [this repository][dependencies-apple] and copy, move, or symlink the `iOS/libraries` subfolder into love's `platform/xcode/ios` folder. + +Then use the Xcode project found at `platform/xcode/love.xcodeproj` to build the `love-ios` target. + +See `readme-iOS.rtf` for more information. + +#### LÖVE 11.3 and older Download the `ios-libraries` zip file corresponding to the LÖVE version being used from the [Releases page][dependencies-ios], unzip it, and place the `include` and `libraries` subfolders into love's `platform/xcode/ios` folder. -Or, download or clone [this repository][dependencies-apple] and copy, move, or symlink the `iOS/include` and `iOS/libraries` subfolders into love's `platform/xcode/ios` folder. - Then use the Xcode project found at `platform/xcode/love.xcodeproj` to build the `love-ios` target. See `readme-iOS.rtf` for more information. From b66daf3338ff26e08db13f793508f7ae0c998ec5 Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Thu, 30 Dec 2021 12:48:41 -0400 Subject: [PATCH 6/7] Update iOS CI for xcframework dependencies --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ca8d8fa21..1ee0e83ff 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -108,7 +108,6 @@ jobs: ref: main - name: Move Dependencies run: | - mv apple-dependencies/iOS/include platform/xcode/ios mv apple-dependencies/iOS/libraries platform/xcode/ios - name: Build run: From 21b996e5b4bf4a465fa6932bec739dd60e1dc056 Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Thu, 30 Dec 2021 14:00:12 -0400 Subject: [PATCH 7/7] Add note in the changelog about LuaJIT 2.1. --- changes.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/changes.txt b/changes.txt index 0b50efb21..4fc9a8b89 100644 --- a/changes.txt +++ b/changes.txt @@ -10,6 +10,7 @@ Released: N/A * Added support for r16, rg16, and rgba16 pixel formats in Canvases. * Added Shader:send(name, matrixlayout, data, ...) variant, whose argument order is more consistent than Shader:send(name, data, matrixlayout, ...). +* Changed all builds and platforms where LOVE provides LuaJIT to use LuaJIT 2.1 instead of 2.0. * Changed love.timer.getTime to start at 0 when the module is first loaded. * Changed certain out-of-Lua-memory situations to show a message box instead of instantly crashing. * Changed the naming scheme of LOVE's embedded Lua files for improved integration with Lua chunkname APIs.