PDA

View Full Version : How to use non-global macros from other projects?


Rogier
02-19-2008, 09:36 AM
I would like to have one "init_passwords.bld" project which sets some password macros, and then run that bld from several other projects. However I don't want to set them as global macros or environment variables. This way I can store all passwords at one secure place (the init_passwords.bld would be on an encrypted drive).

But when I use temporary macros, the calling project doesn't have access to them, and when I use project macros, it asks whether I want to save the bld every time.

So, I want:
- myproject.bld to run (or call, or include, or whatever) some init.bld
- init.bld to set some password macros, but not as global macros or env vars (at least not env vars that survive beyond myproject.bld's execution)
- use the macros set by init.bld in myproject.bld

I guess if projects could include other projects, rather than just running them in a separate session, that would solve my problem, and it'd allow for quite some other handy tricks as well.

Is something like this possible?

kinook
02-19-2008, 09:59 AM
Create a .macros file containing the password macros, either by manually creating a file in this format:


<?xml version='1.0' encoding='utf-8'?>
<macros version='6'>
<macro name='PWD1'>
<value>macro value here</value>
</macro>
<macro name='PWD2'>
<value>macro value here</value>
</macro>
</macros>

or by adding project macros to a new .bld file, and adding+building a Run Script step with code like this to create the macros file:

Project.Macros.Save "c:\path\to\passwordfile.macros"

Then, in myproject.bld, use a Run Script step with code like this to merge the password macros file into temporary macros:

Application.Macros(vbldMacroTemporary).Load "c:\path\to\passwordfile.macros"

http://www.visualbuild.com/Manual/macroscollection.htm
http://www.visualbuild.com/Manual/runscript.htm

Rogier
02-19-2008, 10:32 AM
Thanks a lot, works like a charm!! :)