• Intro Headers Instructions Macros
  • Fork me on GitHub
    • Release
    • Introduction
    • How to install bnd
    • Guided Tour
    • Guided Tour Workspace & Projects
    • Concepts
    • Best practices
    • Build
    • Generating JARs
    • Versioning
    • Baselining
    • Service Components
    • Metatype
    • Contracts
    • Manifest Annotations
    • Resolving Dependencies
    • Launching
    • Testing
    • Packaging Applications
    • Wrapping Libraries to OSGi Bundles
    • From the command line
    • For Developers
    • Plugins
    • Tools bound to bnd
    • File Format
    • Header Reference
    • Instruction
    • Instruction Index
    • Macro Reference
    • Command Reference
    • Plugins Reference
    • Settings
    • Errors
    • Warnings
    • Frequently Asked Questions
    Supported by OSGi enRoute
  • if ';' STRING ';' STRING ( ';' STRING )?

    if         ::= 'if' ';' condition ';' expansion ( ';' expansion )?
    condition  ::= true | false
    false      ::= 'false' | ''
    true       ::= ! false
    expansion  ::= ...
    

    The ${if} macro allows a conditional expansion. The first argument is the condition. the condition is either false (empty or ‘false’) or otherwise true. If the condition is true, the value of the macro is the second argument, the first expansion. Otherwise, if a third argument is specified this is returned. If no third argument is specified, an empty string is returned.

    Examples

    # expands to 'B'
    aorb = ${if;;A;B}
    
    # Display ${foo} if set, otherwise 'Ouch'. See also ${def}
    whatisfoo = ${if;${foo};${foo};Ouch}
    
    # Include a file conditionally
    -include ${if;${test};test.bnd}
    
    • Contact
    • Developers
    • More