Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v20 R7
Compiler projet

Compiler projet 


 

Compiler projet {( {projectFile}{;}{options} )} -> Résultat 
Paramètre Type   Description
projectFile  4D.File in Fichier .4DProject à compiler
options  Objet in Objet indiquant les options de compilation
Résultat  Objet in Objet contenant des informations sur le statut de la compilation

Compiler projet vous permet de compiler le projet hôte courant ou le projet spécifié dans le paramètre projectFile. Pour plus d'informations sur la compilation, consultez la page de compilation sur developer.4d.com.

Par défaut, la commande utilise les options du compilateur définies dans les Paramètres de structure. Vous pouvez les remplacer en passant un paramètre options. Les syntaxes suivantes sont prises en charge :

  • Compiler projet() : compile le projet ouvert à l'aide des options définies dans les paramètres de structure
  • Compiler projet (options) : compile le projet ouvert. Les options définies remplacent les paramètres de structure
  • Compiler projet (projectFile) :  compile le 4DProject projectFile en utilisant les options définies dans les paramètres de structure
  • Compiler projet (projectFile; options) : compile le 4DProject projectFile et les options définies remplacent les paramètres de structure

Note : Les bases de données binaires ne peuvent pas être compilées avec cette commande.

Contrairement à la fenêtre du Compilateur, cette commande nécessite que vous désigniez explicitement le ou les composants à compiler. Lors de la compilation d'un projet avec Compiler projet, vous devez déclarer ses composants à l'aide de la propriété components du paramètre options. A noter que les composants doivent déjà être compilés (les composants binaires sont pris en charge).

Le code compilé résultant sera stocké dans le dossier DerivedData ou Libraries du projet, en fonction de la propriété targets du paramètre options. Si vous souhaitez créer des fichiers .4dz, vous devez toujours compresser manuellement le projet compilé ou utiliser la fonctionnalité Générer l'application.

Si vous passez une collection vide dans les targetsCompiler projet exécutera une vérification de syntaxe sans compiler.

Les erreurs de compilation, le cas échéant, sont retournées sous forme d'objets dans la collection errors.

Note : Vous ne pouvez pas appeler cette commande lorsqu'une autre compilation est en cours d'exécution (par exemple, une compilation lancée à partir de la fenêtre Compilation).

Le paramètre options est un objet. Voici les options de compilation disponibles :

PropriétéTypeDescription
componentsCollectionCollection d'objets 4D.File vers des composants dépendants (doit être déjà compilé)
defaultTypeForButtonsEntierValeur possible : Is real ou Is longint
defaultTypeForNumericsEntierValeur possible : Is real ou Is longint
generateSymbolsBooléenVrai pour générer des informations de symbole dans l'objet retourné .symbol
generateSyntaxFileBooléenVrai pour générer un fichier de syntaxe pour la complétion de code dans le dossier \Resources\en.lproj du projet.
generateTypingMethodsChaîne"reset" ou "append" pour générer des méthodes de typage. Si la valeur est "append", les déclarations de variables existantes ne seront pas modifiées (comportement de la fenêtre du compilateur)
pluginsObjet 4D.FolderDossier Plug-ins à utiliser en lieu et place du Dossier Plugins du projet courant. Cette propriété est disponible uniquement avec la syntaxe utilisant projectFile.
targetscollection de chaînesValeurs possibles : "x86_64_generic", "arm64_macOS_lib". Passez une collection vide pour exécuter une vérification de syntaxe uniquement
typeInferenceChaîne"all": le compilateur déduit les types de toutes les variables non déclarées explicitement "locals": le compilateur déduit les types des variables locales non déclarées explicitement, "none": Toutes les variables doivent être explicitement déclarées dans le code (mode legacy), "direct" : Toutes les variables doivent être explicitement déclarées dans le code (typage direct).
warningsCollection d'objetsDéfinit l'état des avertissements
[].majorNumériqueAvertissement numéro principal, avant le point
[].minorNumériqueAvertissement deuxième numéro, après le point
[].enabledBooléenÉtat d'activation de l'avertissement

Note : Lorsque l'attribut warnings  n'est pas défini dans l'objet options, la commande Compiler projet utilise les statuts de génération d'avertissement par défaut définis dans les paramètres.

L'objet retourné par Compiler projet possède jusqu'à trois propriétés : 

PropriétéTypeDescription
successBooléenVrai si l'action de sauvegarde est réussie, Faux dans le cas contraire.
Disponible uniquement en cas d'erreur ou d'avertissement :
errorsCollection d'objetscollection d'objets décrivant les erreurs de compilation ou les avertissements
isErrorBooléenErreur sir Vrai, sinon, avertissement
messageChaîneMessage d'erreur
codeObjetObjet code
lineNumériqueNuméro de ligne de l'erreur dans le code. Pour des méthodes de classe, le numéro de ligne dans la fonction
lineInFileNumériqueNuméro de ligne dans le fichier (différent de la"ligne" des méthodes de classe, et prend en charge la ligne de préfixe %attributes)
Disponible uniquement si l'option generateSymbols est définie sur Vrai :
symbolObjet
interprocessVariablesObjetListe de toutes les variables interprocess
variablesCollectionCollection de Objets variable
sizeNumérique
processVariablesObjetListe de toutes les variables process
variablesCollectionCollection de Objets variable
sizeNumérique
localVariablesCollection d'objetsListe de variables locales par méthode
codeObjetObjet code
variablesCollectionCollection de Objets variable
methodsCollection d'objetsList of methods
codeObjetObjet code
callCountNumériqueNombre d'appels de cette méthode
paramsCollectionCollection de types de paramètre (codes numériques du type de valeur)
threadSafeBooléenIndique si la méthode est thread safe

Pour plus d'informations, reportez-vous aux Outils de compilation.

interprocessVariables.variables et processVariables.variables contiennent des objets avec la structure suivante :

 

PropriétéTypeDescription
nameChaîneNom de la variable
typenumériqueType de la variable (tel que la commande Value type)
arrayDimensionnumériquePour les tableaux uniquement : 1 pour les tableaux mono-dimension, 2 pour les tableaux à deux dimensions
codeObjetPour les variables process et interprocess : descripteur de l'emplacement de définition de la variable

La propriété code dans methods[ ].code et errors[ ].code est un objet dont les propriétés sont les suivantes :

PropriétéTypeDescription
typeChaîne
  • "projectMethod",
  • "formObjectMethod",
  • "databaseMethod",
  • "triggerMethod",
  • "executeOnServer" (lors de l'appel de la méthode projet avec Attribut Exécuter sur serveur.),
  • "executeFormula" (lors de l'exécution d'une formule via TRAITER BALISES 4D ou l'évaluation d'une formule dans un document 4D Write Pro.)
  • "class"
  • "classFunction"
pathChaîneChemin de méthode (format identique à celui de METHODE OUVRIR CHEMIN)
file4D.FileFichier méthode
Retournée selon la valeur de propriété du type :
methodNameChaîneMéthode projet
tableNumériqueNuméro de table (retourné pour un trigger, une méthode formulaire de table ou une méthode objet formulaire)
formNameChaîneNom de formulaire (retourné pour une méthode formulaire)
objectNameChaîneNom de l'objet formulaire (retourné pour une méthode formulaire)
classNameChaîneNom de classe
functionNameChaîneNom de fonction de classe
databaseMethodNumériqueIndex de la méthode base

Alerte  

Pour effectuer un contrôle syntaxique uniquement, passez une collection vide au paramètre targets :

 var $options;$status : Object
 $options:=New object
 $options.targets:=New collection //Collection vide pour le contrôle syntaxique
 $status:=Compile project($options)

 

Pour compiler le projet en cours, il suffit d'utiliser les options de compilateur des Paramètres de structure :

 var $status : Object
 $status:=Compile project

 

Sur un Silicon Mac, compilez le projet actuel en ARM uniquement :

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

 

Compilez un projet autre que le projet actuel :

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

 

Compilez un projet et déclarez son composant :

 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)

 

Désactivez les avertissements 518.1 et 518.2 lors de la compilation de votre projet :

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)



Voir aussi  

GENERER APPLICATION

 
PROPRIÉTÉS 

Produit : 4D
Thème : Compilateur
Numéro : 1760
Nom intl. : Compile project

 
PAGE CONTENTS 
 
HISTORIQUE 

Créé : 4D v19
Modifié : 4D v19 R5
Modifié : 4D v20.1

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v20 R7)