MAC: Add Metal backend, native app bundle packaging, rpath dylib resolution, and separate Xcode/Makefiles build scripts - #135
Merged
Conversation
soum1-d
force-pushed
the
mac
branch
2 times, most recently
from
August 7, 2026 22:00
0f78b1b to
0e42705
Compare
Owner
|
@soum1-d hard reset and make a single proper commit instead of 7 different commits. |
soum1-d
force-pushed
the
mac
branch
3 times, most recently
from
August 9, 2026 13:52
c650aa4 to
560fa41
Compare
…ross-platform CI workflows
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR introduces comprehensive macOS cross-platform support and adds a native Metal rendering backend to TimeEngine alongside existing graphics APIs.
Key Changes:
Metal Rendering Backend:
MetalRendererAPI,MetalVertexBuffer,MetalIndexBuffer,MetalVertexArray,MetalFramebuffer, andMetalShaderinEngine/Include/Renderer/Metal/andEngine/src/Renderer/Metal/.GraphicsAPI::MetaltoGraphicsAPIenum and integrated factory instantiations acrossVertexBuffer::Create,IndexBuffer::Create,VertexArray::Create,Framebuffer::Create, andShader::Create.TE_SUPPORT_METALandTE_SUPPORT_OPENGLsupport detection for macOS inPreRequisites.h.Premake5 & macOS Application Bundling:
Premake5.luato generate native macOS.appbundles (WindowedApp) with embeddedInfo.plistmetadata..mmObjective-C++ file compilation support and linkedMetal.framework,QuartzCore.framework,Cocoa.framework,IOKit.framework,CoreFoundation.framework, andCoreVideo.framework.glfw3linkage fromTimeEditortarget on macOS to prevent duplicate Objective-C class symbol collisions (GLFWHelper,GLFWApplicationDelegate) withlibEngine.dylib.Relocatable Dynamic Library Resolution (
@rpath):@rpath/libEngine.dyliband@rpath/libVelox.dylibinstall names and setLD_RUNPATH_SEARCH_PATHS = "@executable_path"forTimeEditorbundle targets.libEngine.dylibandlibVelox.dylibintoTimeEditor.app/Contents/MacOS/.Build Pipeline & Release Packaging:
Scripts/Mac/Xcode/andScripts/Mac/Makefiles/.BuildCommercialRelease.shto bundleTimeEditor.appwith embedded dynamic libraries, automaticinstall_name_toolfixups, and ad-hoc code signing (codesign --force --deep).llms.md&llms.txtarchitecture reference documentation to include Metal backend support.Related Issues
Cross platform portability for Mac.
Type of Change
How Has This Been Tested?
I have built the project and run the app in Mac.
Checklist