fix(AppImage): guard POSIX-only calls behind __WXGTK__ - #329
Merged
Conversation
…WXGTK__ Broke the master mingw-w64 build in amule-project#328: MinGW doesn't have lstat, S_ISLNK, or symlink(2). The AppImage integration path is inherently Linux-only - ShouldPrompt returns false on !__WXGTK__ so InstallCommandSymlinks is never called on Windows / macOS - but the symbols still had to link. Wrap IsSymlink and the GTK body of InstallCommandSymlinks in #ifdef __WXGTK__; provide a stub InstallCommandSymlinks on non-GTK builds that returns 0, so the (dead) call site in PromptAndInstall still links. No behaviour change on Linux. Verified locally that macOS builds too. Fixes the CI break from amule-project#328.
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.
Broke the master mingw-w64 build in #328. MinGW doesn't have
lstat,S_ISLNK, orsymlink(2), and my newIsSymlink()+InstallCommandSymlinks()referenced all three unconditionally.The AppImage integration path is inherently Linux-only -
ShouldPrompt()returns false on!__WXGTK__, soInstallCommandSymlinksis never actually called on Windows / macOS - but the symbols still had to link. Guard fix:IsSymlinkand the GTK body ofInstallCommandSymlinksin#ifdef __WXGTK__.InstallCommandSymlinkson non-GTK builds that returns 0, so the (dead) call site inPromptAndInstallstill links.No behaviour change on Linux. Verified locally that macOS still builds (guarded path takes the stub branch on
__WXMAC__).Fixes the CI break from #328. Sorry for the churn - I should have compiled locally on Windows before landing #328, or waited for CI green.