New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build the plug-ins as CMake modules. #144
Conversation
I don't really get it, what's the actual benefit of the mach bundle instead of a library? What advantage to we get to use |
I think these changes are intended to allow regenerate d3-linux.hog for macOS. |
Mach bundles are designed to be loaded at runtime, as opposed to dynamic libraries, which are designed to be loaded at link time. I will admit that changing |
This is going to make components load at runtime instead of link time right? Will this break any compatibility with the older systems the game was originally built for? If so, this might be a modernization to push back for later. |
No, Descent 3 already loads these files at runtime. |
I tested it and it fails on Mac Intel at least. I cannot say if it fails because of it or because of something merged just before it, though |
please investigate and report back =) |
From discord user thunderbird: |
Probably this is another story and another issue. We should bundle libraries into artifacts to fix this. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that this change makes sense, and I was able to verify that it works on NixOS 23.11. The commit that this PR is based on is broken on my system, but when I rebased this PR on main, it worked fine.
Just rebased. |
Once the conflict is resolved I'll merge. Sorry it's taken so long. |
Rebased again. |
This causes the level scripts/plugins to be built, on macOS, as a mach bundle (doesn't have an install name) instead of a library.
This also includes a hack to make the created modules for macOS match the old (pre-patch) file extension, otherwise they would have the extension of ".so" by CMake.