-
-
Notifications
You must be signed in to change notification settings - Fork 621
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
cfg.buildtarget tokens incorrect in postbuildcommands #2248
Comments
Even some relative paths are returned as absolute and transformed into relative path "later" (as in
I'm expecting resulting path is relative. |
I read that, which is why I was using %[]. To quote that page (ouch, spelling):
That, to me, says that the %[] is necessary, period - not necessary for only some desired outcome. I've expanded the postbuildcommands to this: "{ECHO} %{prj.name} [cfg.buildtarget.directory]: %[%{cfg.buildtarget.directory}]",
"{ECHO} %{prj.name} cfg.buildtarget.directory: %{cfg.buildtarget.directory}",
"{ECHO} %{prj.name} [cfg.buildtarget.relpath]: %[%{cfg.buildtarget.relpath}]",
"{ECHO} %{prj.name} cfg.buildtarget.relpath: %{cfg.buildtarget.relpath}",
"{ECHO} %{prj.name} [!cfg.buildtarget.relpath]: %[%{!cfg.buildtarget.relpath}]",
"{ECHO} %{prj.name} !cfg.buildtarget.relpath: %{!cfg.buildtarget.relpath}",
"{ECHO} %{prj.name} [cfg.buildtarget.abspath]: %[%{cfg.buildtarget.abspath}]",
"{ECHO} %{prj.name} cfg.buildtarget.abspath: %{cfg.buildtarget.abspath}",
"{ECHO} %{prj.name} [!cfg.buildtarget.abspath]: %[%{!cfg.buildtarget.abspath}]",
"{ECHO} %{prj.name} !cfg.buildtarget.abspath: %{!cfg.buildtarget.abspath}",
"{ECHO} %{prj.name} [cfg.buildtarget.name]: %[%{cfg.buildtarget.name}]",
"{ECHO} %{prj.name} cfg.buildtarget.name: %{cfg.buildtarget.name}",
"{ECHO} %{prj.name} [cfg.buildtarget.basename]: %[%{cfg.buildtarget.basename}]",
"{ECHO} %{prj.name} cfg.buildtarget.basename: %{cfg.buildtarget.basename}",
"{ECHO} %{prj.name} [cfg.buildtarget.extension]: %[%{cfg.buildtarget.extension}]",
"{ECHO} %{prj.name} cfg.buildtarget.extension: %{cfg.buildtarget.extension}", which results in this in the generated vcxproj file:
Without %[] relpath and abspath are indeed much more correct, though I'd still expect both So the docs stating that %[] is required for paths appears to be entirely incorrect? Even without the %[] the generator transformed |
IMO, having
I won't say doc is incorrect in that concern. As omit
Those are not paths, so should not be enclosed by |
What seems to be the problem?
The various cfg.buildtarget tokens appear to be incorrect in postbuildcommands.
The complete (dummy) project I'm using for learning Premake demonstrates the bug: https://github.com/richard-sim/build-sys-eval/blob/248c0abae20a8509e0d8eb63e435fa3925e3cb06/foobar/src/premake5.lua#L62
output:
Partial directory structure:
What did you expect to happen?
cfg.buildtarget.directory
I'd expect to be relative tofoobar/src/Premake5.lua
as per Premake convention, not absolute.cfg.buildtarget.relpath
I'd expect to be relative tofoobar/src/Premake5.lua
, not relative to what seems to befoobar/src/.build/obj/
for some reason?!!cfg.buildtarget.relpath
I'd expect to be the absolute path.cfg.buildtarget.abspath
I'd also expect to be the absolute path.!cfg.buildtarget.abspath
I'd expect to... also be the abs path.cfg.buildtarget.extension
I'd expect to be.exe
not..\.exe
. That's quite a unique definition of extension!What have you tried so far?
I'm using
%[%{cfg.buildtarget.directory}%{cfg.buildtarget.basename}.ext]
, which while is an absolute path, is fine for my needs.How can we reproduce this?
This bare-bones repo can be cloned: https://github.com/richard-sim/build-sys-eval/blob/248c0abae20a8509e0d8eb63e435fa3925e3cb06/foobar/src/premake5.lua#L62
What version of Premake are you using?
Latest master branch.
Anything else we should know?
I'm new here. :)
The text was updated successfully, but these errors were encountered: