Table of Contents
Commit 2010-12-01
Portage Mac OS X
...mais pourquoi?
Grâce à Damien Watrin qui démarre un projet FNRS sur le couplage fluide structure, le source Metafor est compilable sous Mac OS X. Le code a dû être légèrement modifié à deux endroits:
- L'instanciation de templates dans des fichiers d'entête de
mtShapeFunctions
ne posaient pas de problème sous les autres plateformes. C'est évidemment quelque chose qui faut éviter puisque cela aurait dû conduire à du code “multiply defined” au link. Les instanciations problématiques ont été déplacées dans les fichiers “.cpp” adéquats.
Deux configs cmake ont été créées:
CMake/cocoa.cmake
: compilation en ligne de commande (Makefiles)CMake/cocoaX.cmake
: génération du projet XCode
Si j'ai bien compris, Cocoa désigne une sorte de .NET version Mac, c'est à dire un framework permettant d'accéder au réseau, au multimédia, etc.
Préparation du système
- Télécharger/installer MKL MACOSX:
- dispo dans “Intel C++ composer XE” (anciennement “Intel C++ compiler prof edition”)
- Télécharger/installer Qt:
- Qt framework suffit
- Télécharger/installer CMake précompilé
- [python (2.6.1) est deja installé]
- Télécharger sources VTK
- dézipper dans /Developer/VTK
- mouliner les sources VTK ⇒ /Developer/VTKB
- activer les options classiques (ne pas oublier GUISUPPORT et GL2PS)
make -j 4
sudo make install
⇒ installe dans/usr/local/lib
et/usr/local/include
- Télécharger les sources SWIG (une vieille version de swig (1.3.31) est deja installée)
- dezipper dans
/Developer
- SWIG requiert “PCRE - Perl Compatible Regular Expressions”
- télécharger le src de PCRE
- compiler/installer PCRE (
configure
/make
/make install
)
- compiler/installer SWIG (configure/make/make install) ⇒ !!
/usr/local/bin/swig
- Configurer
dyld
(équivaut àldd
sous linux):- dans
~/.profile
:DYLD_LIBRARY_PATH=/usr/local/lib/vtk-5.6/:/opt/intel/mkl/lib
Compilation Metafor proprement dite
- [svn/ssh sont deja installés]
- faire un co du source Metafor.
- créer répertoire
oo_metaB
a coté deoo_meta
- dans
oo_metaB
:cmake -C ../oo_meta/CMake/cocoa.cmake ../oo_meta
Ca donne quoi?
En gros ça marche plutôt bien. Au niveau perfs, le tube
(voir image ci-dessous) a même tourné plus vite que sur mon PC. A mon avis, vu le système de type “Linux” en dessous de la couche graphique, on peut s'attendre à des perfs similaires à celles qu'on a sous Linux (c'est-à-dire meilleure que sous windows).
Le projet “Xcode” semble OK. Il inclut une interface pour SVN qui a l'air de fonctionner correctement (c'est pas aussi clair que TortoiseSVN mais c'est utilisable).
Qq perspectives
- Idéalement il serait intéressant de passer une batterie. C'est difficile aujourd'hui vu que certains trucs n'ont pas été compilés (numpy, interface python/vtk/triangle/tetgen/gmsh). De plus, je ne sais pas si une version de Samcef existe sous mac.
- On pourrait également envisager à terme de créer un installeur si certains étudiants veulent travailler sous Mac dans le futur.
- Compilation de
oo_nda
: je n'ai pas fait vu que Damien n'en a pas besoin a court terme. - Utilisation du compilateur Intel (actuellement
gcc
), peut-être plus rapide. - Utilisation des MKL version multi-threads (actuellement séquentiel).
- gestion correcte du
${OutDir}
sous Xcode (actuellementcocoaX.cmake
produit un projet “Release” uniquement).
— Romain BOMAN 2010/12/01 10:08