Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Fichier de configuration du projet

Cette section décrit entièrement le format de manifeste pour les fichiers de configuration de projet. Le fichier clerk.toml contient des métadonnées qui décrivent comment construire et empaqueter des programmes Catala dans un projet. Il est écrit au format TOML.

Un exemple de configuration clerk.toml est disponible dans la section 3.1.

Format du manifeste

  • [project] – Table qui définit les options globales du projet.
    • include_dirs – Les répertoires d’emplacement des sources.
    • build_dir – Le répertoire de sortie des artefacts de construction.
    • target_dir – Le répertoire de sortie des cibles.
    • default_targets – Les cibles par défaut à construire.
    • catala_opts – Surcharge des options Catala.
    • catala_exe – Surcharge du chemin du binaire Catala.
  • [[target]] – Multi-table qui définit une cible de projet.
    • name – Nom de la cible (Requis).
    • modules – Modules liés à la cible (Requis).
    • tests – Liste des répertoires contenant des tests liés à la cible.
    • backends – Liste des backends vers lesquels cette cible sera construite.
    • include_sources – Drapeau pour inclure les fichiers sources dans la cible compilée.
    • include_objects – Drapeau pour inclure les fichiers objets dans la cible compilée.
  • [variables] – Table pour surcharger les variables liées à la compilation.

Options [project]

include_dirs

Définit dans quels répertoires clerk cherche les fichiers sources Catala.

Exemple : include_dirs = ["src", "src/utils"]

build_dir

Spécifie quel répertoire doit être utilisé pour sortir les fichiers d’artefacts de construction générés.

Exemple : build_dir = "catala_build/"

Par défaut "_build/".

target_dir

Spécifie quel répertoire doit être utilisé pour sortir les bibliothèques générées des cibles résultantes. Le répertoire contiendra les fichiers backend exportables.

Exemple : target_dir = "generated_targets/"

Par défaut "_target/".

default_targets

Définit quelles cibles seront construites si aucune n’est spécifiée lors de l’invocation de clerk build sans arguments.

Exemple : default_targets = ["calcul_impot", "prestations_sociales"]

catala_opts

Définit quelles options seront passées au compilateur Catala lors de la construction des programmes Catala. Attention : utiliser avec précaution.

Exemple : catala_opts = ["--trace", "--whole-program"]

catala_exe

Surcharge quel compilateur Catala sera utilisé pour construire les fichiers sources.

Exemple : catala_exe = "chemin/vers/catala_personnalise.exe"

Options [[target]]

name

Nom donné à la cible. Cela créera un alias qui peut être utilisé par clerk pour construire la cible spécifique ou lancer des tests dédiés.

Exemple : name = "calcul_impot"

Invoquer $ clerk build calcul_impot ne construira que la cible calcul_impot.

modules

Modules qui seront utilisés pour compiler la [[target]] vers les backends spécifiés.

Exemple : modules = ["Section_121", "Section_132"]

tests

Spécifie la liste des répertoires qui contiennent des tests Catala qui sont liés à la cible. Exécuter clerk test <nom_cible> exécutera les tests trouvés dans les répertoires donnés (et sous-répertoires récursivement).

Exemple : tests = ["tests/tests_impot/unitaires/", "tests/tests_impot/"]

backends

Spécifie la liste des backends qui seront générés pour cette cible. La liste des backends actuellement supportés est : "ocaml", "java", "c", "python"

Exemple : backends = ["ocaml", "c", "java"]

Par défaut ["ocaml"] si omis.

include_sources

Spécifie s’il faut copier les fichiers sources générés par le backend (par exemple, le .c ou .java) dans le répertoire target.

Exemple : include_sources = true

Par défaut false.

include_objects

Spécifie s’il faut copier les fichiers compilés générés par le backend (par exemple, le .o ou .class) dans le répertoire target.

Exemple : include_objects = true

Par défaut false.

[variables]

Table globale utilisée pour surcharger les variables de construction clerk. La liste complète des variables peut être consultée en utilisant clerk list-vars.

Exemple :

[variables]
CATALA_FLAGS_C = "-O"
CC = "clang"
JAVAC = "/usr/bin/javac"