Saltar al contenido principal
Versión: 20 R7 BETA

Compile project

Compile project {( {archivoProyecto}{;}{opciones} )} -> Resultado

ParámetroTipoDescripción
archivoProyecto4D.FileArchivo .4DProject a compilar
opcionesObjectObjeto que especifica las opciones de compilación
ResultadoObjectObjeto que contiene información sobre el estado de la compilación

Este comando no es hilo seguro, no puede ser utilizado en código apropiativo.

Descripción

Compile project permite compilar el proyecto local actual o el proyecto especificado en el parámetro archivoProyecto. Para más información sobre la compilación, consulte la página de compilación en developer.4d.com.

Por defecto, el comando utiliza las opciones del compilador definidas en los Parámetros de estructura. Puede anularlas pasando un parámetro opciones. Se admiten las siguientes sintaxis:

  • Compile project (): compila el proyecto abierto utilizando las opciones definidas en los parámetros de estructura
  • Compile project (opciones): compila el proyecto abierto. Las opciones definidas reemplazan los parámetros de estructura
  • Compile project (archivoProyecto): compila el 4DProject archivoProyecto utilizando las opciones definidas en los parámetros de estructura
  • Compile project (archivoProyecto; opciones): compila el 4DProject archivoProyecto y las opciones definidas anulan los parámetros de estructura

Nota: las bases de datos binarias no pueden compilarse con este comando.

A diferencia de la ventana del Compilador, este comando requiere que se designe explícitamente el componente o componentes a compilar. Cuando se compila un proyecto con Compile project , es necesario declarar sus componentes utilizando la propiedad components del parámetro opciones. Tenga en cuenta que los componentes deben estar ya compilados (se admiten componentes binarios).

El código compilado resultante se almacenará en la carpeta DerivedData o Librerias del proyecto, dependiendo de la propiedad targets del parámetro opciones. Si desea crear archivos .4dz, deberá comprimir manualmente el proyecto compilado o utilizar la funcionalidad Generar la aplicación.

Si pasa una colección vacía en targets, Compile project ejecutará una comprobación de sintaxis sin compilar.

Los errores de compilación, si los hay, se devuelven como objetos en la colección errores.

Nota: no puede llamar a este comando cuando se está ejecutando otra compilación (por ejemplo, una compilación lanzada desde la ventana Compilación).

Parámetro opciones

El parámetro opciones es un objeto. Estas son las opciones de compilación disponibles:

PropiedadTipoDescripción
componentsColecciónColección de objetos 4D.File para componentes dependientes (deben estar compilados)
targetscolección de cadenasvalores posibles: "x86_64_generic", "arm64_macOS_lib". Pase una colección vacía para ejecutar sólo una verificación de sintaxis
typeInferenceCadena"all": digite todas las variables, "locals": se digitan las proceso e interproceso, "none": se digitan todas las variables
defaultTypeForButtonsEnteroValor posible: Is real o Is longint
defaultTypeForNumericsEnteroValor posible: Is real o Is longint
defaultTypeForButtonsEnteroValor posible: Is real o Is longint
generateSymbolsBooleanoTrue para generar información de símbolos en el objeto devuelto .symbols
generateSyntaxFileBooleanoTrue para generar un archivo de sintaxis para completar código en la carpeta \Resources\en.lproj del proyecto
generateTypingMethodsCadena"reset" o "append" para generar métodos de digitación. Si el valor es "append", las declaraciones de variables existentes no se modificarán (comportamiento de la ventana del compilador). Si el valor es "reset" las declaraciones de variables existentes se eliminan de antemano.
pluginsobjeto 4D.FolderCarpeta plug-ins a utilizar en lugar de la carpeta Plugins del proyecto actual. Esta propiedad sólo está disponible con la sintaxis projectFile.
targetsColección de cadenasValores posibles: "x86_64_generic", "arm64_macOS_lib". Pase una colección vacía para ejecutar sólo la comprobación de sintaxis
typeInferenceCadena"all": digita todas las variables, "locals": se digitan las variables de proceso e interproceso, "none": se digitan todas las variables
warningsColección de objetosDefine el estado de las warnings
[].majorNúmeroNúmero principal del warning, antes del punto
[].minorNúmeroSegundo número del warning, después del punto
[].enabledBooleanoEstado de activación del aviso
Resultado de la función

El objeto devuelto por Compile project tiene hasta tres propiedades:

PropiedadTipoDescripción
successBooleanoTrue si la acción de guardar tiene éxito, False en caso contrario.
Disponible sólo en caso de error o advertencia:
errorsColección de objetoscolección de objetos que describen los errores o advertencias de compilación
isErrorBooleanoError si es True, advertencia en caso contrario
messageCadenaMensaje de error
codeObjetoObjeto code
lineNúmeroNúmero de línea del error en el código. Para los métodos de clase, el número de línea en la función
lineInFileNúmeroNúmero de línea en el archivo (diferente de "línea" para los métodos de clase, y tiene en cuenta la línea del prefijo %attributes)
Disponible sólo si la opción generateSymbols está definida en True:
symbolsObjeto
interprocessVariablesObjetoLista de todas las variables interproceso
variablesColecciónColección de Objetos variable
sizeNúmero
processVariablesObjectLista de todas las variables proceso
variablesColecciónColección de Objetos variable
sizeNúmero
localVariablesColección de objetosLista de variables locales por método
codeObjetoObjeto code
variablesColecciónColección de Objetos variable
methodsColección de objetosLista de métodos
codeObjetoObjeto code
callCountNúmeroNúmero de veces que se ha llamado a este método
paramsColecciónColección de tipos de parámetros (códigos numéricos de tipo de valor)
threadSafeBooleanoIndica si este método es hilo seguro

Para más información, consulte Herramientas de compilación.

Objetos variable

interprocessVariables.variables y processVariables.variables contienen objetos con la siguiente estructura:

PropiedadTipoDescripción
nameCadenaNombre de la variable
typenúmeroTipo de la variable (como el comando Value type)
arrayDimensionnúmeroSólo para arrays: 1 para arrays de una dimensión, 2 para arrays de dos dimensiones
codeObjetoPara las variables proceso e interproceso: descriptor de la ubicación de definición de la variable
Objeto code

La propiedad code en methods[ ].code y errors[ ].code es un objeto con las siguientes propiedades:

PropiedadTipoDescripción
typeCadena"projectMethod", "formObjectMethod", "formmethod","databaseMethod", "triggerMethod", "executeOnServer" (cuando se llama a un método del proyecto con el Atributo Ejecutar en servidor.), "executeFormula" (cuando se ejecuta una fórmula a través de PROCESS 4D TAGS o la evaluación de una fórmula en un documento de 4D Write Pro.), "class", "classFunction"
pathCadenaRuta del método (mismo formato que METHOD OPEN PATH)
file4D.FileArchivo método
Se devuelve en función del valor de propiedad del tipo:
methodNameCadenaMétodo proyecto
tableNúmeroNúmero de tabla (devuelto para un trigger, un método formulario de tabla o un método objeto formulario)
formNameCadenaNombre de formulario (devuelto para un método formulario)
objectNameCadenaNombre del objeto formulario (devuelto para un método objeto)
classNameCadenaNombre de clase
functionNameCadenaNombre de función de clase
databaseMethodNúmeroÍndice del método base

Advertencia

Para realizar una comprobación de sintaxis solamente, pase una colección vacía al parámetro targets:

 var $options;$status : Object
 $options:=New object
 $options.targets:=New collection //Colección vacía para la verificación de sintaxis
 $status:=Compile project($options)

Compila el proyecto actual utilizando únicamente las opciones del compilador de los Parámetros de estructura:

 var $status : Object
 $status:=Compile project

En un Silicon Mac, compila el proyecto actual sólo en ARM:

 var $options;$status : Object
 $options:=New object
 $options.targets:=New collection("arm64_macOS_lib")
 $status:=Compile project($options)

Compila un proyecto distinto al actual:

 var $status : Object
 var $projectFile: 4D.File
 $projectFile:=Folder(fk documents folder).file("Databases/myApp/Project/myApp.4DProject")
 $status:=Compile project($projectFile)

Compila un proyecto y declara su componente:

 var $options;$status : Object
 var $component : 4D.File
 $options:=New object
 $component:=Folder(fk documents folder).file("Components/myComponent.4dz")
 $options.components:=New collection($component)
 $status:=Compile project($options)

Desactiva las advertencias 518.1 y 518.2 al compilar su proyecto:

var $options:={}
$options.warnings:=[]
$options.warnings.push({major: 518; minor: 1; enabled: False})
$options.warnings.push({major: 518; minor: 2; enabled: False})
var $result:=Compile project($options)

Ver también

BUILD APPLICATION