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
Single CMakeLists.txt for both Release and Debug #1139
Comments
Fundamentally @jlonnberg Can you please explain what are the benefits of having Debug/Release flavours at configuration level instead of target level? |
@brondani I envision that a csolution should be translatable into a single CMake structure with all included projects and configurations. As I stated in the .cprj discussion, this would automatically solve interdependencies. As of now, I guess that the user needs to specify their projects in a specific order for them to build properly of project-1 depends on project-2 in the csolution file. Moreover, this makes the csolution concepts compatible with any IDE using cmake's file API's out of the box as well. |
@jlonnberg Thanks for the answer.
Would you like to talk more about it? Feel free to join our weekly meetings: |
I did an experiment by opening the attached multi-config.zip project in 2 popular IDEs but didn’t work out of the box:
Another problem with this approach is that the compilation database (compile_commands.json) is common for all targets and configurations – the database alone may not suffice for a language server to find the right entries resulting in wrong intellisense info. On the other hand, when the contexts are described as separated CMake targets, all of them are correctly listed in the project outline and can be individually selected and built in both IDEs. |
Describe The Problem To Be Solved
A csolution is currently translated into seperate cmakelists.txt for Debug and Release flavours. It would be beneficial to align these and run with "Ninja Multi-Config" for cmake instead, to have one single cmakelists.txt describing all available configurations.
The text was updated successfully, but these errors were encountered: