Skip to content
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

Support macOS bundling for binary distribution #5367

Merged
merged 2 commits into from
Dec 16, 2018
Merged

Support macOS bundling for binary distribution #5367

merged 2 commits into from
Dec 16, 2018

Conversation

vit9696
Copy link
Contributor

@vit9696 vit9696 commented Nov 24, 2018

Polished macOS compilation to properly generate an app file that can be distributed in binary form. Also fixed broken style support and freezing error messages.

While macOS binaries are not very decent, I believe they can be uploaded to the website for better tracking. Could anybody create another PR by zipping rpcs3.app in build/bin and uploading it where necessary?

Note: it appears that the CI failed to pull some environment data on Linux, and the build needs to be restarted to pass.

@hcorion
Copy link
Member

hcorion commented Nov 24, 2018

While macOS binaries are not very decent, I believe they can be uploaded to the website for better tracking.

No point while the issues mentioned in #5361 are still prevalent, it would just be wasting server space.

Utilities/File.cpp Outdated Show resolved Hide resolved
rpcs3/CMakeLists.txt Outdated Show resolved Hide resolved
@vit9696
Copy link
Contributor Author

vit9696 commented Nov 24, 2018

While macOS binaries are not very decent, I believe they can be uploaded to the website for better tracking.

No point while the issues mentioned in #5361 are still prevalent, it would just be wasting server space.

The disk space is provided by github, so I am not positive it is to be taken into account. Despite the issues (yes, I am fully aware about them), we will be able to track that the binaries run at the very least, which I believe is fairly important.

@hcorion
Copy link
Member

hcorion commented Nov 27, 2018

I've talked with Ani (one of the admins) and he said he's okay with publishing binaries to GitHub, we're just waiting on Nekotekina to create RPCS3/rpcs3-binaries-mac

@vit9696
Copy link
Contributor Author

vit9696 commented Nov 27, 2018

Right, in fact there is one more issue. I wanted to address it in the beginning, but unfortunately failed to implement. I believe MoltenVK, despite not working as of now, is no less mature than gfx portability at the very least, and wanted to support them both.

My original idea is to weak link (-weak_library) to either but not include the file. Later on I dynamically loaded (dlopen) one of the libraries to solve the symbols. This works just fine in flat namespace mode (all symbols belong to global namespace), but at present Apple uses two-level namespace (each symbol belongs to some library namespace), which obviosly fails. I tried doing the binding myself, yet it did not work properly (I could start rpcs3 but it would crash later on null pointer exec). I believe this solution may be fixed to work, yet it remains very hacky and not reliable.

For this reason, the way to select the Vulkan implementation is fairly open. We could always patch/symlink the vulkan library within rpcs3.app itself, but it will break codesigning if it is considered.

@Ghostotakoi

This comment has been minimized.

@vit9696
Copy link
Contributor Author

vit9696 commented Dec 12, 2018

Rebased the branch with latest master.

@Nekotekina, I believe we should merge this even if we postpone the binary distribution for macOS. The changes contain several platform-specific improvements and I see no reason not to have them.

Currently nothing prevents us from uploading binary files for macOS, yet it can (should) be a separate pull request.

@Nekotekina Nekotekina merged commit 5a40c18 into RPCS3:master Dec 16, 2018
@jbeich jbeich mentioned this pull request Dec 28, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants