| Project Manager / Project Manager Reference | |
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 the node plus the ones defined for its ancestors.
| Variable | Description | Group | Application | Library | File | Package | 
|---|---|---|---|---|---|---|
| $(BAFilePath) | Absolute path of the 4ba file. | X | X | X | X | |
| $(BinaryName) | Name of the binary node. | X | 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 | |||
| $(BuildInputFileNames) | File names. | X | X | |||
| $(BuildInputFilePaths) | Absolute file paths. | 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 | |||
| $(BuildOutputFileNames) | File names. | X | X | |||
| $(BuildOutputFilePaths) | Absolute file paths. | X | X | |||
| $(CommandLineArgs) | Command line arguments. | X | ||||
| $(CompilerOptions) | Compilation flags defined in the user interface. | X | X | X | X | |
| $(Dependencies) | List of link output files (link results) of all dependencies binary nodes. For example, your Application depends on 2 libraries, lib1 and lib2. The lib1 link rule creates the $(TargetDir)/lib1.so output file, and the lib2 link rule creates the $(TargetDir)/lib2.so output file. The Application Dependencies is a list of these paths: {$(TargetDir)//lib1.so $(TargetDir)//lib2.so} | X | X | |||
| $(DistDir) | Value of the Distribution directory property. | X | ||||
| $(ExecutableName) | Executable name. | X | ||||
| $(ExternalDependencies) | 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 | |||
| $(GSTDIR) | Genero Studio installation directory path. | X | X | X | X | X | 
| $(GSTSETUPDIR) | Application Generator template directory path. | X | X | X | X | |
| $(Implicit) | FGL argument -implicit=none | X | ||||
| $(InputBaseName) | Input file base name, without extension. | X | ||||
| $(InputDir) | Absolute directory of the input file. | X | ||||
| $(InputExtension) | Input file extension. | X | ||||
| $(InputMimeType) | Input file MIME type. | X | ||||
| $(InputName) | Input file name, with extension. | X | ||||
| $(InputPath) | Absolute path of the input file. | X | ||||
| $(IntermediateFilePaths) | List of intermediate file paths. | X | X | |||
| $(JavaSourceDir) | Absolute path of the Java source directory (packages root). | X | ||||
| $(JavaSourcePaths) | Java source path (JavaSourceDir of dependencies). | X | ||||
| $(Language) | Value of the Language property. | X | X | X | X | |
| $(LinkerOptions) | Value of the node property LinkerOptions | X | X | X | ||
| $(LinkOutputFileBaseNames) | Base file names. List of all files which are output files for a link rule. For example, Application.42r | X | X | |||
| $(LinkOutputFileNames) | File names. List of all files which are output files for a link rule. For example, Application.42r | X | X | |||
| $(LinkOutputFilePaths) | Absolute file paths | X | X | |||
| $(PackageName) | Value of the PackageName property. | X | ||||
| $(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 | |
| $(RelativeDir) | A list of directory names, corresponding to the path difference between the
source directory and the current directory. For example, the source directory is
$(ProjectDir)/src, and the file path is
$(ProjectDir)/src/com/d1/Account.java. The relative directory would be the
string list {com d1}. To use, you typically join with a separator: 
 
 | X | X | |||
| $(TargetDir) | Target directory of the compiled files. | X | X | X | X | |
| $(TargetPaths) | List of target directories of all dependencies. | X | X | X | X | |
| $(XCFFilePath) | Path of the XCF file found for the application. | X | X | 
For all variables that contain a list of files, for example $(BuildInputFiles), special syntax is used to expand the list.
$(variableName:.extension)
For example, $(BuildInputFiles:.4gl) returns all files with a 4gl extension in the $(BuildInputFiles) list, separated by a space.
$(variableName|separator)
For example, $(BuildInputFiles|#) returns all the files in the $(BuildInputFiles) list, separated by a #.