Saltar para o conteúdo principal
Versão: 20 R7 BETA

Compile project

Compile project {( {arquivoProjeto}{;}{opções} )} : Object

ParâmetroTipoDescrição
arquivoProjeto4D.FileArquivo .4DProject a compilar
opçõesObjectObjeto que especifica opções de compilação
ResultadoObjectObjeto que contém informação do status da compilação

Descrição

Compile project permite compialr o projeto do host atual ou o projeto especificado no parâmetro projectFile. Para saber mais sobre compilação, veja a página de compilação em developer.4d.com.

Como padrão, o comando usa as opções de compilador definidas nas Configurações de Estrutura. Pode ignorá-las usando o parâmetro options. As sintaxes abaixo são permitidas:

  • Compile project (): compila o projeto aberto usando as opções definidas na Configurações de Estrutura
  • Compile project (options): compila o projeto aberto. As options definidas ignoram as Configurações de Estrutura
  • Compile project (projectFile): compila projectFile 4DProject usando as opções definidas nas Configurações de Estrutura
  • Compile project (projectFile; options): compila o projectFile 4DProject e as opções definidas ignoram as Configurações de Estrutura

Nota: Bancos de dados binários não podem ser compilados usando esse comando.

Diferente da janela do Compilador, esse comando precisa que determine explicitamente os componentes a compilar. Quando compilar um projeto com Compile project , precisa declarar seus componentes usando a propriedade componentes do parâmetro options. Lembre que os componentes já devem estar compilados (componentes binários são permitidos).

O modo resultante compilado será armazenado na pasta DerivedData ou Libraries do projeto, dependendo da propriedade targets/alvos do parâmetro options. Se quiser criar arquivos .4dz, ainda precisa zipar/comprimir manualmente o projeto compilado ou usa a funcionalidade build application.

Se passar uma coleção vazia em targets, Compile project executa uma checagem de sintaxe sem compilar.

Erros de compilação, se houverem, serão retornadas como objetos na coleção erros.

Nota: não se pode chamar esse comando quando outra compilação estiver rodando (por exemplo uma compilação lançada na janela Compilation).

Parâmetro options

O parâmetro options é um objeto. As opções de compilação disponíveis estão abaixo:

PropriedadeTipoDescrição
componentsColecciónColeção de objetos 4D.File para componentes dependentes (devem estar compilados)
targetscollection of stringsValores possíveis: "x86_64_generic", "arm64_macOS_lib". Passe uma coleção vazia para executar apenas checagem de sintaxe
typeInferenceText"all": Digite todas as variáveis, "locals": Processo e interprocesso são digitadas, "none": Todas as variáveis são digitadas
defaultTypeForNumericsIntegerValor possível: Is real ou Is longint
defaultTypeForButtonsIntegerValor possível: Is real ou Is longint
generateSymbolsBooleanTrue para gerar informação de simbolo no objeto retornado .symbol[#tab/
generateSyntaxFileBooleanTrue para gerar um arquivo de sintaxe para completar código na pasta \Resources\en.lproj do projeto
generateTypingMethodsTextReseta ou anexa para gerar métodos digitação. Se valor for "append"/anexar, declarações de variável existentes ão são modificadas (comportamento janela de compilador)
pluginsObjeto 4D.FolderPasta Plug-ins a ser usada em vez da pasta Plugins do projeto atual. Essa propriedade só está disponível com a sintaxe projectFile.
targetsColeção de stringsValores possíveis: "x86_64_generic", "arm64_macOS_lib". Passe uma coleção vazia para executar apenas checagem de sintaxe
typeInferenceText"all": Digita todas as variáveis, "locals": Processo e interprocesso são digitadas, "none": Todas as variáveis são digitadas
Resultado da função

O objeto retornado por Compile project tem três propriedades:

PropriedadeTipoDescrição
successBooleanTrue se a ação salvar tiver sucesso. Senão False.
Disponível só em caso de erro ou aviso:
errorsCollection of objectscoleção de objetos descrevendo avisos ou erros de compilação
isErrorBooleanErro se True, senão um aviso
messageTextMensagem de erro
codeObjectObjeto code
lineNumberNúmero de linha de erro no código. Para métodos de classe, número de linha na função
lineInFileNumberNúmero linha no arquivo (diferente de métodos classe "line" , e leva em consideração os %attributes linha prefixo)
Disponível só se a opção generateSymbols for estabelecida como True:
symbolsObject
interprocessVariablesObjectLista de todas as variáveis interprocesso
variablesCollectionColeção de Objetos variable
sizeNumber
processVariablesObjectLista de todos as variáveis processo
variablesCollectionColeção de Objetos variable
sizeNumber
localVariablesColeção de objetosLista de variáveis locais por método
codeObjectObjeto code
variablesCollectionColeção de Objetos variable
methodsColeção de objetosLista de métodos
codeObjectObjeto code
callCountNumberNúmero de vezes que esse método foi chamado
paramsCollectionColeção de tipos parâmetros (Códigos númericos de tipo valor)
threadSafeBooleanIndica se este método é thread safe

Para saber mais, veja Compilation tools.

Objetos variable

Tanto interprocessVariables.variables quanto processVariables.variables contém objetos com as estruturas abaixo:

PropriedadeTipoDescrição
nameTextNome da variável
typenumberTtipo da variável (como comando tipo Value)
arrayDimensionnumberApenas para arrays: 1 para arrays dimensão mono, 2 para arrays duas dimensões
codeObjectPara variáveis processos e interprocessos: descripitor de onde a variável foi definida
Objeto code

a propriedade code em methods[ ].code e errors[ ].code é um objeto com as propriedades abaixo:

PropriedadeTipoDescrição
typeText"projectMethod", "formObjectMethod", "formmethod","databaseMethod", "triggerMethod", "executeOnServer" (when calling a project method with the Executar no atributo servidor.), "executeFormula" (when executing a formula via PROCESS 4D TAGS or the evaluation of a formula in a 4D Write Pro document.), "class", "classFunction"
pathTextRota método (mesmo formato que METHOD OPEN PATH)
file4D.FileArquivo de método
Retornado dependendo do valor da propriedade tipo:
methodNameTextmétodo projeto
tableNumberNúmero da tabela (retornado para um trigger, um método formulário tabela ou método objeto formulário tabela)
formNameTextnome formulário (retornado para um método formulário)
objectNameTextNome objeto formulário (retornado para um método objeto)
classNameTextClass name
functionNameTextnome função Class
databaseMethodNumberíndice método de Database

Advertência

Para fazer uma checagem de sintaxe apenas, passe uma coleção vazia aos parâmetros alvos:

 var $options;$status : Object
 $options:=New object
 $options.targets:=New collection //Coleção vazia para checar sintaxe
 $status:=Compile project($options)

Compilar o projeto atual usando as opções compilador da Configuração Estrutura apenas:

 var $status : Object
 $status:=Compile project

Em um Silicon Mac, compile o projeto atual para apenas ARM:

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

Compilar um projeto outro que o projeto atual :

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

Compile um projeto e declare seus componentes:

 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)

Ver também

BUILD APPLICATION

Propriedades

Número do comando1760
Thread-seguro