Sign in Join
Wiki copytemporary

IDE Macros in paths and filenames/es: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11## Tipos de Macros
22
33Hay varios tipos de macros:
44
55- **IDE macros**: pueden usarse en casi todos los campos del IDE, e.g. rutas de búsqueda, opciones personalizadas, nombres de archivos, parámetros de ejecución. Se reemplazan con sus valores antes de llamar herramientas externas tal como el compilador o el depurador. Se puede usar mayúsculas y minúsculas.
66- **FPC symbols**: son definidos (on) o indefinidos (off). Se pasan via la opción de línea de comando **-d**, la cual puede escogerse bajo *Opciones de Compilador / Opciones Personalizadas*. Por ejemplo, *-dDEBUG -dVerbose* definirá los símbolos DEBUG y Verbose, así que puede usar *{\$IFDEF Debug}*. Puede usarse mayúsculas y minúsculas.
77- **FPC macros**: se especifican p.e. vía código como {\$define MYFPCMACRO:=42}. Un ejemplo de macro predefinico es FPC_FULLVERSION.
88- **Build macros**: son macros IDE con un alcance limitado. Se definen por proyectos y paquetes y se usan mayúsculas y minúsculas.
99- Algunos plugins del IDE tienen sus propios macros.
1010
1111   Las macros IDE se usan mediante el siguiente formato. Reemplace la parte *nombre-macro* con una de las macros enumeradas más abajo.
1212
13-` $(nombre-macro)`
13+```text
14+ $(nombre-macro)
15+```
1416
1517   Por ejemplo: Este directorio de salida de la unidad (-FU) es utilizado en los paquetes Lazarus:
1618
17-` lib/$(TargetCPU)-$(TargetOS)`
19+```text
20+ lib/$(TargetCPU)-$(TargetOS)
21+```
1822
1923   que en un sistema Linux x86 32 bits equivaldría a: **lib/i386-linux**\
2024   que en un sistema Linux x86 64 bits equivaldría a: **lib/x86_64-linux**
2125
2226   También hay algunas **funciones macro** que utilizan el formato siguiente:
2327
24-` $nombre_macro(parámetros)`
28+```text
29+ $nombre_macro(parámetros)
30+```
2531
2632   Por ejemplo
2733
28-` $Ext(unidad1.pas)`
34+```text
35+ $Ext(unidad1.pas)
36+```
2937
3038   devolverá *.pas*.
3139
3240***Windows:*** Compilar a un disco RAM (R:) donde cada proyecto tenga su propio directorio de unidad (Proyecto \> Opciones \> Directorio de Salida de Unidad)
3341
34-` R:\FPC\$NameOnly($(ProjFile))`
42+```text
43+ R:\FPC\$NameOnly($(ProjFile))
44+```
3545
3646***MacOS:*** Un ejemplo más complejo pero muy útil, es cuando quiera compilar un archivo por su nombre ***\$NameOnly(\$(ProjFile))*** en una plataforma específica ***-\$(TargetCPU)**'' guardando el ejecutable en la ruta del paquete***.app/Contents/MacOS/**''
3747
38-`$NameOnly($(ProjFile))-$(TargetCPU).app/Contents/MacOS/$NameOnly($(ProjFile))-$(TargetCPU)`
48+```text
49+$NameOnly($(ProjFile))-$(TargetCPU).app/Contents/MacOS/$NameOnly($(ProjFile))-$(TargetCPU)
50+```
3951
4052## Propósito General
4153
4254- **Col** - columna actual en el editor de código fuente
4355- **Row** - línea actual en el editor de código fuente
4456- **CurToken** - símbolo actual en el cursor en el editor de código fuente
4557- **EdFile** - nombre de archivo del actual en el editor de código fuente
4658- **Params** - parámetros de ejecución del proyecto actual
4759- **Prompt** - solicitar al usuario un valor. Se trata de una macro interactiva.
4860- **RunCmdLine** - el comando para lanzar el proyecto
4961- **Save** - guardar archivo actual del editor de código fuente
5062- **SaveAll** - guardar todo
5163- **TargetCmdLine** - el proyecto ejecutable y los parámetros de ejecución
5264
5365## Partes de Nombre de Archivo
5466
5567- **Ext(nombreArchivo)** - función macro para ExtractFileExt
5668- **MakeDir(nombreArchivo)** - función macro para AppendPathDelim
5769- **MakeFile(nombreArchivo)** - función macro para ChompPathDelim
5870- **MakeExe(nombreArchivo)** - añade .exe en Windows, nada en Linux, BSD, OS X
5971- **MakeLib(nombreArchivo)** - cambia la extensión a .dll en Windows, en Linux/BSD la cambia a libname.so, en OS X a libname.so (since 0.9.29)
6072- **Name(nombreArchivo)** - función macro para ExtractFileName
6173- **NameOnly(nombreArchivo)** - función macro para ExtractFileNameOnly
6274- **Path(nombreArchivo)** - función macro para ExtractFilePath
6375
6476## Rutas y sus componentes
6577
6678- **Env(nombre)** - función macro para las variables de entorno dado a la IDE (no proyecto ni depurador) (ver [GetEnvironmentVariableUTF8](http://lazarus-ccr.sourceforge.net/docs/lcl/fileutil/getenvironmentvariableutf8.html)) (desde 0.9.27)
6779- **CompPath** - la ruta del compilador en las opciones de entorno del IDE
6880- **ConfDir** - directorio donde el IDE almacena sus archivos de configuración
6981- **ExeExt** - extensión de archivo ejecutable para el sistema de trabajo, independiente del sistema operativo objetivo del proyecto. Para extraer la extensión para el SO objetivo utilizar \$MakeExe()
7082- **FPCSrcDir** - el directorio de las fuentes de FPC en las opciones de entorno del IDE
7183- **FPCVer** - versión de FPC (desde 0.9.25). Por ejemplo '2.2.2'. Esta versión se obtiene del compilador \$(CompPath), ruta que configura en las opciones de entorno del IDE.
7284- **FPCMsgFile** - archivo de mensajes del compilador según las opciones de entorno(since 0.9.31).
7385- **InstantFPCCache** - ruta a instantfpccache. Salida de la ejecución de instantfpc --get-cache (since 0.9.31).
7486- **LanguageID** - idioma del IDE, por ejemplo, 'en' para Inglés, 'de' para alemán
7587- **LanguageName** - nombre del idioma del IDE, el nombre traducido de la lengua actual. Por ejemplo: Deutsch para alemán.
7688- **LazarusDir** - el directorio de las fuentes de Lazarus en las opciones de entorno del IDE
7789- **LCLWidgetType** - los artilugios gráficos LCL del proyecto actual
7890- **ProjFile** - el nombre completo de la fuente principal del proyecto actual (.lpr)
7991- **ProjPath** - la ruta del directorio del proyecto (el directorio del archivo .lpi)
8092- **TargetFile** - el archivo de resultados del proyecto actual (por ejemplo, el ejecutable o la librería)
8193- **TestDir**- directorio de pruebas establecido en las opciones de entorno del IDE
8294- **Macros de paquete** - estas pueden ser usadas en los campos de un paquete. Por ejemplo, en las rutas de búsqueda de un paquete. Para usarlos en otros lugares será necesario dar un nombre de paquete como parámetro.
8395 - **\$(PkgName)** - en un paquete da su nombre (desde 0.9.31)
8496 - **\$PkgName(id)** - función macro para el nombre del paquete para el id pasa como parámetro (desde 0.9.31)
8597 - **\$(PkgDir)** - macro para el directorio (ubicación del .lpk) del paquete
8698 - **\$PkgDir(id)** - función macro para el directorio (ubicación de la lpk.) del ID de paquete pasado como parámetro
8799 - **\$PkgIncPath(id)** - función macro para la ruta de inclusión del ID de paquete pasado como parámetro
88100 - **\$PkgOutDir(id)** - Función macro para el directorio de salida de un paquete (por ejemplo, donde se crean los archivos .ppu)
89101 - **\$PkgSrcPath(id)** - Función macro para la ruta de origen del ID de paquete pasado como parámetro
90102 - **\$PkgUnitPath(id)** - función macro para la ruta de la unidad del ID de paquete pasado como parámetro
91103- **Project(parámetro)** - función macro para varios valores
92104 - **Project(UnitPath)** - ruta del directorio de unidades del proyecto
93105 - **Project(SrcPath)** - ruta del directorio de fuentes del proyecto
94106 - **Project(IncPath)** - ruta de directorios de inclusión del proyecto
95107 - **Project(InfoFile)** - el nombre del archivo de información del proyecto (.lpi) (desde r15287, 0.9.25)
96108 - **Project(OutputDir)** - directorio donde los archivos .ppu del proyecto se crean (desde 0.9.27)
97109- **ProjIncPath** - ruta de directorios de inclusión del proyecto
98110- **ProjOutDir** - ruta del directorio de salida del proyecto(por ejemplo, donde se crean los archivos .ppu) (desde 0.9.27)
99111- **ProjPublishDir** - directorio de publicación del proyecto actual
100112- **ProjSrcPath** - ruta del directorio de fuentes del proyecto
101113- **ProjUnitPath** - ruta del directorio de unidades del proyecto
102114- **SrcOS** - 'unix' para linux, darwin, bsd. 'win' para win32, win64, wince. Desde 0.9.31: Usa \$SrcOS(SomeOS) para obtener el SrcOS de un SO específico, por ejemplo \$SrcOS(\$TargetOS(IDE)) para obtener el SrcOS del ejecutable del IDE.
103115- **TargetCPU** - CPU objetivo del proyecto actual. En Makefile: %(CPU_TARGET). desde 0.9.31: Usa \$TargetCPU(IDE) para obtener la CPU del ejecutable del IDE.
104116- **TargetOS** - OS objetivo del proyecto actual. En Makefile: %(OS_TARGET). desde 0.9.31: Usa \$TargetOS(IDE) para obtener el SO del ejecutable del IDE.
105117- **Make** - ruta de acceso a la utilidad make (gmake en BSD) (desde 0.9.29)
106118- **IDEBuildOptions** - opciones adicionales del diálogo *Configurar "Construir Lazarus"* (desde el 0.9.29)
107119- **LCLWidgetType** - tipo de LCL widget del proyecto actual. En Makefile: %(LCL_PLATFORM)
108120- **IDEBuildOptions** - opciones extras del diálogo 'Configurar Construcción de Lazarus' (desde 0.9.29). En Makefile vacío.
109121- **PrimaryConfigPath** - ruta del directorio de los archivos de configuración del IDE (desde 0.9.31)
110122- **SecondaryConfigPath** - directorio de las plantillas de configuración del IDE (desde 0.9.31)
111123- **FallbackOutputRoot** - directorio donde el IDE pondrś los archivos ppu si no se puede escribir en el directorio de salida del paquete. Predeterminado: \$(PrimaryConfigPath)/lib. Desde 0.9.31.
112124
113125---
114126*From the Free Pascal wiki, page "IDE Macros in paths and filenames/es", as it stood on 2023-02-22 after a change by Edgardager, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
115127Category: Castellano
116128Category: Español
117129Category: IDE Macros/es
118130Category: Lazarus/es

Back to history