Improve slnx format output#2653
Conversation
Update unit tests so they all pass correctly I have taken a different approach altogether to this, as the new format allows for default properties to be set. Therefore what we do is detect what is relevant for a given project from what's available in the solution, and everything else is set as a default, as all projects need to specify what happens to configurations in the solution but outside their purview. By not adding configs the project doesn't care about, we make the slnx more understandable and concise
There was a problem hiding this comment.
This PR causes failures in loading the solution file. Digging deeper, it's emitting multiple "Project" XML nodes for the same project, which is invalid.
More details after further investigation:
Each project is put into every group (folder node) in the solution. Something like this should suffice to show the issue:
workspace "Foo"
project "Bar"
kind "ConsoleApp"
language "C++"
group "Baz"
project "Quux"
kind "ConsoleApp"
language "C++"|
Hmm could you give me an example of a script that does that? It's meant to just loop through the projects once. Ah I see, I haven't tested with group folders, I'll fix once I'm free this evening. I wonder if this is a bug that existed already in the original implementation and I just carried it over without much thought, I'll double check |
This is not a bug present in the original version. It's a regression. |
What does this PR do?
Improves the configuration mapping for the slnx format
How does this PR change Premake's behavior?
It accounts for the buildcfg and platform combinations so they map correctly to the project files
Anything else we should know?
Some unit tests are failing due to some iterator not being set up correctly, don't think it's a big one but I need someone to review what I'm doing. Once that's fixed I can get to fixing any valid unit test failures and add new ones
Did you check all the boxes?
closes #XXXXin comment to auto-close issue when PR is merged)You can now support Premake on our OpenCollective. Your contributions help us spend more time responding to requests like these!