====== Commit 2010-12-01 ====== ===== Portage Mac OS X ===== ==== ...mais pourquoi? ==== {{ :commit:2010:metaforonmacosx.jpg|C'est ça un Mac (et une aspiratrice FNRS)}} 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. * La lecture (type [[wp>POSIX]]) de l'adresse [[wp>MAC_address|MAC]] ne fonctionnait pas sous Mac (ahaha, elle est bonne!). J'ai dû réécrire un code adapté au Mac (système [[wp>BSD]]). Deux configs cmake ont été créées: * ''CMake/cocoa.cmake'': compilation en ligne de commande (Makefiles) * ''CMake/cocoaX.cmake'': génération du projet [[http://developer.apple.com/technologies/tools/xcode.html|XCode]] Si j'ai bien compris, [[wp>Cocoa_(API)|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: * [[http://qt.nokia.com/downloads/qt-for-open-source-cpp-development-on-mac-os-x|Qt framework]] suffit - Télécharger/installer [[http://www.cmake.org/files/v2.8/cmake-2.8.3-Darwin-universal.dmg|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 [[http://www.pcre.org/|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é de ''oo_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 (actuellement ''cocoaX.cmake'' produit un projet "Release" uniquement). {{:commit:2010:capturemacosx-small.jpg|Metafor sous Mac OS X}} --- //[[romain.boman@gmail.com|Romain BOMAN]] 2010/12/01 10:08//