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

Compile project

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

ParâmetroTipoDescrição
projectFile4D. FileArquivo .4DProject para compilar
optionsObjectObjeto que especifica as opções de compilação
ResultadoObjectObjeto contendo informações sobre o estado de compilação
História
ReleaseMudanças
20 R8Suporte do type "formObjectExpression"

Descrição

Compile project permite que você compile o projeto host atual ou o projeto especificado no parâmetro projectFile. Para obter mais informações sobre a compilação, verifique a página de compilação.

Por padrão, o comando usa as opções do compilador definidas nas Configurações da estrutura. Você pode substituí-los passando um parâmetro options. As seguintes sintaxes são suportadas:

  • Compile project(): compila o projeto aberto usando as opções definidas nas Configurações da Estrutura
  • Compile project(options): compila o projeto aberto. As options definidas substituem os parâmetros de estrutura
  • Compile project(projectFile): compila o projeto 4D projectFile usando as opções definidas nas parâmetros de estrutura
  • Compile project(projectFile; options): compila o projeto 4D projectFile e as options definidas substituem os parâmetros de estrutura

Nota: Os bancos de dados binários não podem ser compilados usando este comando.

Ao contrário da janela do Compilador, esse comando requer que você designe explicitamente o(s) componente(s) para compilar. Ao compilar um projeto com Compilar projeto, você precisa declarar seus componentes usando a propriedade components do parâmetro options. Tenha em mente que os componentes já devem ser compilados (componentes binários são suportados).

O código compilado resultante será armazenado na pasta DerivedData ou Bibliotecas do projeto, dependendo da propriedade targets do parâmetro options. Se você quiser criar arquivos .4dz, ainda será necessário compactar manualmente o projeto compilado ou usar o recurso build application.

Se você passar uma coleção vazia em targets, Compilar projeto executará uma verificação de sintaxe sem compilação.

Erros de compilação, se houver, são retornados como objetos na coleção de erros.

Nota: Você não pode chamar este comando quando outra compilação está sendo executada (por exemplo, uma compilação lançada a partir da janela de Compilação).

Parâmetro options

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

PropriedadeTipoDescription
componentsCollectionColeção de objetos 4D.File para componentes dependentes (deve já estar compilado)
defaultTypeForButtonsIntegerValor possível: é real ou longa
defaultTypeForNumericsIntegerValor possível: é real ou longa
generateSymbolsParâmetrosVerdadeiro para gerar informações de símbolo no objeto .sycharacters retornado
generateSyntaxFileParâmetrosVerdadeiro para gerar um arquivo de sintaxe para conclusão do código.md#generate-syntax-for-code-completion-when-compiled) na \Resouras\en.lproj pasta do projeto
generateTypingMethodsText"redefinir" ou "acrescentar" para gerar métodos de digitação. Se o valor for "acrescentar", declarações variáveis existentes não serão modificadas (comportamento da janela do compilador). Se o valor for "redefinir" as declarações de variáveis existentes são removidas previamente.
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 a verificação de sintaxe apenas
typeInferenceText"all": O compilador deduz os tipos de todas as variáveis não declaradas explicitamente, "locals": O compilador deduz os tipos de variáveis locais não declaradas explicitamente, "none": Todas as variáveis devem ser declaradas explicitamente no código (modo legado), "direct": Todas as variáveis devem ser declaradas explicitamente no código (digitação direta).
warningsUma coleção de objetosDefine o estado dos avisos
[].majorNumberAviso de número principal, antes do ponto
[].minorNumberAviso de segundo número, após o ponto
[].enabledParâmetrosAviso de ativação

Nota: Quando o atributo warnings não está definido no objeto options, o comando Compilar o projeto usa os status padrão de geração de advertências definidos nas configurações.

Resultado

O objeto retornado pelo projeto Compilar possui até três propriedades:

PropriedadeTipoDescription
successParâmetrosTrue se a ação salvar tiver sucesso, senão False
errorsUma coleção de objetosDisponível apenas em caso de erro ou aviso. Coleção de objetos que descrevem erros de compilação ou avisos
[].isErrorParâmetrosErro se Verdadeiro, aviso caso contrário
[].messageTextMensagem de erro
[].codeObjectobjeto código
[].lineNumberNúmero de erro da linha no código. Para métodos de classe, o número de linha na função
[].lineInFileNumberNúmero da linha no arquivo (diferente de "linha" para métodos de classe, e leva em conta a linha de prefixo %attribuções)
symbolsObjectDisponível apenas se a opção generateSymbols estiver definida como Verdade:
symbols.interprocessVariablesObjectLista de todas as variáveis de interprocesso
symbols.interprocessVariables.variablesCollectionColeção de objetos variáveis
symbols.interprocessVariables.sizeNumber
symbols.processVariablesObjectLista de todas as variáveis de processo
symbols.processVariables.variablesCollectionColeção de objetos variáveis
symbols.processVariables.sizeNumber
symbols.localVariablesUma coleção de objetosLista de variáveis locais por método
symbols.localVariables[].codeObjectobjeto código
symbols.localVariables[].variablesCollectionColeção de objetos variáveis
symbols.methodsUma coleção de objetosLista de métodos
symbols.methods[].codeObjectobjeto código
symbols.methods[].callCountNumberNúmero de vezes que este método foi chamado
symbols.methods[].paramsCollectionColeção de tipos de parâmetro (tipo de valor numérico)
symbols.methods[]. threadSafeParâmetrosIndica se este método é thread seguro

Para obter mais informações, consulte Ferramentas de compilação.

variável de objetos

interprocessVariables.variables and processVariables.variables contêm objetos com a seguinte estrutura:

PropriedadeTipoDescription
nameTextNome da variável
typenumberTipo da variável (como comando do tipo Valor)
arrayDimensionnumberPara arrays apenas: 1 para arrays monodimensionais, 2 para arrays de duas dimensões
codeObjectPara as variáveis de processo e interprocesso: descritor de onde a variável foi definida
objeto de código

A propriedade code em methods.code e errors.code é um objeto com as seguintes propriedades:

PropriedadeTipoDescription
typeText"projectMethod", "formObjectMethod", "formMethod", "databaseMethod", "triggerMethod", "executeOnServer" (ao chamar um método do projeto com o atributo Executar no servidor), "executeFormula" (ao executar uma fórmula através de PROCESS 4D TAGS ou avaliação de uma fórmula em um documento 4D Write Pro), "class", "classFunction", "formObjectExpression" (para erros que ocorrem em expressões associadas ao formulário de objetos)
pathTextCaminho do método (mesmo formato que METHOD OPEN PATH)
file4D. FileArquivo do método
Retornado dependendo do valor da propriedade type:
methodNameTextMétodos proyecto
tabelaNumberNúmero da tabela (retornado para um gatilho, um método de formulário da tabela ou um método de objeto de formulário da tabela)
formNameTextNome do formulário (retornado para um método do formulário)
objectNameTextNome do objeto do formulário (retornado para um método do objeto)
Esta propriedade só está disponível quando não estiver selecionado tema de fonte.TextNome da propriedade objeto de formulário (retornado para uma expressão de objeto de forma)
classNameTextNome da turma
functionNameTextNome da função de classe
databaseMethodNumberÍndice de método

Exemplos

Para fazer uma verificação de sintaxe apenas, passe uma coleção vazia para o parâmetro de alvos:

 var $status : Objeto
var $options:={}
$options.targets:=Nova coleção //Vazio pela verificação de sintaxe
$status:=Compilação de projeto($options)

Compilar o projeto atual usando apenas as opções do compilador das configurações de estrutura:

 var $status : Object
$status:=Compile project

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

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

Compilar um projeto diferente do projeto atual:

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

Compilar um projeto e declarar seu 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)

Desativar avisos 518.1 e 518.2 ao compilar seu projeto:

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)

Veja também

BUILD APPLICATION

Propriedades

Command number1760
Thread safe✗