Saltar al contenido principal
Versión: 20 R9 BETA

Compile project

Compile project {( {projectFile}{;}{options} )} : Object

ParámetrosTipoDescripción
projectFile4D.FileArchivo .4DProject a compilar
optionsObjectObjeto que especifica las opciones de compilación
ResultadoObjectObjeto que contiene información sobre el estado de la compilación
Historia
LanzamientoModificaciones
20 R8Soporte del "type" "formObjectExpression"

Descripción

Compilar proyecto le permite compilar el proyecto host actual o el proyecto especificado en el parámetro projectFile. Para más información sobre compilación, consulte la página de compilación.

De forma predeterminada, el comando utiliza las opciones del compilador definidas en los parámetros de estructura. Puede sobreescribirlas pasando un parámetro options. Se soportan las siguientes sintaxis:

  • Compile project(): compila el proyecto abierto utilizando las opciones definidas en los parámetros de estructura
  • Compile project(options): compila el proyecto abierto. Las options definidas reemplazan los parámetros de la estructura
  • Compile project(projectFile): compila el proyecto 4D projectFile usando las opciones definidas en los parámetros de estructura
  • Compile project(projectFile; options): compila el proyecto 4D projectFile y las opciones definidas reemplazan 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 usted designe explícitamente el(los) componente(s) a compilar. Al compilar un proyecto con Compile project, necesita declarar sus componentes usando la propiedad components del parámetro options. Tenga en cuenta que los componentes ya deben ser compilados (los componentes binarios están soportados).

El código compilado resultante se almacenará en la carpeta DerivedData o Libraries del proyecto, dependiendo de la propiedad targets del parámetro options. Si quiere crear archivos .4dz, todavía necesita comprimir manualmente el proyecto compilado o usar la funcionalidad build application.

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 errors.

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

Parámetro options

El parámetro options es un objeto. Aquí están las opciones de compilación disponibles:

PropiedadTipoDescription
componentsCollectionColección de objetos 4D.File a componentes dependientes (debe estar ya compilado)
defaultTypeForButtonsIntegerValor posible: Is real o Is longint
defaultTypeForNumericsIntegerValor posible: Is real o Is longint
generateSymbolsBooleanTrue para generar información de símbolos en el objeto devuelto
generateSyntaxFileBooleanTrue para generar un archivo de sintaxis para la finalización del código en la carpeta \Resources\en.lproj del proyecto
generateTypingMethodsText"reset" o "append" para generar métodos de tipado. Si el valor es "append", las declaraciones de variables existentes no serán modificadas (comportamiento de la ventana del compilador). Si el valor es "reset" las declaraciones de variables existentes se eliminan de antemano.
pluginsObjeto 4D.FolderCarpeta de Plug-ins a usar en lugar de Carpeta de Plug-ins del proyecto actual. Esta propiedad solo 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 verificación de sintaxis
typeInferenceText"all": el compilador deduce los tipos de todas las variables no declaradas explícitamente, "locals": el compilador deduce los tipos de variables locales no declaradas explícitamente, "none": todas las variables deben ser explícitamente declaradas en el código (modo antiguo), "direct": todas las variables deben ser explícitamente declaradas en el código (escritura directa).
warningsColección de objetosDefine el estado de las advertencias
[].majorNumberNúmero principal del warning, antes del punto
[].minorNumberNúmero secundario de warning, después del punto
[].enabledBooleanEstado de activación del warning

Nota: cuando el atributo warnings no está definido en el objeto options, el comando Compile project utiliza los estados de generación de warnings por defecto definidos en los parámetros.

Resultado

El objeto devuelto por Compile project tiene hasta tres propiedades:

PropiedadTipoDescription
successBooleanTrue si la acción guardar tiene éxito, false en caso contrario.
errorsColección de objetosDisponible solo en caso de error o de warning. Colección de objetos que describen errores de compilación o warnings
[].isErrorBooleanError si es True, sino warning
[].messageTextMensaje de error
[].codeObjectobjeto código
[].lineNumberNúmero de línea del error en el código. Para métodos de clase, el número de línea en la función
[].lineInFileNumberNúmero de línea en el archivo (diferente de "line" para los métodos de clase, y tiene en cuenta la línea de prefijo %attributes)
symbolsObjectDisponible sólo si la opción generateSymbols es True:
symbols.interprocessVariablesObjectLista de todas las variables interproceso
symbols.interprocessVariables.variablesCollectionColección de objetos variables
symbols.interprocessVariables.sizeNumber
symbols.processVariablesObjectLista de todas las variables proceso
symbols.processVariables.variablesCollectionColección de objetos variables
symbols.processVariables.sizeNumber
symbols.localVariablesColección de objetosLista de variables locales por método
symbols.localVariables[].codeObjectobjeto código
symbols.localVariables[].variablesCollectionColección de objetos variables
symbols.methodsColección de objetosLista de métodos
symbols.methods[].codeObjectobjeto código
symbols.methods[].callCountNumberNúmero de veces que se ha llamado a este método
symbols.methods[].paramsCollectionColección de tipos de parámetros (Códigos numéricos de tipos de valores)
symbols.methods[]. threadSafeBooleanIndica si este método es hilo seguro

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

Objetos variables

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

PropiedadTipoDescription
nameTextNombre de la variable
typenumberTipo de la variable (como el comando Value type)
arrayDimensionnumberSolo para arrays: 1 para los arrays mono dimensionales, 2 para los arrays bidimensionales
codeObjectPara las variables proceso e interproceso: descripción de donde se ha definido la variable

Objeto code

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

PropiedadTipoDescription
typeText"projectMethod", "formObjectMethod", "formMethod", "databaseMethod", "triggerMethod", "executeOnServer" (al llamar a un método proyecto con el atributo Execute on Server), "executeFormula" (al ejecutar una fórmula a través de PROCESS 4D TAGS o de la evaluación de una fórmula en un documento 4D Write Pro), "class", "classFunction", "formObjectExpression" (para errores ocurridos en expresiones asociadas a objetos formulario)
pathTextRuta del método (mismo formato que METHOD OPEN PATH)
file4D.FileArchivo de método
Devuelto dependiendo del valor de la propiedad type:
methodNameTextMétodos proyecto
tablaNumberNúmero de la tabla (retornado para un trigger, un método formulario tabla o un método objeto de formulario tabla)
formNameTextNombre del formulario (devuelto para un método de formulario)
objectNameTextNombre del objeto del formulario (devuelto para un método objeto)
propertyNameTextNombre de la propiedad objeto de formulario (devuelto para una expresión de objeto del formulario)
classNameTextNombre de la clase
functionNameTextNombre de la función de clase
databaseMethodNumberÍndice de método base

Ejemplos

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

 var $status : Objeto
var $options:={}
$options.targets:=New collection //Colección vacía para verificación de sintaxis
$status:=Compile project($options)

Compila el proyecto actual utilizando las opciones de compilación de la configuración de la estructura solamente:

 var $status : Object
$status:=Compile project

En un Silicon Mac, compile el proyecto actual sólo para ARM:

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

Compilar un proyecto distinto al proyecto actual:

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

Compilar un proyecto y declarar su componente:

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

Disable warnings 518.1 and 518.2 when compiling your project:

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

Propiedades

Número de comando1760
Hilo seguro