Compilation (accélération)

From FreeCAD Documentation
Revision as of 12:24, 10 August 2019 by David69 (talk | contribs)

FreeCAD est une application relativement lourde dont la compilation complète à partir des sources peut prendre entre 10 minutes et une heure. Cela dépend principalement du processeur dont vous disposez et du nombre de cœurs utilisés dans le processus de compilation. Voici quelques conseils pour raccourcir ce processus et raccourcir les temps de construction.

CCache

Installez ccache pour mettre en cache les builds.

Désactiver des modules

Lorsque vous utilisez cmake pour configurer le build, vous pouvez désactiver la compilation de certains ateliers dont vous n'avez peut-être pas besoin pour le moment. Ceci est utile si vous n'avez besoin que de tester quelques ateliers.

Par exemple, pour éviter de compiler les ateliers FEM et Mesh:

cmake -DBUILD_FEM=OFF -DBUILD_MESH=OFF ../freecad-source

Utilisez cmake-gui, cmake-curses-gui ou cmake-qt-gui pour afficher toutes les variables possibles pouvant être éditées lors de la configuration. En utilisant ces interfaces, vous pouvez facilement activer ou désactiver différents ateliers.

Plusieurs actions en parallèle

Après avoir configuré avec cmake, le programme make lance le compilateur C ++ à proprement dit pour qu'il fonctionne sur les fichiers de code source. Vous pouvez accélérer la compilation en travaillant sur plusieurs fichiers en même temps. Ceci est réalisé avec l'option -j de make qui indique le nombre de "travaux" ou de commandes de compilation exécutés simultanément. Cette option est un nombre entier.

Run four compilation commands in parallel:

make -j4

Compile as many files in parallel as the number of CPU cores in your system. This is useful if you have many cores and want to use them all to compile the software.

make -j$(nproc)

Compile as many files in parallel as the number of CPU cores in your system, minus two. Use this so that your system is still responsive to do some other task; for example, two cores will allow you to use a browser, while the rest of the cores keep compiling the software on the background.

make -j$(nproc --ignore=2)

distcc

Distcc peut être utilisé pour la compilation distribuée sur un réseau.