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

Add a static build on the CIs #80

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open

Add a static build on the CIs #80

wants to merge 5 commits into from

Conversation

mosra
Copy link
Owner

@mosra mosra commented Dec 22, 2020

Not so easy, in fact. A HELLISH NIGHTMARE.

  • Find modules need to expose MAGNUM_<COMPONENT>_BUILD_STATIC so user code can find plugins and then decide based on whether the plugins are static or not
    • The changes in the modules need to get commited to magnum and magnum-plugins
    • Similar changes done for FindMagnumIntegration, FindMagnumExtras
    • Figure out how to handle this for CMake subprojects (for a future-proof solution the plugins need to tell the configure.h location to the find module -- something like done with _MAGNUM_CONFIGURE_FILE from inside Magnum, putting that as an internal cache entry, then the find module has to find the file instead of assuming its location and parse it even if the target already exist)
    • The Mac build doesn't actually work for some reason, and the AnyImageImporter isn't built as static
  • Need to figure out an actual solution for the case where plugins are dynamic but libraries static -- in that case whitelisted Array deleters get duplicated in the executable and in the plugin and then obviously the whitelisting doesn't work and asserts (which is correct, as the deleter would be a dangling pointer after plugin unload). Solve this with yet another "globals shared across static libs" ugly workaround? Sigh.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant