-
Notifications
You must be signed in to change notification settings - Fork 107
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
Prefix cmake options with CORRADE_ #139
Comments
Yes, this is on my list -- mosra/magnum#453. I feel your pain, I just didn't have the courage to start yet because the downstream breakages will be serious if I don't provide backwards compatibility... and it won't really solve the name collisions if I provide backwards compatibility. |
You could keep the existing option names with the following strategy:
This would allow projects that understand the new symbols names to not have conflicts, and projects that do not understand them keep the existing behavior. Then some day in the future, you change the default of CORRADE_DISABLE_CMAKE_BACKCOMPAT from ON to OFF, and eventually remove it and the old names. |
Hm, I actually had a similar idea before but there were some loose ends:
Yeah, and adding a dedicated option just for this one CMake change feels dirty to me. Oh, or I could detect if any new prefixed |
This should be implemented as of 878624a, with similar commits gradually appearing in other repos. See the commit message for details. There's quite a bit of nontrivial logic to both satisfy backwards compatibility and allow the unprefixed variables to be repurposed by other projects, and while I tried to verify all corner cases, it might not be covering everything, especially the more obscure combinations of options. Please report if it misbehaves in some way -- thanks! :) |
My project has many 3rd party libraries in the same build tree. I just realized that some options from other third party libs are also being used by Corrade, and it's resulting in some frustrations.
If the various options that can be set in the Corrade CMakeLists.txt files were prefixed with CORRADE_ there would be no name collision.
The text was updated successfully, but these errors were encountered: