Difference between revisions of "Compile on MacOS/fr"

From FreeCAD Documentation
Jump to navigation Jump to search
(Created page with "=== Exécution === Si tout s'est bien passé, double-cliquez sur ​​le paquet '''.app''' pour démarrer FreeCAD. Si vous avez des questions, postez les sur le [http://for...")
 
(173 intermediate revisions by 6 users not shown)
Line 1: Line 1:
Comme Mac OS X est basé sur la distribution''' BSD (UNIX)''', la compilation de FreeCAD sur '''Mac''' n'est pas très différente de [[CompileOnUnix/fr|CompileOnUnix]], mais il existe cependant un certain nombre de détails très importants, spécifiques au Mac, pour que tout fonctionne correctement. Ces instructions ont été testées sur '''Lion (10.7)''', mais ''devrait fonctionner'' sur les '''Macs Intel''' qui utilisent '''(Snow) Leopard'''.
+
<languages/>
 +
 
 +
{{Docnav/fr
 +
|[[Compile_on_Linux/fr|Compiler sous Linux]]
 +
|[[Compile_on_Docker/fr|Compiler sur Docker]]
 +
}}
 +
 
 +
{{VeryImportantMessage|Il existe un conteneur Docker FreeCAD expérimental qui est testé pour le développement FreeCAD. En savoir plus à ce sujet sur [[Compile_on_Docker/fr|Compiler sur Docker]]}}
 +
 
 +
{{TOCright}}
 +
 
 +
== Présentation ==
 +
 
 +
Cette page décrit comment compiler le code source FreeCAD sur MacOS X. Pour les autres plates-formes, voir [[Compiling/fr|Compiler]].
 +
 
 +
Ces instructions ont été testées sur macOS Catalina avec le XCode 11.6 standard. Il est connu pour fonctionner sur macOS BigSur Beta avec XCode 12.0 beta. Si vous prévoyez d'utiliser XCode Beta, assurez-vous de télécharger le module complémentaire Outils de ligne de commande via un package dmg pour contourner certains problèmes de dépendance libz.
 +
 
 +
Cette page sert de point de départ et n’a pas vocation à être exhaustive en ce qui concerne la description de toutes les options disponibles de build.  
 +
 
 +
Si vous souhaitez simplement évaluer la dernière version de FreeCAD en version préliminaire, vous pouvez télécharger les fichiers binaires pré-construits [https://github.com/FreeCAD/FreeCAD/releases ici].
 +
 
 +
== Conditions préalables à l'installation ==
 +
 
 +
Les logiciels suivants doivent être installés pour prendre en charge le processus de compilation.
 +
 
 +
=== Gestionnaire de paquets Homebrew ===
 +
 
 +
Homebrew est un gestionnaire de paquets basé sur la ligne de commande pour macOS. La [https://brew.sh/ page d'accueil de Homebrew] fournit une ligne de commande d'installation que vous collez simplement dans une fenêtre de terminal.
 +
 
 +
=== CMake ===
 +
 
 +
CMake est un outil de build qui génère une configuration de build basée sur les variables que vous spécifiez. Vous lancez ensuite la commande 'make' pour construire cette configuration. La version en ligne de commande de CMake est automatiquement installée dans le cadre de l'installation de Homebrew, ci-dessus. Si vous préférez utiliser une version graphique de CMake, vous pouvez la télécharger à partir de [https://www.cmake.org/downloadDownload ici].
 +
 
 +
== Installation des dépendances ==
 +
 
 +
FreeCAD maintient un 'tap' Homebrew qui installe les formules et dépendances requises. Exécutez les commandes de préparation suivantes dans votre terminal.
 +
 
 +
{{Code|code=
 +
brew tap freecad/freecad
 +
brew install eigen
 +
brew install --only-dependencies freecad --with-packaging-utils
 +
}}
 +
 
 +
Remarques :
 +
# 'brew install' peut prendre un certain temps, l'occasion de prendre un verre.
 +
# Homebrew est actuellement livré avec Boost 1.73 qui contient un bogue pour compiler FreeCAD. Veuillez éditer le fichier /usr/local/opt/boost/include/boost/geometry/index/detail/rtree/visitors/insert.hpp et en ligne 265 déclarer MembersHolder::visitor comme étant une valeur publique en remplaçant : MembersHolder::visitor with : public MembersHolder::visitor
 +
 
 +
 
 +
== Obtenir les sources ==
 +
 
 +
Dans les instructions suivantes, les dossiers source et de build sont créés côte à côte sous
  
== Obtenir le code source ==
+
{{Code|code=
 +
/Users/username/FreeCAD
 +
}}
  
Avant de compiler FreeCAD, vous avez besoin du code source. Il y a trois moyens de l'obtenir :
+
mais vous pouvez utiliser les dossiers de votre choix.  
  
=== Git ===
+
{{Code|code=
 +
mkdir ~/FreeCAD
 +
cd ~/FreeCAD
 +
}}
  
La méthode la meilleure et la plus rapide d'obtenir le code est de « cloner » le dépôt Git en lecture seule (il vous faut le paquet [http://git-scm.com/ git] installé):
+
La commande suivante clone le référentiel FreeCAD git dans un répertoire appelé FreeCAD-git.
<pre>
 
git clone git://free-cad.git.sourceforge.net/gitroot/free-cad/free-cad freecad
 
</pre>
 
Ceci place une copie de la plus récente version du code source de FreeCAD dans un nouveau répertoire nommé « freecad ». La première fois que vous vous connectez à l'hôte free-cad.git.sourceforge.net, vous obtiendrez un message vous demandant d'authentifier la clé SSH de Sourceforge. Celle-ci peut normalement être acceptée sans danger (vous pouvez vérifier les clés SSH de Sourceforge sur leur site Web si vous voulez vous en assurer)
 
  
=== Gihub ===
+
{{Code|code=
 +
git clone https://github.com/FreeCAD/FreeCAD FreeCAD-git
 +
}}
  
Il y a également une copie synchronisée régulièrement du dépôt FreeCAD sur GitHub :
+
Créez le dossier build.
[https://github.com/FreeCAD/FreeCAD_sf_master github.com/FreeCAD/FreeCAD_sf_master]
 
=== Paquet source ===
 
  
Vous pouvez également télécharger un paquet source, mais celui-ci pourrait être assez vieux ; il est donc préférable de télécharger les sources les plus récentes via git ou github. Dépendant de votre distribution, il y a plusieurs façons d'obtenir un paquet source :
+
{{Code|code=
 +
mkdir ~/FreeCAD/build
 +
}}
  
Paquets source FreeCAD officiels (indépendants des distributions):
+
== Lancer CMake ==
https://sourceforge.net/projects/free-cad/files/FreeCAD%20Source/
 
  
Debian:
+
Ensuite, nous allons lancer CMake pour générer la configuration de construction. Plusieurs options doivent être transmises à CMake. Le tableau suivant décrit les options et donne un aperçu.  
http://packages.debian.org/source/sid/freecad
 
  
Ubuntu:
+
=== Les options de CMake ===
http://packages.ubuntu.com/source/precise/freecad
 
  
=== Dépendances de l'installation ===
+
{| class="wikitable" style="text-align:left"
 +
|-
 +
! Nom !! Valeur  !! Remarques
 +
|-
 +
| CMAKE_BUILD_TYPE || Release (STRING) ||  Release ou Debug.  Le débogage est généralement utilisé pour les tests au niveau développeur mais peut également être requis pour des tests et le dépannage au niveau utilisateur.
 +
|-
 +
| BUILD_QT5 || 1  (BOOL) || Nécessaire pour un build avec Qt5. 
 +
|-             
 +
| CMAKE_PREFIX_PATH || "/usr/local/opt/qt5152;" ... (Chemin) || Nécessaire pour un build avec Qt5. Voir la remarque ci-dessous. Vous devez également ajouter le chemin d'accès au fichier de configuration cmake des librairies VTK et NGLIB.
  
Sur '''Mac OS X 10.7''', les dépendances suivantes ne sont pas fournies avec le système, et '''doivent''' donc être installées '''avant''' la compilation de FreeCAD :
+
|-             
*sip
+
| FREECAD_CREATE_MAC_APP || 1 (BOOL) || Crée un paquet FreeCAD.app à l'emplacement spécifié dans CMAKE_INSTALL_PREFIX lorsque la commande 'make install' a été émise.
*fortran
+
|-
*xerces-c
+
| CMAKE_INSTALL_PREFIX || "./.." (PATH) || Chemin où vous souhaitez générer le paquet FreeCAD.app.
*boost
+
|-             
*eigen
+
| FREECAD_USE_EXTERNAL_KDL || 1 (BOOL) || Nécessaire.
*ftgl
+
|-
*coin3d
+
| BUILD_FEM_NETGEN || 1 (BOOL) || Requis si vous choisissez de construire les outils FEM.
*OpenCASCADE
+
|}
*Qt
 
*pyqt
 
*soqt
 
  
==== Option 1: Homebrew ====
+
Remarque : ligne de commande pour générer CMAKE_PREFIX_PATH : 
  
'''PS :''' cette section est toujours en cours d'élaboration ! Lisez le post sur ​​le forum d'aide pour plus d'informations.
+
<!--NOT CHANGE THE <pre> </pre> BALISE CAUSE THE PIPE OR SPACE IN MACRO CODE CUT THE MACRO-->
:https://forum.freecadweb.org/viewtopic.php?f=4&t=2064&p=15405
+
ls -d $(brew list -1 | grep qt | tail -1 | xargs brew --cellar)/*/lib/cmake
Téléchargement et installation des gestionnaires de paquets '''Homebrew''' :
 
:http://mxcl.github.com/homebrew/
 
Puis, compilez et installez la plupart des dépendances de FreeCAD :
 
<pre>
 
brew install sip gfortran xerces-c boost eigen coin qt pyqt soqt ftgl
 
</pre>
 
Lisez le paragraphe [[CompileOnMac/fr#Compiler OpenCASCADE]].
 
  
==== Option 2: MacPorts/Fink ====
+
=== Interface graphique CMake ===
  
'''PS : cette section a besoin d'être documentée !'''
+
Ouvrez l'application CMake, et remplissez les champs source et dossier de compilation. Dans cet exemple, il s'agirait de '''/Users/username/FreeCAD/FreeCAD-git'''  pour les sources et ''/Users/username/FreeCAD/build''' pour le dossier de build.
  
Installez''' MacPorts''', si vous ne l'avez pas déjà fait. '''MacPorts''' est un système qui vous permet de télécharger, compiler et installer de nombreuses applications open-source en une seule commande. Des applications similaires issues du monde '''Unix/Linux''' sont, '''[http://netbsd-france.org/docs/software/packages.html PKGSRC]''' et '''[http://fr.wikipedia.org/wiki/Advanced_Packaging_Tool APT]'''. Pour l'installer, il suffit de télécharger l'image disque à partir du site '''MacPorts''', et suivez les instructions :
+
Ensuite, cliquez sur le bouton '''Configure''' pour remplir la liste des options de configuration. Cela affichera une boîte de dialogue vous demandant de spécifier quel générateur utiliser. Laissez la valeur par défaut '''Unix Makefiles'''. La configuration échouera pour la première fois car certaines options doivent être changées. Remarque: vous devrez cocher la case à cocher '''Advanced''' pour obtenir toutes les options.
:http://www.macports.org/install.php
 
 
Que vous ayez ou non installé '''[http://www.macports.org/ MacPorts]''', vous voudrez probablement vérifier s'il est à jour.
 
Exécutez :
 
<pre>
 
sudo port selfupdate
 
</pre>
 
 
Maintenant que '''[http://www.macports.org/ MacPorts]''' est installé, et à jour, vous pouvez commencer l'installation de certains des paquets nécessaires à FreeCAD :
 
*xercesc
 
*boost
 
*py-sip
 
*ftlg
 
*f2c
 
*eigen3
 
*py-pyqt4
 
*Coin
 
La commande suivante compile/installe les bibliothèques ci-dessus. Si '''MacPorts''' produit des erreurs, vous pouvez essayer d'installer ceci, '''un à la fois'''.
 
<pre>
 
sudo port install xercesc boost ftgl f2c eigen3 py-sip py-pyqt4 Coin
 
</pre>
 
Notez, que pour les paquets Python comme '''[http://www.riverbankcomputing.com/software/sip/download py-sip]''' et '''[http://guide.macports.org/ py-pyqt4]''', il ya plusieurs packages, une pour chaque version de '''Python MacPorts'''.
 
  
Notez que '''[http://www.boost.org/ boost]''' est un gros paquet, et '''[http://guide.macports.org/ py-pyqt4]''' dépend '''[http://www.qtcentre.org/wiki/index.php?title=Installing_Qt4_on_Mac_OS_X qt4-mac]''', qui est aussi un gros paquet. Vous pouvez exécuter '''run port -v''' de manière à avoir une idée de ce qui se passe au cours de ces longues compilations.
+
Définissez les options du tableau ci-dessus, puis cliquez à nouveau sur '''Configure''' puis sur '''Generate'''.
  
[http://qt.nokia.com/downloads/ Qt4] est également disponible pour Mac comme un installateur binaire à partir du site Web de [http://qt.nokia.com/downloads/ Qt].
+
=== CMake en lignes de commande ===
  
Je ne suis pas sûr, de savoir comment ce passe cette approche avec la compilation de FreeCAD.
+
Entrez ce qui suit dans le terminal.
  
Il est également possible de choisir la version du compilateur '''gcc''' à utiliser, certaines versions récentes peuvent parfois provoquer des problèmes :
+
{{Code|code=
<pre>
+
export PREFIX_PATH="/usr/local/opt/qt5152;\
sudo port -v install gcc_select
+
/usr/local/Cellar/nglib/v6.2.2007/Contents/Resources;\
sudo port select --list gcc
+
/usr/local/Cellar/vtk@8.2/8.2.0_1/lib/cmake;"
sudo port select --set gcc mp-gcc46
+
}}
</pre>
 
'''Installer le Compilateur Fortran'''
 
  
Vous avez également besoin d'un compilateur [http://fr.wikipedia.org/wiki/Fortran FORTRAN]. Le fork '''[http://fr.wikipedia.org/wiki/GNU_Compiler_Collection gcc]''' d'Apple sur '''[http://fr.wikipedia.org/wiki/OS_X OSX]''' ne convient pas à FORTRAN.
+
{{Code|code=
 +
$cd ~/FreeCAD/build
 +
$cmake \
 +
  -DCMAKE_BUILD_TYPE="Release"  \
 +
  -DBUILD_QT5=1                  \
 +
  -DWITH_PYTHON3=1              \
 +
  -DCMAKE_PREFIX_PATH="$PREFIX_PATH" \
 +
  -DPYTHON_EXECUTABLE="/usr/local/bin/python3" \
 +
  -DFREECAD_USE_EXTERNAL_KDL=1  \
 +
  -DCMAKE_CXX_FLAGS='-std=c++14' \
 +
  -DBUILD_FEM_NETGEN=1          \
 +
  -DFREECAD_CREATE_MAC_APP=1    \
 +
  -DCMAKE_INSTALL_PREFIX="./.."  \
 +
  ../FreeCAD-git/
  
Un installateur pour '''GFortran''' peut se trouver ici, et fera l'affaire :
+
}}
http://gcc.gnu.org/wiki/GFortranBinaries#MacOS
 
Si vous utilisez '''fink''', une autre méthode consiste à utiliser les commandes suivantes (tenté par Shaneyfelt 2100.Nov.14)
 
<pre>
 
sudo fink selfupdate
 
sudo fink install gcc46
 
</pre>
 
''Cela installe une autre collection de compilateurs '''gcc''' avec comme nom, '''gcc-4''' afin d'éviter un conflit de nom avec l''''Apple one'''.''
 
  
Les paquets '''MacPorts gcc4x''', également incluent les compilateurs de '''Fortran''', et il faudrait également faire :
+
== Exécuter make ==
<pre>
 
sudo port install gcc46
 
</pre>
 
Un autre paquet possible pour '''MacPorts''' est '''[http://www.g95.org/ g95]'''.
 
  
Cela semble être valable pour le compilateur [http://en.wikipedia.org/wiki/Fortran#Fortran_90 FORTRAN90] et passer des tests de configuration cmake de FreeCAD, mais la version actuelle semble demander des options spécifiques pour '''gcc''', il est sans doute plus facile de s'en tenir à '''[https://trac.macports.org/ticket/33963 gcc4x]'''.
+
Enfin, à partir d’un terminal, exécutez '''make''' pour compiler et lier FreeCAD et générer le paquet applicatif.
  
'''Installer Eigen3'''
+
{{Code|code=
 +
cd ~/FreeCAD/build
 +
make -j5 install
 +
}}
  
Téléchargez et décompressez la dernière bibliothèque '''eigen3''' ici :
+
L'option -j spécifie le nombre de processus de création à exécuter simultanément. Prendre le nombre de cœurs de processeur et ajouter un est généralement le bon nombre à utiliser. Cependant, si la compilation échoue pour une raison quelconque, il est utile de réexécuter make sans l'option -j afin de pouvoir voir exactement où l'erreur s'est produite.
http://eigen.tuxfamily.org/index.php?title=Main_Page
 
Ces mesures sont nécessaires pour la fonctionnalité du solveur. Une fois décompressé, le dossier nommé '''Eigen''' peut être déposé dans :
 
  
'''/usr/local/include/eigen3/'''
+
Voir aussi [[Compiling_(Speeding_up)/fr|Compilation (accélération)]].
  
=== Compiler OpenCASCADE ===
+
Si make se termine sans erreur, vous pouvez maintenant lancer FreeCAD en double-cliquant sur l'exécutable dans le Finder.
  
Actuellement, la meilleure façon de compiler '''OpenCASCADE''' sur '''OS X''' est, l'édition communautaire ('''OCE''').
+
== Mise à jour depuis Github ==
  
Téléchargez le code source ou, consultez le dépôt [http://fr.wikipedia.org/wiki/Git Git] à partir de :
+
Le développement de FreeCAD est rapide ; chaque jour ou presque, il y a des corrections de bugs ou de nouvelles fonctionnalités. Pour obtenir les dernières modifications, utilisez git pour mettre à jour le répertoire source (voir [[Source code management/fr|Gestion du code source]]), puis réexécutez CMake et suivez les étapes ci-dessus. Dans ce cas, il n’est généralement pas nécessaire de commencer par un répertoire de build vierge et les compilations suivantes iront généralement beaucoup plus vite que la première.
:https://github.com/tpaviot/oce
 
Alors, tapez dans le terminal :
 
<pre>
 
mkdir build
 
cd build
 
cmake ..
 
cd ..
 
make
 
make install/strip
 
</pre>
 
Vous devrez peut-être faire cmake :
 
<pre>
 
sudo port install cmake
 
</pre>
 
=== Télécharger et installer le modèle FreeCAD.app ===
 
  
L'archive suivante contient un modèle d'application pour FreeCAD. Ce n'est pas réellement nécessaire, mais il rend le travail de configuration de l'installation par défaut de FreeCAD plus pratique. L'emplacement recommandé de l'installation pour le bundle, est le dossier d'applications, mais vous devriez être en mesure de l'installer où vous voulez. Rrappelez-vous juste que, le faisceau (bundle) '''ne peut pas être déplacé ou modifié''' après que FreeCAD soit installé.
+
== Faire une compilation avec Qt4 et Python 2.7 ==
  
Lancer '''make install''' dans l'étape suivante en utilisant cette configuration, l'installera dans cet ensemble (bundle).
+
FreeCAD est passé de Qt 4 à Qt 5 comme homebrew. Qt 4 n'est plus disponible en option pour une nouvelle version sur macOS après la transition Qt 5. Python 2.7 est obsolète dans homebrew et macOS à venir et nous ne le supportons plus non plus pour la version macOS.
:http://dl.getdropbox.com/u/103808/FreeCAD/FreeCAD_bundle_template_20091128.tar.gz
 
=== Compilation ===
 
  
Configurez, compilez et installez FreeCAD, en utilisant les commandes suivantes à partir du dossier racine de FreeCAD.
+
== Dépannage ==
  
Si vous mettez votre paquet '''FreeCAD.app''' ailleurs que dans Application (ou, n'utilise pas le bundle), changer la valeur de '''PREFIX''' en conséquence.
+
=== Un segfault sur le lancement de Qt5 ===
<pre>
 
./autogen.sh
 
 
PREFIX=/Applications/FreeCAD.app/Contents
 
</pre>
 
Si vous avez installé les dépendances en utilisant l'option '''1 (Homebrew)''' :
 
  
'''PS : cette ligne de configuration n'a pas été vérifiée et peut contenir des erreurs !'''
+
Si Qt4 a été précédemment installé via Homebrew et que vous faites un build ensuite avec Qt5, vous pouvez obtenir une exception EXC_BAD_ACCESS (SEGSEGV) lors du lancement de la nouvelle version de Qt5. Le correctif consiste à désinstaller manuellement Qt4.
<pre>
 
./configure --with-xercesc-lib=/usr/local/lib --with-xercesc-include=/usr/local/include \
 
--with-boost-lib=/usr/local/lib --with-boost-include=/usr/local/include \
 
--with-qt4-dir=/usr/local--with-qt4-lib=/usr/local/lib --with-qt4-include=/usr/local/include \
 
--with-qt4-framework=/usr/local/lib --with-qt4-bin=/usr/local/bin --with-occ-lib=/usr/local/lib \
 
--with-occ-include=/usr/local/include/oce  --with-coin=/usr/local/lib --with-soqt=/usr/local/lib \
 
--prefix=/Applications/FreeCAD.app/Contents --bindir=/Applications/FreeCAD.app/Contents/MacOS \
 
--libdir=/Applications/FreeCAD.app/Contents/Frameworks/FreeCAD \
 
--includedir=/Applications/FreeCAD.app/Contents/Resources/include \
 
--datarootdir=/Applications/FreeCAD.app/Contents/Resources/share --enable-debug=no  \
 
--with-python-include=/System/Library/Frameworks/Python.framework/Versions/2.5/Headers
 
</pre>
 
ou, si vous avez installé les dépendances en utilisant l'option '''2 (MacPorts/Fink)''' :
 
<pre>
 
./configure --with-xercesc-lib=/opt/local/lib --with-xercesc-include=/opt/local/include \
 
--with-boost-lib=/opt/local/lib --with-boost-include=/opt/local/include \
 
--with-qt4-dir=/usr/local/Trolltech/Qt-4.8.0 --with-qt4-lib=/usr/local/Trolltech/Qt-4.8.0/lib \
 
--with-qt4-include=/usr/local/Trolltech/Qt-4.8.0/include --with-qt4-framework=/Library/Frameworks \
 
--with-qt4-bin=/usr/local/Trolltech/Qt-4.8.0/bin --with-occ-lib=/usr/local/lib \
 
--with-occ-include=/usr/local/include/oce  --with-coin=/Library/Frameworks \
 
--with-soqt=/Library/Frameworks --prefix=/Applications/FreeCAD.app/Contents \
 
--bindir=/Applications/FreeCAD.app/Contents/MacOS --libdir=/Applications/FreeCAD.app/Contents/Frameworks/FreeCAD \
 
--includedir=/Applications/FreeCAD.app/Contents/Resources/include \
 
--datarootdir=/Applications/FreeCAD.app/Contents/Resources/share --enable-debug=no  \
 
--with-python-include=/System/Library/Frameworks/Python.framework/Versions/2.5/Headers
 
</pre>
 
alors :
 
<pre>
 
make
 
make install
 
</pre>
 
Selon la puissance de votre machine, l'étape '''make''' peut prendre plus ou moins de temps.
 
  
=== Exécution ===
+
{{Code|code=
 +
brew uninstall --ignore-dependencies --force cartr/qt4/shiboken@1.2 cartr/qt4/pyside@1.2 cartr/qt4/pyside-tools@1.2 cartr/qt4/qt-legacy-formula
 +
}}
  
Si tout s'est bien passé, double-cliquez sur ​​le paquet '''.app''' pour démarrer FreeCAD.
+
=== Fortran ===
  
Si vous avez des questions, postez les sur le [http://forum.freecadweb.org/viewforum.php?f=4 forum d'aide] (Anglais).
+
''"No CMAKE_Fortran_COMPILER could be found."'' (Aucun CMAKE_Fortran_COMPILER n'a pu être trouvé) lors de la configuration - Les anciennes versions de FreeCAD nécessiteront l'installation d'un compilateur Fortran. Avec Homebrew, faites "brew install gcc" et essayez à nouveau de configurer cmake en donnant le chemin à Fortran, c'est-à-dire -DCMAKE_Fortran_COMPILER=/opt/local/bin/gfortran-mp-4.9, ou utilisez de préférence une version plus récente de la source FreeCAD!
  
Une discussion a été ouverte en Français [https://forum.freecadweb.org/viewtopic.php?f=12&t=3538 Freecad sur Mac]
+
=== OpenGL ===
  
=== PyQt4 ===
+
Voir [[OpenGL_on_MacOS|OpenGL sur MacOS]] pour les problèmes OpenGL lorsque Qt 4.8 et versions antérieures sont utilisées sous MacOS.
  
Some users reported facing a "No Module named PyQt4" message on FreeCAD startup. This is a workaround to correct it:
+
=== FreeType ===
<pre>
 
cd /Library/Python/2.6/site-packages
 
sudo ln -s /contrib/lib/python2.6/site-packages/PyQt4 .
 
sudo ln -s /contrib/lib/python2.6/site-packages/sip* .
 
cd /volatile/FreeCAD-r5443-ser/bin/pivy
 
cp _coin.dylib _coin.so
 
cd /volatile/FreeCAD-r5443-ser/lib
 
for i in *.dylib; do j=`basename $i .dylib`; cp $i $j.so; done
 
</pre>
 
=== Pivy ===
 
Some FreeCAD components won't work without Pivy.  See [[Extra_python_modules#Pivy|here]] for partial build instructions.
 
  
 +
Si vous utilisez des versions de CMake antérieures à la version 3.1.0, il est nécessaire de définir la variable CMake FREETYPE_INCLUDE_DIR_freetype2 manuellement, par exemple /usr/local/include/freetype2.
  
{{docnav|CompileOnUnix|Third Party Libraries}}
+
=== Instructions de compilation supplémentaires ===
  
[[Category:Developer Documentation]]
+
FreeCAD peut être construit à partir du dernier master git hébergé sur github et lancé à partir d'une CLI en utilisant les bibliothèques fournies par le tap homebrew-freecad. Pour une liste complète des instructions de construction, voir [https://github.com/ipatch/homebrew-us-05/tree/dev/freecad#building-freecad-for-macos-by-macos ici].
  
{{clear}}
+
{{Docnav/fr
<languages/>
+
|[[Compile_on_Linux/fr|Compiler sous Linux]]
 +
|[[Compile_on_Docker/fr|Compiler sur Docker]]
 +
}}
 +
 
 +
{{Userdocnavi{{#translation:}}}}
 +
[[Category:Developer_Documentation{{#translation:}}]]
 +
[[Category:Developer{{#translation:}}]]

Latest revision as of 13:39, 22 August 2021

Other languages:
Deutsch • ‎English • ‎Türkçe • ‎español • ‎français • ‎hrvatski • ‎italiano • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎svenska • ‎čeština • ‎русский
Arrow-left.svg Page précédente : Compiler sous Linux
Page suivante : Compiler sur Docker Arrow-right.svg
Il existe un conteneur Docker FreeCAD expérimental qui est testé pour le développement FreeCAD. En savoir plus à ce sujet sur Compiler sur Docker

Présentation

Cette page décrit comment compiler le code source FreeCAD sur MacOS X. Pour les autres plates-formes, voir Compiler.

Ces instructions ont été testées sur macOS Catalina avec le XCode 11.6 standard. Il est connu pour fonctionner sur macOS BigSur Beta avec XCode 12.0 beta. Si vous prévoyez d'utiliser XCode Beta, assurez-vous de télécharger le module complémentaire Outils de ligne de commande via un package dmg pour contourner certains problèmes de dépendance libz.

Cette page sert de point de départ et n’a pas vocation à être exhaustive en ce qui concerne la description de toutes les options disponibles de build.

Si vous souhaitez simplement évaluer la dernière version de FreeCAD en version préliminaire, vous pouvez télécharger les fichiers binaires pré-construits ici.

Conditions préalables à l'installation

Les logiciels suivants doivent être installés pour prendre en charge le processus de compilation.

Gestionnaire de paquets Homebrew

Homebrew est un gestionnaire de paquets basé sur la ligne de commande pour macOS. La page d'accueil de Homebrew fournit une ligne de commande d'installation que vous collez simplement dans une fenêtre de terminal.

CMake

CMake est un outil de build qui génère une configuration de build basée sur les variables que vous spécifiez. Vous lancez ensuite la commande 'make' pour construire cette configuration. La version en ligne de commande de CMake est automatiquement installée dans le cadre de l'installation de Homebrew, ci-dessus. Si vous préférez utiliser une version graphique de CMake, vous pouvez la télécharger à partir de ici.

Installation des dépendances

FreeCAD maintient un 'tap' Homebrew qui installe les formules et dépendances requises. Exécutez les commandes de préparation suivantes dans votre terminal.

brew tap freecad/freecad
brew install eigen
brew install --only-dependencies freecad --with-packaging-utils

Remarques :

  1. 'brew install' peut prendre un certain temps, l'occasion de prendre un verre.
  2. Homebrew est actuellement livré avec Boost 1.73 qui contient un bogue pour compiler FreeCAD. Veuillez éditer le fichier /usr/local/opt/boost/include/boost/geometry/index/detail/rtree/visitors/insert.hpp et en ligne 265 déclarer MembersHolder::visitor comme étant une valeur publique en remplaçant : MembersHolder::visitor with : public MembersHolder::visitor


Obtenir les sources

Dans les instructions suivantes, les dossiers source et de build sont créés côte à côte sous

/Users/username/FreeCAD

mais vous pouvez utiliser les dossiers de votre choix.

mkdir ~/FreeCAD
cd ~/FreeCAD

La commande suivante clone le référentiel FreeCAD git dans un répertoire appelé FreeCAD-git.

git clone https://github.com/FreeCAD/FreeCAD FreeCAD-git

Créez le dossier build.

mkdir ~/FreeCAD/build

Lancer CMake

Ensuite, nous allons lancer CMake pour générer la configuration de construction. Plusieurs options doivent être transmises à CMake. Le tableau suivant décrit les options et donne un aperçu.

Les options de CMake

Nom Valeur Remarques
CMAKE_BUILD_TYPE Release (STRING) Release ou Debug. Le débogage est généralement utilisé pour les tests au niveau développeur mais peut également être requis pour des tests et le dépannage au niveau utilisateur.
BUILD_QT5 1 (BOOL) Nécessaire pour un build avec Qt5.
CMAKE_PREFIX_PATH "/usr/local/opt/qt5152;" ... (Chemin) Nécessaire pour un build avec Qt5. Voir la remarque ci-dessous. Vous devez également ajouter le chemin d'accès au fichier de configuration cmake des librairies VTK et NGLIB.
FREECAD_CREATE_MAC_APP 1 (BOOL) Crée un paquet FreeCAD.app à l'emplacement spécifié dans CMAKE_INSTALL_PREFIX lorsque la commande 'make install' a été émise.
CMAKE_INSTALL_PREFIX "./.." (PATH) Chemin où vous souhaitez générer le paquet FreeCAD.app.
FREECAD_USE_EXTERNAL_KDL 1 (BOOL) Nécessaire.
BUILD_FEM_NETGEN 1 (BOOL) Requis si vous choisissez de construire les outils FEM.

Remarque : ligne de commande pour générer CMAKE_PREFIX_PATH :

ls -d $(brew list -1 | grep qt | tail -1 | xargs brew --cellar)/*/lib/cmake

Interface graphique CMake

Ouvrez l'application CMake, et remplissez les champs source et dossier de compilation. Dans cet exemple, il s'agirait de /Users/username/FreeCAD/FreeCAD-git' pour les sources et /Users/username/FreeCAD/build pour le dossier de build.

Ensuite, cliquez sur le bouton Configure pour remplir la liste des options de configuration. Cela affichera une boîte de dialogue vous demandant de spécifier quel générateur utiliser. Laissez la valeur par défaut Unix Makefiles. La configuration échouera pour la première fois car certaines options doivent être changées. Remarque: vous devrez cocher la case à cocher Advanced pour obtenir toutes les options.

Définissez les options du tableau ci-dessus, puis cliquez à nouveau sur Configure puis sur Generate.

CMake en lignes de commande

Entrez ce qui suit dans le terminal.

export PREFIX_PATH="/usr/local/opt/qt5152;\
/usr/local/Cellar/nglib/v6.2.2007/Contents/Resources;\
/usr/local/Cellar/vtk@8.2/8.2.0_1/lib/cmake;"
$cd ~/FreeCAD/build
$cmake \
  -DCMAKE_BUILD_TYPE="Release"   \
  -DBUILD_QT5=1                  \
  -DWITH_PYTHON3=1               \
  -DCMAKE_PREFIX_PATH="$PREFIX_PATH" \
  -DPYTHON_EXECUTABLE="/usr/local/bin/python3" \
  -DFREECAD_USE_EXTERNAL_KDL=1   \
  -DCMAKE_CXX_FLAGS='-std=c++14' \
  -DBUILD_FEM_NETGEN=1           \
  -DFREECAD_CREATE_MAC_APP=1     \
  -DCMAKE_INSTALL_PREFIX="./.."  \
  ../FreeCAD-git/

Exécuter make

Enfin, à partir d’un terminal, exécutez make pour compiler et lier FreeCAD et générer le paquet applicatif.

cd ~/FreeCAD/build
make -j5 install

L'option -j spécifie le nombre de processus de création à exécuter simultanément. Prendre le nombre de cœurs de processeur et ajouter un est généralement le bon nombre à utiliser. Cependant, si la compilation échoue pour une raison quelconque, il est utile de réexécuter make sans l'option -j afin de pouvoir voir exactement où l'erreur s'est produite.

Voir aussi Compilation (accélération).

Si make se termine sans erreur, vous pouvez maintenant lancer FreeCAD en double-cliquant sur l'exécutable dans le Finder.

Mise à jour depuis Github

Le développement de FreeCAD est rapide ; chaque jour ou presque, il y a des corrections de bugs ou de nouvelles fonctionnalités. Pour obtenir les dernières modifications, utilisez git pour mettre à jour le répertoire source (voir Gestion du code source), puis réexécutez CMake et suivez les étapes ci-dessus. Dans ce cas, il n’est généralement pas nécessaire de commencer par un répertoire de build vierge et les compilations suivantes iront généralement beaucoup plus vite que la première.

Faire une compilation avec Qt4 et Python 2.7

FreeCAD est passé de Qt 4 à Qt 5 comme homebrew. Qt 4 n'est plus disponible en option pour une nouvelle version sur macOS après la transition Qt 5. Python 2.7 est obsolète dans homebrew et macOS à venir et nous ne le supportons plus non plus pour la version macOS.

Dépannage

Un segfault sur le lancement de Qt5

Si Qt4 a été précédemment installé via Homebrew et que vous faites un build ensuite avec Qt5, vous pouvez obtenir une exception EXC_BAD_ACCESS (SEGSEGV) lors du lancement de la nouvelle version de Qt5. Le correctif consiste à désinstaller manuellement Qt4.

brew uninstall --ignore-dependencies --force cartr/qt4/shiboken@1.2 cartr/qt4/pyside@1.2 cartr/qt4/pyside-tools@1.2 cartr/qt4/qt-legacy-formula

Fortran

"No CMAKE_Fortran_COMPILER could be found." (Aucun CMAKE_Fortran_COMPILER n'a pu être trouvé) lors de la configuration - Les anciennes versions de FreeCAD nécessiteront l'installation d'un compilateur Fortran. Avec Homebrew, faites "brew install gcc" et essayez à nouveau de configurer cmake en donnant le chemin à Fortran, c'est-à-dire -DCMAKE_Fortran_COMPILER=/opt/local/bin/gfortran-mp-4.9, ou utilisez de préférence une version plus récente de la source FreeCAD!

OpenGL

Voir OpenGL sur MacOS pour les problèmes OpenGL lorsque Qt 4.8 et versions antérieures sont utilisées sous MacOS.

FreeType

Si vous utilisez des versions de CMake antérieures à la version 3.1.0, il est nécessaire de définir la variable CMake FREETYPE_INCLUDE_DIR_freetype2 manuellement, par exemple /usr/local/include/freetype2.

Instructions de compilation supplémentaires

FreeCAD peut être construit à partir du dernier master git hébergé sur github et lancé à partir d'une CLI en utilisant les bibliothèques fournies par le tap homebrew-freecad. Pour une liste complète des instructions de construction, voir ici.

Arrow-left.svg Page précédente : Compiler sous Linux
Page suivante : Compiler sur Docker Arrow-right.svg