Difference between revisions of "IDE Macros in paths and filenames"
From Free Pascal wiki
Jump to navigationJump to searchLine 45: | Line 45: | ||
==Paths and Parts== | ==Paths and Parts== | ||
* '''Env(name)''' - macro function for environment variables given to the IDE (not project nor debugger) (see [http://lazarus-ccr.sourceforge.net/docs/lcl/fileutil/getenvironmentvariableutf8.html GetEnvironmentVariableUTF8]) (since 0.9.27) | * '''Env(name)''' - macro function for environment variables given to the IDE (not project nor debugger) (see [http://lazarus-ccr.sourceforge.net/docs/lcl/fileutil/getenvironmentvariableutf8.html GetEnvironmentVariableUTF8]) (since 0.9.27) | ||
− | * '''CompPath''' - compiler path set in the environment options | + | * '''CompPath''' - compiler path set in the environment options. Can not use the macro FPCVer. |
− | * '''ConfDir''' - directory where the IDE stores its config files | + | * '''ConfDir''' - directory where the IDE stores its config files. |
* '''ExeExt''' - executable file extension for the operation system, independent of project's target OS. To get the extension for the current project target OS use $MakeExe(). | * '''ExeExt''' - executable file extension for the operation system, independent of project's target OS. To get the extension for the current project target OS use $MakeExe(). | ||
* '''FPCSrcDir''' - FPC source directory set in environment options | * '''FPCSrcDir''' - FPC source directory set in environment options | ||
Line 52: | Line 52: | ||
* '''LanguageID''' - IDE language, for example en for english, de for german | * '''LanguageID''' - IDE language, for example en for english, de for german | ||
* '''LanguageName''' - IDE language name, the translated name of the current language. For instance: Deutsch for german. | * '''LanguageName''' - IDE language name, the translated name of the current language. For instance: Deutsch for german. | ||
− | * '''LazarusDir''' - Lazarus source directory set in environment options | + | * '''LazarusDir''' - Lazarus source directory set in environment options. No macros allowed. |
* '''LCLWidgetType''' - LCL widgetset of the current project | * '''LCLWidgetType''' - LCL widgetset of the current project | ||
* '''ProjFile''' - the full filename of the main source of the current project (.lpr) | * '''ProjFile''' - the full filename of the main source of the current project (.lpr) |
Revision as of 18:48, 2 April 2011
│
Deutsch (de) │
English (en) │
español (es) │
français (fr) │
português (pt) │
русский (ru) │
Macros are used in the following format. Replacing the macro-name part with one of the macros listed below.
$(macro-name)
For example: This Unit Output directory format is often used for Lazarus Packages:
lib/$(TargetCPU)-$(TargetOS)
under a x86 Linux 32-bit system that would equate to: lib/i386-linux
under a x86 Linux 64-bit system that would equate to: lib/x86_64-linux
There are also some macro functions that use the following format:
$macro_name(parameters)
For example
$Ext(unit1.pas)
will give .pas.
General Purpose
- Col - current column in source editor
- Row - current row in source editor (screen, can differ to byte position due to tabs and UTF-8)
- CurToken - current token at the cursor in the source editor
- EdFile - current filename in the source editor
- Params - run parameters of the current project
- Prompt - ask the user for a value. This is an interactive macro.
- RunCmdLine - the command to launch the project
- Save - save current file in source editor
- SaveAll - save all
- TargetCmdLine - the project executable plus run parameters
Filename Parts
- Ext(filename) - macro function for ExtractFileExt
- MakeDir(filename) - macro function for AppendPathDelim
- MakeFile(filename) - macro function for ChompPathDelim
- MakeExe(filename) - change file extension to .exe under Windows, nothing under Linux, BSD, OS X
- MakeLib(filename) - change file extension to .dll under Windows, under Linux/BSD change to lowercase libname.so, under OS X to libname.so (since 0.9.29)
- Name(filename) - macro function for ExtractFileName
- NameOnly(filename) - macro function for ExtractFileNameOnly
- Path(filename) - macro function for ExtractFilePath
Paths and Parts
- Env(name) - macro function for environment variables given to the IDE (not project nor debugger) (see GetEnvironmentVariableUTF8) (since 0.9.27)
- CompPath - compiler path set in the environment options. Can not use the macro FPCVer.
- ConfDir - directory where the IDE stores its config files.
- ExeExt - executable file extension for the operation system, independent of project's target OS. To get the extension for the current project target OS use $MakeExe().
- FPCSrcDir - FPC source directory set in environment options
- FPCVer - FPC version (since 0.9.25). For example '2.2.2'. This version is fetched from the compiler $(CompPath), which path is set in the environment options.
- LanguageID - IDE language, for example en for english, de for german
- LanguageName - IDE language name, the translated name of the current language. For instance: Deutsch for german.
- LazarusDir - Lazarus source directory set in environment options. No macros allowed.
- LCLWidgetType - LCL widgetset of the current project
- ProjFile - the full filename of the main source of the current project (.lpr)
- ProjPath - the project directory (the directory of the .lpi file)
- TargetFile - the output file of the current project (e.g. the executable or the library)
- TestDir - Test directory set in the environment options
- SrcOS - 'unix' for linux, darwin, bsd. 'win' for win32, win64, wince
- TargetCPU - Target CPU of the current project. In Makefile: %(CPU_TARGET)
- TargetOS - Target OS of the current project. In Makefile: %(OS_TARGET)
- LCLWidgetType - LCL widget type of the current project. In Makefile: %(LCL_PLATFORM)
- Make - path to the make utility (gmake under BSD) (since 0.9.29)
- ProjIncPath - include path of project directory
- ProjOutDir - path of project output directory (e.g. where the .ppu files are created) (since 0.9.27)
- ProjPublishDir - publishing directory of the current project
- ProjSrcPath - source path of project directory
- ProjUnitPath - unit path of project directory
- Project(param) - macro function for various values:
- Project(UnitPath) - unit path of project directory
- Project(SrcPath) - source path of project directory
- Project(IncPath) - include path of project directory
- Project(InfoFile) - filename of the project information file (.lpi) (since r15287, 0.9.25)
- Project(OutputDir) - directory where the project's ppu files are created (since 0.9.27)
- Package macros - these can be used in the fields of a package. For example in the search paths of a package. To use them elsewhere give a package name as parameter.
- PkgDir() - macro function for the directory (location of the .lpk) of a package ID given as parameter
- PkgIncPath(id) - macro function for the include path of a package ID given as parameter
- PkgOutDir(id) - macro function for the output directory of a package (e.g. where the ppu files are created)
- PkgSrcPath(id) - macro function for the source path (unit path + src path) of a package ID given as parameter
- PkgUnitPath(id) - macro function for the unit path of a package ID given as parameter
- IDEBuildOptions - the extra options of the 'Configure Build Lazarus' dialog (since 0.9.29). In Makefile empty.
- PrimaryConfigPath - the directory of the IDE's configuration files (since 0.9.31)
- SecondaryConfigPath - the directory of the IDE's configuration templates (since 0.9.31)
- FallbackOutputRoot - the directory where the IDE puts ppu files if the output directory of a package is not writable. Default: $(PrimaryConfigPath)/lib. Since 0.9.31.