Variable expansion
Syntax
Code::Blocks treats the following functionally identical character sequences inside pre-build, post-build, or build steps as variables:
$VARIABLE
$(VARIABLE)
${VARIABLE}
%VARIABLE%
Variable names must consist of alphanumeric characters and are not case-sensitive. Variables starting with a single hash sign (#
) are interpreted as global user variables.
The names listed below are interpreted as builtin types.
Variables which are neither global user variables nor builtin types are replaced with a value provided in the project file, or with an environment variable if the latter should fail.
Per-target definitions have precedence over per-project definitions.
List of available builtins
Files and directories
$(PROJECT_FILENAME)
, $(PROJECT_FILE)
, $(PROJECTFILE)
- The filename of the currently compiling project.
$(PROJECT_NAME)
- The name of the currently compiling project.
$(PROJECT_DIR)
, $(PROJECTDIR)
, $(PROJECT_DIRECTORY)
- The common top-level directory of the currently compiling project.
$(ACTIVE_EDITOR_FILENAME)
- The filename of the file opened in the currently active editor.
$(ACTIVE_EDITOR_FILENAME)
, $(ACTIVE_EDITOR_DIRNAME)
, $(ACTIVE_EDITOR_STEM)
, $(ACTIVE_EDITOR_EXT)
- The filename of the file being open in the active editor, its containing directory (relative to the common toplevel path), its base name (without extension), and its extension.
$(ALL_PROJECT_FILES)
- A string containing the names of all files in the current project.
$(MAKEFILE)
- The filename of the makefile.
$(CODEBLOCKS)
, $(APP_PATH)
, $(APPPATH)
, $(APP-PATH)
- The path to the currently running instance of Code::Blocks
$(DATAPATH)
, $(DATA_PATH)
, $(DATA-PATH)
- The 'shared' directory of the currently running instance of Code::Blocks
$(PLUGINS)
- The 'plugins' directory of the currently running instance of Code::Blocks
Build targets
$(FOOBAR_OUTPUT_FILE)
- A specific target's output file.
$(FOOBAR_OUTPUT_DIR)
- A specific target's output directory.
$(TARGET_OUTPUT_DIR)
- The current target's output directory.
$(TARGET_NAME)
- The current target's name.
Language and encoding
$(LANGUAGE)
- The system language in human readable form.
$(ENCODING)
- The character encoding in human readable form.
Time and date
$(TDAY)
- Current date in the form
YYYYMMDD
(for example 20051228)
$(TODAY)
- Current date in the form
YYYY-MM-DD
(for example 2005-12-28)
$(NOW)
- Timestamp in the form
YYYY-MM-DD-hh.mm
(for example 2005-12-28-07.15)
$(NOW_L)
- Timestamp in the form
YYYY-MM-DD-hh.mm.ss
(for example 2005-12-28-07.15.45)
$(WEEKDAY)
- Human-readable day of the week (for example "Wednesday")
$(TDAY_UTC)
, $(TODAY_UTC)
, $(NOW_UTC)
, $(NOW_L_UTC)
, $(WEEKDAY_UTC)
- These are identical to the preceding types, but are expressed relative to UTC.
Random values
$(COIN)
- This variable tosses a virtual coin (once per invokation) and returns 0 or 1.
$(RANDOM)
- A 16bit positive random number (0-65535)