Developer forums (C::B DEVELOPMENT STRICTLY!) > Development

How to use CMD_NULL on Windows??

(1/1)

stahta01:
Follow up on this old thread http://forums.codeblocks.org/index.php/topic,11278.0.html

I am looking at doing some pre and post commands.

And, I have NOT figured out how to use $(CMD_NULL) in CB in a way that does NOT cause an error

In Pre-build steps

--- Code: ---CMD /C dir > NUL

--- End code ---

Gives this when ran

--- Code: ---Running target pre-build steps
CMD /C dir > NUL

--- End code ---

In Pre-build steps

--- Code: ---CMD /C dir > $(CMD_NULL)

--- End code ---

Gives this when ran

--- Code: ---Running target pre-build steps
CMD /C dir > cmd /c NUL
File Not Found

--- End code ---


Tim S.

stahta01:
I am thinking this line


--- Code: ---m_Macros[_T("CMD_NULL")]  = cmd + _T("NUL");

--- End code ---

should be instead

--- Code: ---m_Macros[_T("CMD_NULL")]  = _T("NUL");

--- End code ---

in file macrosmanager.cpp.

Edit: Added git formatted patch file.

Tim S.

stahta01:
I am thinking these two macros would be useful.

CMD_CP_UPDATE is to copy files only if file is newer.
CMD_IGNORERR is to reset the OS error value to the no error value.

I have only tested them on Windows 32 bit at this time.

I tested them using these pre build steps

--- Code: ---CMD /C dir
$(CMD_MKDIR)  "a/b/c" > $(CMD_NULL) $(CMD_IGNORERR)
$(CMD_CP_UPDATE) *.cbp a

--- End code ---

Attached Git formatted patch.

Tim S.

ollydbg:

--- Quote from: stahta01 on June 16, 2015, 05:16:47 am ---Follow up on this old thread http://forums.codeblocks.org/index.php/topic,11278.0.html

I am looking at doing some pre and post commands.

And, I have NOT figured out how to use $(CMD_NULL) in CB in a way that does NOT cause an error

In Pre-build steps

--- Code: ---CMD /C dir > NUL

--- End code ---

Gives this when ran

--- Code: ---Running target pre-build steps
CMD /C dir > NUL

--- End code ---

In Pre-build steps

--- Code: ---CMD /C dir > $(CMD_NULL)

--- End code ---

Gives this when ran

--- Code: ---Running target pre-build steps
CMD /C dir > cmd /c NUL
File Not Found

--- End code ---


Tim S.

--- End quote ---
Hi, Tim, the above code shows that "$(CMD_NULL)" should be replaced to "NUL" under Windows, not "cmd /c NUL", right?
So, this is a good contribution as I can see.

stahta01:

--- Quote from: ollydbg on June 16, 2015, 04:37:08 pm ---
--- Quote from: stahta01 on June 16, 2015, 05:16:47 am ---Follow up on this old thread http://forums.codeblocks.org/index.php/topic,11278.0.html

I am looking at doing some pre and post commands.

And, I have NOT figured out how to use $(CMD_NULL) in CB in a way that does NOT cause an error

In Pre-build steps

--- Code: ---CMD /C dir > NUL

--- End code ---

Gives this when ran

--- Code: ---Running target pre-build steps
CMD /C dir > NUL

--- End code ---

In Pre-build steps

--- Code: ---CMD /C dir > $(CMD_NULL)

--- End code ---

Gives this when ran

--- Code: ---Running target pre-build steps
CMD /C dir > cmd /c NUL
File Not Found

--- End code ---


Tim S.

--- End quote ---
Hi, Tim, the above code shows that "$(CMD_NULL)" should be replaced to "NUL" under Windows, not "cmd /c NUL", right?
So, this is a good contribution as I can see.

--- End quote ---

Correct, it is what I think it should do; in order that what it does matches what Linux does.

Edit: I am trying to figure out how to write post/pre build steps that are the same for Windows and Linux.

Tim S.

Navigation

[0] Message Index

Go to full version