premake / premake/premake-core

xcode4 bug with generated file with same name, but different path

Open
#2,182 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C
Stars
3.6k
Forks
654
Avg merge
1d 1h
Merged PRs (30d)
13

Description

What seems to be the problem?

Generated files with same name, but different path is problematic with xcode4:
only one of them is usable in project.

How can we reproduce this?

files { "file.h" }

filter {"files:file.h", "configurations:Release"}
    buildcommands {"touch obj/Release/file.cpp"} -- placeholder
    buildoutputs {"obj/Release/file.cpp"}
    compilebuildoutputs (true)
filter {"files:file.h", "configurations:Debug"}
    buildcommands {"touch obj/Debug/file.cpp"} -- placeholder
    buildoutputs {"obj/Debug/file.cpp"}
    compilebuildoutputs (true)

or

files { "file.h" }
filter {"files:file.h"}
    buildcommands {"touch %{cfg.objdir}/file.cpp"}
    buildoutputs {"%{cfg.objdir}/file.cpp"}
    compilebuildoutputs (true)

both produce

/* Begin PBXBuildFile section */
		30E2B22287701C945FE93062 /* file.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C1F7F02AC568C25C46D5666A /* file.cpp */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
		543454BAF886F26C0ABF3AFA /* app.exe */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; name = app.exe; path = app.exe; sourceTree = BUILT_PRODUCTS_DIR; };
		C1F7F02AC568C25C46D5666A /* file.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file.cpp; path = obj/Debug/file.cpp; sourceTree = "<group>"; };
		C8BC6AF46C07F42686D8C134 /* file.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = file.h; path = ../../file.h; sourceTree = "<group>"; };
/* End PBXFileReference section */

missing release generated file.

  • 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?

latest branch version

Anything else we should know?
Add any other context about the problem here.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Use the supplied Lua reproduction to generate the Xcode project, then inspect its PBXBuildFile and PBXFileReference sections for the configuration-specific generated files. Done means both Debug and Release generated files with the same name but different paths are represented and usable in Xcode.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, lua
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.