Sign in Join
Wiki copytemporary

IDE Macros in paths and filenames/es: what changed

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

Title: IDE Macros in paths and filenames/es

OldNewLine
1+## Tipos de Macros
2+
3+Hay varios tipos de macros:
4+
5+- **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.
6+- **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.
7+- **FPC macros**: se especifican p.e. vía código como {\$define MYFPCMACRO:=42}. Un ejemplo de macro predefinico es FPC_FULLVERSION.
8+- **Build macros**: son macros IDE con un alcance limitado. Se definen por proyectos y paquetes y se usan mayúsculas y minúsculas.
9+- Algunos plugins del IDE tienen sus propios macros.
10+
11+   Las macros IDE se usan mediante el siguiente formato. Reemplace la parte *nombre-macro* con una de las macros enumeradas más abajo.
12+
13+` $(nombre-macro)`
14+
15+   Por ejemplo: Este directorio de salida de la unidad (-FU) es utilizado en los paquetes Lazarus:
16+
17+` lib/$(TargetCPU)-$(TargetOS)`
18+
19+   que en un sistema Linux x86 32 bits equivaldría a: **lib/i386-linux**\
20+   que en un sistema Linux x86 64 bits equivaldría a: **lib/x86_64-linux**
21+
22+   También hay algunas **funciones macro** que utilizan el formato siguiente:
23+
24+` $nombre_macro(parámetros)`
25+
26+   Por ejemplo
27+
28+` $Ext(unidad1.pas)`
29+
30+   devolverá *.pas*.
31+
32+***Windows:*** Compilar a un disco RAM (R:) donde cada proyecto tenga su propio directorio de unidad (Proyecto \> Opciones \> Directorio de Salida de Unidad)
33+
34+` R:\FPC\$NameOnly($(ProjFile))`
35+
36+***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/**''
37+
38+`$NameOnly($(ProjFile))-$(TargetCPU).app/Contents/MacOS/$NameOnly($(ProjFile))-$(TargetCPU)`
39+
40+## Propósito General
41+
42+- **Col** - columna actual en el editor de código fuente
43+- **Row** - línea actual en el editor de código fuente
44+- **CurToken** - símbolo actual en el cursor en el editor de código fuente
45+- **EdFile** - nombre de archivo del actual en el editor de código fuente
46+- **Params** - parámetros de ejecución del proyecto actual
47+- **Prompt** - solicitar al usuario un valor. Se trata de una macro interactiva.
48+- **RunCmdLine** - el comando para lanzar el proyecto
49+- **Save** - guardar archivo actual del editor de código fuente
50+- **SaveAll** - guardar todo
51+- **TargetCmdLine** - el proyecto ejecutable y los parámetros de ejecución
52+
53+## Partes de Nombre de Archivo
54+
55+- **Ext(nombreArchivo)** - función macro para ExtractFileExt
56+- **MakeDir(nombreArchivo)** - función macro para AppendPathDelim
57+- **MakeFile(nombreArchivo)** - función macro para ChompPathDelim
58+- **MakeExe(nombreArchivo)** - añade .exe en Windows, nada en Linux, BSD, OS X
59+- **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)
60+- **Name(nombreArchivo)** - función macro para ExtractFileName
61+- **NameOnly(nombreArchivo)** - función macro para ExtractFileNameOnly
62+- **Path(nombreArchivo)** - función macro para ExtractFilePath
63+
64+## Rutas y sus componentes
65+
66+- **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)
67+- **CompPath** - la ruta del compilador en las opciones de entorno del IDE
68+- **ConfDir** - directorio donde el IDE almacena sus archivos de configuración
69+- **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()
70+- **FPCSrcDir** - el directorio de las fuentes de FPC en las opciones de entorno del IDE
71+- **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.
72+- **FPCMsgFile** - archivo de mensajes del compilador según las opciones de entorno(since 0.9.31).
73+- **InstantFPCCache** - ruta a instantfpccache. Salida de la ejecución de instantfpc --get-cache (since 0.9.31).
74+- **LanguageID** - idioma del IDE, por ejemplo, 'en' para Inglés, 'de' para alemán
75+- **LanguageName** - nombre del idioma del IDE, el nombre traducido de la lengua actual. Por ejemplo: Deutsch para alemán.
76+- **LazarusDir** - el directorio de las fuentes de Lazarus en las opciones de entorno del IDE
77+- **LCLWidgetType** - los artilugios gráficos LCL del proyecto actual
78+- **ProjFile** - el nombre completo de la fuente principal del proyecto actual (.lpr)
79+- **ProjPath** - la ruta del directorio del proyecto (el directorio del archivo .lpi)
80+- **TargetFile** - el archivo de resultados del proyecto actual (por ejemplo, el ejecutable o la librería)
81+- **TestDir**- directorio de pruebas establecido en las opciones de entorno del IDE
82+- **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.
83+ - **\$(PkgName)** - en un paquete da su nombre (desde 0.9.31)
84+ - **\$PkgName(id)** - función macro para el nombre del paquete para el id pasa como parámetro (desde 0.9.31)
85+ - **\$(PkgDir)** - macro para el directorio (ubicación del .lpk) del paquete
86+ - **\$PkgDir(id)** - función macro para el directorio (ubicación de la lpk.) del ID de paquete pasado como parámetro
87+ - **\$PkgIncPath(id)** - función macro para la ruta de inclusión del ID de paquete pasado como parámetro
88+ - **\$PkgOutDir(id)** - Función macro para el directorio de salida de un paquete (por ejemplo, donde se crean los archivos .ppu)
89+ - **\$PkgSrcPath(id)** - Función macro para la ruta de origen del ID de paquete pasado como parámetro
90+ - **\$PkgUnitPath(id)** - función macro para la ruta de la unidad del ID de paquete pasado como parámetro
91+- **Project(parámetro)** - función macro para varios valores
92+ - **Project(UnitPath)** - ruta del directorio de unidades del proyecto
93+ - **Project(SrcPath)** - ruta del directorio de fuentes del proyecto
94+ - **Project(IncPath)** - ruta de directorios de inclusión del proyecto
95+ - **Project(InfoFile)** - el nombre del archivo de información del proyecto (.lpi) (desde r15287, 0.9.25)
96+ - **Project(OutputDir)** - directorio donde los archivos .ppu del proyecto se crean (desde 0.9.27)
97+- **ProjIncPath** - ruta de directorios de inclusión del proyecto
98+- **ProjOutDir** - ruta del directorio de salida del proyecto(por ejemplo, donde se crean los archivos .ppu) (desde 0.9.27)
99+- **ProjPublishDir** - directorio de publicación del proyecto actual
100+- **ProjSrcPath** - ruta del directorio de fuentes del proyecto
101+- **ProjUnitPath** - ruta del directorio de unidades del proyecto
102+- **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.
103+- **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.
104+- **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.
105+- **Make** - ruta de acceso a la utilidad make (gmake en BSD) (desde 0.9.29)
106+- **IDEBuildOptions** - opciones adicionales del diálogo *Configurar "Construir Lazarus"* (desde el 0.9.29)
107+- **LCLWidgetType** - tipo de LCL widget del proyecto actual. En Makefile: %(LCL_PLATFORM)
108+- **IDEBuildOptions** - opciones extras del diálogo 'Configurar Construcción de Lazarus' (desde 0.9.29). En Makefile vacío.
109+- **PrimaryConfigPath** - ruta del directorio de los archivos de configuración del IDE (desde 0.9.31)
110+- **SecondaryConfigPath** - directorio de las plantillas de configuración del IDE (desde 0.9.31)
111+- **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.
112+
113+---
114+*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).*
115+Category: Castellano
116+Category: Español
117+Category: IDE Macros/es
118+Category: Lazarus/es

Back to history