Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to modify source with NAnt?

I would like to modify the string in a .h file with NAnt before building the solution.

There is a macro in .h file: #define SERVER_ADDRESS "www.customserver.net" and I would like to modify the string before deploying software so each build could be made for custom address by passing the address in command line.

Does anyone know how this could be done?

Thanks!

like image 778
Niko Gamulin Avatar asked Jan 28 '09 12:01

Niko Gamulin


1 Answers

One could use the loadfile task to help with this. This task loads the given file into a property. What is really useful is when you apply a filterchain with replacetokens to replace certain areas of the file. For example if one were to define a template-like header file that looked something like this:

#ifndef MyMacros_h
#define MyMacros_h

#define SERVER_ADDRESS "@SERVER_ADDRESS_TOKEN@"

#endif

One could the use the loadfile task to replace the @SERVER_ADDRESS_TOKEN@ with any string, and then use the echo task to actually write the real header file back out.

<loadfile file="MyMacrosTemplate.h" property="theMacrosFileContents">
    <filterchain>
        <replacetokens>
            <token key="SERVER_ADDRESS_TOKEN" value="www.customerserver.net" />
        </replacetokens>
    </filterchain>
</loadfile>
<echo file="MyMacros.h" message="${theMacrosFileContents}" />

This will generate a MyMacros.h file with the modified string for the SERVER_ADDRESS.

like image 105
Scott Saad Avatar answered Nov 08 '22 19:11

Scott Saad