Predefined node variables

Each Project Manager node has a defined set of variables containing values determined at runtime.

These variables can be used in Build rules or Environment variables. The variables available on a node are the concatenation of the variables defined for this node plus the ones defined for its ancestors.

Table 1. Predefined node variables (X indicates available for the node)
Variable Description Group Application Library File
$(ProjectDir) The directory where the 4pw file is located or the operating system temporary directory if the project has never been saved X X X X
$(CompilerOptions) Compilation flags defined in the user interface X X X X
$(TargetDir) Target directory of the compiled files X X X X
$(InputPath) Absolute path of the input file       X
$(InputName) File name with extension       X
$(InputBaseName) File name without extension       X
$(InputExtension) File extension       X
$(InputDir) File directory       X
$(InputMimeType) MIME type of the file       X
$(BAFilePath) Absolute path of the 4ba file X X X X
$(TemplateDir) Application Generator template directory path X X X X
$(InstallDir) Genero Studio installation directory path X X X X
$(BinaryName) Name of the binary node   X X X
$(LinkerOptions) Value of the node property LinkerOptions   X X X
$(Dependencies) Full path to dependent libraries output.   X X  
$(External Dependencies) Value of the node property External dependencies.
Note: For Java™, C, and other languages, this property will contain the full path for external dependencies as FGLLDPATH is not used.
  X X  
$(BuildInputFilePaths) Absolute file paths   X X  
$(BuildInputFileNames) File names   X X  
$(BuildInputFileDirs) File directories. List of all files which are input files for a build rule. For example, main.4gl form.4fd test.per toto.4gl   X X  
$(BuildOutputFilePaths) Absolute file paths   X X  
$(BuildOutputFileNames) File names   X X  
$(BuildOutputBaseNames) Base names. List of all files which are output files for a build rule. For example, main.42m form.42f test.42f toto.42m   X X  
$(LinkOutputFilePaths) Absolute file paths   X X  
$(LinkOutputFileNames) File names. List of all files which are output files for a link rule. For example, Application.42r   X X  
$(XCFFilePath) Path of the XCF file found for the application.   X X  

List Expansion

For all variables that contain a list of files, for example $(BuildInputFiles), special syntax is used to expand the list.

To get a list with a specific file extension:
$(variableName:.extension)
For example, $(BuildInputFiles:.4gl) returns all the 4gl files in the $(BuildInputFiles) list, separated by a space.
To get a list with a specific separator:
$(variableName|separator)   

For example, $(BuildInputFiles|#) returns all the files in the $(BuildInputFiles) list separated by a #.