Kinook Software Forums

Kinook Software Forums (
-   [VBP] General Discussion (
-   -   Script expression for macro's that are not always defined? (

Rogier 11-12-2009 11:51 AM

Script expression for macros that are not always defined?
For every action, you can set a condition "build only if macro or expression ... is true/false/defined/undefined/etc."

Now, occasionally I want to build a step if some macro (let's say "UnsureMacro") is either not defined, or if it's true.

To pull this off I've been messing with a temporary macro "DO_IT" which I first set to true (always), and then (in a separate set macro action) set it to %UnsureMacro% if UnsureMacro is defined.
Then in the actual action, I enable the condition "only if %DO_IT% is true".

This works, but it feels kinda clumsy. Is there some script expression in which I can combine this, so I don't have to mess with a temp macro and separate actions?

I tried stuff like this:

[((vbld_AllMacros()("UnsureMacro")) Is Nothing) OR ((vbld_AllMacros()("UnsureMacro"))<>"0")]
But that still results in an error if UnsureMacro is not defined.

If I write a complete script for this, I can do it, but is there perhaps a neat tight single expression that does the same?

kinook 11-12-2009 12:31 PM

VBScript doesn't do short-circuit evaluation, so you would need to create a project or global script function (View | Other Windows | Script Editor) like this:

Function CheckMacro(name)
  CheckMacro = False
  If vbld_AllMacros()(name) Is Nothing Then
    CheckMacro = True
    CheckMacro = CBool(vbld_AllMacros()(name))
  End If
End Function

and reference this function in the rule:

build only if macro or expression
is true

Rogier 11-12-2009 12:34 PM

Ok, thanks, will set things up like that.

All times are GMT -5. The time now is 09:31 PM.

Copyright 1999-2019 Kinook Software, Inc.