Difference between revisions of "IDE Macros in paths and filenames"

From Free Pascal wiki
Jump to navigationJump to search
(category)
Line 34: Line 34:
  
 
==Filename Parts==
 
==Filename 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)
 
 
* '''Ext(filename)''' - macro function for ExtractFileExt
 
* '''Ext(filename)''' - macro function for ExtractFileExt
 
* '''MakeDir(filename)''' - macro function for AppendPathDelim
 
* '''MakeDir(filename)''' - macro function for AppendPathDelim
Line 45: Line 44:
  
 
==Paths and Parts==
 
==Paths and Parts==
* CompPath - compiler path set in the environment options
+
* '''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)
* ConfDir - directory where the IDE stores its config files
+
* '''CompPath''' - compiler path set in the environment options
* 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().
+
* '''ConfDir''' - directory where the IDE stores its config files
* FPCSrcDir - FPC source directory set in environment options
+
* '''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().
* 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.
+
* '''FPCSrcDir''' - FPC source directory set in environment options
* LanguageID - IDE language, for example en for english, de for german
+
* '''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.
* LanguageName - IDE language name, the translated name of the current language. For instance: Deutsch for german.
+
* '''LanguageID''' - IDE language, for example en for english, de for german
* LazarusDir - Lazarus source directory set in environment options
+
* '''LanguageName''' - IDE language name, the translated name of the current language. For instance: Deutsch for german.
* LCLWidgetType - LCL widgetset of the current project
+
* '''LazarusDir''' - Lazarus source directory set in environment options
* ProjFile - the full filename of the main source of the current project (.lpr)
+
* '''LCLWidgetType''' - LCL widgetset of the current project
* ProjPath - the project directory (the directory of the .lpi file)
+
* '''ProjFile''' - the full filename of the main source of the current project (.lpr)
* TargetFile - the output file of the current project (e.g. the executable or the library)
+
* '''ProjPath''' - the project directory (the directory of the .lpi file)
* TestDir - Test directory set in the environment options
+
* '''TargetFile''' - the output file of the current project (e.g. the executable or the library)
* SrcOS - 'unix' for linux, darwin, bsd. 'win' for win32, win64, wince
+
* '''TestDir''' - Test directory set in the environment options
* TargetCPU - Target CPU of the current project
+
* '''SrcOS''' - 'unix' for linux, darwin, bsd. 'win' for win32, win64, wince
* TargetOS - Target OS of the current project
+
* '''TargetCPU''' - Target CPU of the current project
* Make - path to the make utility (gmake under BSD) (since 0.9.29)
+
* '''TargetOS''' - Target OS of the current project
* ProjIncPath - include path of project directory
+
* '''Make''' - path to the make utility (gmake under BSD) (since 0.9.29)
* ProjOutDir - path of project output directory (e.g. where the .ppu files are created) (since 0.9.27)
+
* '''ProjIncPath''' - include path of project directory
* ProjPublishDir - publishing directory of the current project
+
* '''ProjOutDir''' - path of project output directory (e.g. where the .ppu files are created) (since 0.9.27)
* ProjSrcPath - source path of project directory
+
* '''ProjPublishDir''' - publishing directory of the current project
* ProjUnitPath - unit path of project directory
+
* '''ProjSrcPath''' - source path of project directory
* Project() - macro function for various values
+
* '''ProjUnitPath''' - unit path of project directory
** Project(UnitPath) - unit path of project directory
+
* '''Project(param)''' - macro function for various values:
** Project(SrcPath) - source path of project directory
+
** '''Project(UnitPath)''' - unit path of project directory
** Project(IncPath) - include path of project directory
+
** '''Project(SrcPath)''' - source path of project directory
** Project(InfoFile) - filename of the project information file (.lpi) (since r15287, 0.9.25)
+
** '''Project(IncPath)''' - include path of project directory
** Project(OutputDir) - directory where the project's ppu files are created (since 0.9.27)
+
** '''Project(InfoFile)''' - filename of the project information file (.lpi) (since r15287, 0.9.25)
* 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.
+
** '''Project(OutputDir)''' - directory where the project's ppu files are created (since 0.9.27)
** PkgDir() - macro function for the directory (location of the .lpk) of a package ID given as parameter
+
* '''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.
** PkgIncPath() - macro function for the include path of a package ID given as parameter
+
** '''PkgDir()''' - macro function for the directory (location of the .lpk) of a package ID given as parameter
** PkgOutDir() - macro function for the output directory of a package (e.g. where the ppu files are created)
+
** '''PkgIncPath(id)''' - macro function for the include path of a package ID given as parameter
** PkgSrcPath() - macro function for the source path (unit path + src 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)
** PkgUnitPath() - macro function for the unit path of a package ID given as parameter
+
** '''PkgSrcPath(id)''' - macro function for the source path (unit path + src path) of a package ID given as parameter
* IDEBuildOptions - the extra options of the 'Configure Build Lazarus' dialog (since 0.9.29)
+
** '''PkgUnitPath(id)''' - macro function for the unit path of a package ID given as parameter
* PrimaryConfigPath - the directory of the IDE's configuration files (since 0.9.31)
+
* '''IDEBuildOptions''' - the extra options of the 'Configure Build Lazarus' dialog (since 0.9.29)
* SecondaryConfigPath - the directory of the IDE's configuration templates (since 0.9.31)
+
* '''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.
  
 
[[Category:Lazarus]]
 
[[Category:Lazarus]]

Revision as of 15:20, 11 January 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
  • 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
  • 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
  • TargetOS - Target OS of the current project
  • 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)
  • 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.