premake / premake/premake-core
gmake2: Groups create circular dependencies
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 3.6k
- Forks
- 654
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 13
Description
What seems to be the problem?
When groups are added to a workspace and they contain projects with the same name, the resulting makefile has circular dependencies.
workspace "App"
group "Core"
project "Core"
group ""
The above snippet will generate this line in the makefile:
Core: Core
And make will output the following message:
make: Circular Core <- Core dependency dropped.
This isn't a huge deal (I can just rename the group), but it took me ages to figure this out. So it might be nice to have a warning in Premake about such things, or even just dropping groups from gmake2. (They're an IDE construct after all. I don't know if they bring any value to makefiles.)
What did you expect to happen?
I never know what to expect. :)
What have you tried so far?
I renamed the group. It's no biggie, but maybe the UX could be improved.
How can we reproduce this?
See the above snippet.
- Visual Studio 2022 (vs2022)
- Visual Studio 2019 (vs2019)
- Visual Studio 2017 (vs2017)
- Visual Studio 2015 (vs2015)
- Visual Studio 2012 (vs2012)
- Visual Studio 2010 (vs2010)
- Visual Studio 2008 (vs2008)
- Visual Studio 2005 (vs2005)
- GNU Makefile (gmake)
- GNU Makefile 2 (gmake2)
- XCode (xcode)
- Codelite
- Other (Please list below)
What version of Premake are you using?
5.0.0-dev
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue from the workspace and group snippet, then inspect the gmake2-generated makefile and the resulting GNU Make output. Determine the intended handling of groups whose names match projects, and verify the chosen behavior with a regression case for the circular dependency.
Written by the indexing model from the issue text.
Assessment
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100