premake / premake-core

Premake
https://premake.github.io/
BSD 3-Clause "New" or "Revised" License
3.2k stars 618 forks source link

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

Open Jarod42 opened 7 months ago

Jarod42 commented 7 months ago

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.

What version of Premake are you using?

latest branch version

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