Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:macosx [06/08/2018 00:36]
scorpio810 [Compiler un programme C++/Qt : Qt 5.x]
doc:macosx [20/09/2019 09:42]
scorpio810
Ligne 1: Ligne 1:
 +~~NOCACHE~~
 +====== QElectroTech sous MacOSX ======
  
 +
 +
 +
 +
 +
 +<​code>​
 +command xcode-select --install
 +/​usr/​bin/​ruby -e "​$(curl -fsSL https://​raw.githubusercontent.com/​Homebrew/​install/​master/​install)"​
 +brew tap kde-mac/kde
 +brew install kde-mac/​kde/​kf5-karchive
 +brew install kde-mac/​kde/​kf5-kwidgetsaddons
 +brew install kde-mac/​kde/​kf5-kcoreaddons
 +
 +
 +Copy your libs KF5 *.pri  on /​usr/​local/​opt/​qt5/​mkspecs/​modules/ ​ like :
 +
 +cp /​usr/​local/​opt/​kf5-kwidgetsaddons/​mkspecs/​modules/​qt_KWidgetsAddons.pri ​ /​usr/​local/​opt/​qt5/​mkspecs/​modules/​
 +cp /​usr/​local/​opt/​kf5-kcoreaddons/​mkspecs/​modules/​qt_KCoreAddons.pri /​usr/​local/​opt/​qt5/​mkspecs/​modules/​
 +cp /​usr/​local/​opt/​kf5-karchive/​mkspecs/​modules/​qt_KArchive.pri /​usr/​local/​opt/​qt5/​mkspecs/​modules/​
 +</​code>​
 +
 +
 +<​code>​
 +cat .bash_profile ​
 +# Setting PATH for Qt5.13.1
 +PATH="/​usr/​local/​Cellar/​qt/​5.13.1/​bin:​${PATH}"​
 +export PATH=/​usr/​local/​lib:​$PATH
 +export PATH
 +
 +</​code>​
 +
 +<​code>​
 +git clone git://​git.tuxfamily.org/​gitroot/​qet/​qet.git qet_git
 +</​code>​
 +
 +<​code>​
 +bash qet_git/​misc/​MacQetDeploy.sh ​
 +</​code>  ​
 +
 +Or 
 +<​code>​
 +cd qet_git/
 +qmake -spec macx-clang
 +make -j16
 +</​code>​
 +
 +
 +
 +
 +Cette page regroupe l'​ensemble des connaissances de l'​équipe sur la compilation et l'​exécution de QElectroTech sous MacOS X. Le développeur ne disposant pas d'un ordinateur Apple, nous ne garantissons strictement rien quant au bon fonctionnement de QElectroTech sous MacOS X.
 +
 +Testé sous El Capitan (10.11).
 +
 +===== Préparation de l'​environnement =====
 +==== Compiler un programme C++ : XCode ====
 +Pour disposer d'un compilateur C++ et de l'​outil make, vous devez installer ​
 +[[https://​itunes.apple.com/​us/​app/​xcode/​id497799835?​ls=1&​mt=12|Xcode]] (lancer l'​application au moins une fois pour terminer l'​installation). ​
 +
 +{{:​doc:​mac_xcode.png|}}
 +
 +Vérifications : 
 +<​code>​
 +# Ouvrir une console ; l'​utilitaire make doit être présent :
 +NomDeLaMachine:​~ votre_user$ make
 +make: *** No targets specified and no makefile found. ​ Stop.
 +</​code>​
 +==== Compiler un programme C++/Qt : Qt 5.x ====
 +
 +Téléchargez et installez Qt pour MacOS :
 +  * Se rendre sur [[http://​www.qt.io/​download/​|Qt project]]
 +  * Répondre aux questions :
 +     - Is your application or device being developed for : Open source distribution under a LGPL or GPL licence
 +     - Are you prepared to make your application source code publicly available : Yes
 +     - Are you able to comply with the obligations of the LGPL (or GPL) and/or does your corporation allow open source usage ? Yes
 +     - Get Started
 +     - Download now (Le QT Online installer for OS X)
 +  * Télécharger et installer le sdk de Qt5.x 
 +
 +PS : Si vous avez ce message d'​erreur :
 +
 +{{:​doc:​mac_devnonidentifier.png|}}
 +
 +Aller dans  /​Préférences système /Sécurité et confidentialité/​ Général.
 +
 +Et sélectionner « N’importe où » : 
 +
 +{{:​doc:​mac_securite.png?​300|}}
 +
 +<​code>​sudo spctl --master-disable</​code>​
 +
 +______________________________
 +Indiquer les variables d’environnement Qt au bash :
 +  - Afficher les fichiers cachés ​
 +<​code>​ defaults write com.apple.finder AppleShowAllFiles TRUE</​code>​
 +  - Ouvrir le fichier : /​Users/​Yoann/​.bash_profile
 +  - rajouter (en adaptant le numéro de version) :
 +<​code>​
 +# Setting PATH for Qt5.5
 +PATH="/​Users/​Yoann/​Qt/​5.5/​clang_64/​bin:​${PATH}"​
 +export PATH
 +</​code>​
 +
 +Vérifications dans la console du Terminal :
 +<​code>​
 +# les variables d'​environnements sont présentes :
 +NomDeLaMachine:​~ votre_user$ echo $PATH
 +</​code>​
 +On doit retrouver quelque chose avec : /​Users/​Yoann/​Qt/​5.5/​clang_64/​bin
 +
 +<​code>​
 +# L'​utilitaire qmake doit être présent :
 +NomDeLaMachine:​~ votre_user$ which qmake
 +/​Users/​Yoann/​Qt/​5.5/​clang_64/​bin/​qmake
 +</​code>​
 +
 +<​code>​
 +# Vérification macdeployqt doit être présent :
 +NomDeLaMachine:​~ votre_user$ which macdeployqt
 +/​Users/​Yoann/​Qt/​5.5/​clang_64/​bin/​macdeployqt
 +</​code>​
 +
 +<​del>​Installer [[http://​brew.sh/​index_fr.html|Homebrew]] + [[https://​www.topbug.net/​blog/​2013/​04/​14/​install-and-use-gnu-command-line-tools-in-mac-os-x/​|coreutils pour étendre les fonctions de cp]]
 +
 +<​code>​
 +/​usr/​bin/​ruby -e "​$(curl -fsSL https://​raw.githubusercontent.com/​Homebrew/​install/​master/​install)"​
 +brew install coreutils
 +</​code></​del>​
 +
 +==== Télécharger les sources : Subversion ====
 +Pour télécharger et mettre à jour les sources de QElectroTech,​ vous aurez besoin de Subversion qui a été installé en même temps Xcode.
 +
 +Vérifications : 
 +<​code>​
 +# Ouvrez une console
 +NomDeLaMachine:​~ votre_user$ which svn
 +/​usr/​local/​bin/​svn
 +NomDeLaMachine:​~ votre_user$ svn --version
 +svn, version 1.4.4 (r25188)
 +compiled Jun 23 2007, 08:53:30
 +</​code>​
 +
 +
 +Ouvrer le terminal, taper  la commande ​
 +<​code>​
 +svn checkout svn://​svn.tuxfamily.org/​svnroot/​qet/​qet/​trunk/​ Qet-svn/ ​
 +</​code>  ​
 +Appuyer sur la touche « entrer » de votre clavier et patienter … 
 +{{:​doc:​mac_svndepot.png|}}
 +
 +===== Faire un package avec l'​application =====
 +Ouvrir le terminal, taper la commande, « bash » plus un espace, et glisser le fichier « MacQetDeploy.sh »  se trouvant dans le dossier /​Qet-svn/​misc/​. Appuyer sur la touche « entrer » de votre clavier et patienter … 
 +
 +{{:​doc:​mac_qetdeploylanch.png|}}
 +
 +Vérifier qu'il n’y a pas d’erreur :
 +
 +{{:​doc:​mac_qetdeployresult.png|}}
 +
 +Si les erreurs suivantes se produisent, ignorer les, elles correspondent aux bibliothèques mysql et PostgreSQL qui ne sont pas utilisées : 
 +<​code>​
 +ERROR: no file at "/​opt/​local/​lib/​mysql55/​mysql/​libmysqlclient.18.dylib"​
 +ERROR: no file at "/​usr/​local/​lib/​libpq.5.dylib"​
 +</​code>​
 +
 +Le script vient de télécharger la dernière mise à jour des sources, les compiler, et placer l’application dans un fichier .dmg près à être distribué. L’image disque a comme nom, qelectrotech_ suivi du numéro de version puis du numéro de révision.
 +Elle se trouve dans :
 +/​packaging/​mac-osx/​
 +
 +Un lien vers la documentation,​ un dossier d'​exemples,​ et un raccourci du dossier Applications sont également inclus dans l’image disque. ​
 +
 +{{:​doc:​mac_imagedisque.png|}}
 +===== Problèmes connus, remarques, doléances =====
 +
 +<​del>​le fichier info.plist est incomplet à ce jour donc :
 +  * pas d’icon sur les sauvegardes de projet (fichier.qet),​
 +  * pas de possibilité de lancer l’application en cliquant sur une sauvegarde (fichier.qet),​ ni sur un element (fichier.elmt) ou un cartouche (fichier.titleblock) comme sur les autres OS Linux et MS Windows.</​del>​
 +  ​
 +  ​
 +  ​
 +Voir -> info.plist[[https://​developer.apple.com/​library/​content/​documentation/​General/​Reference/​InfoPlistKeyReference/​Articles/​AboutInformationPropertyListFiles.html| info.plist]] ​
 +
 +[[http://​www.mactipsandtricks.com/​website/​articles/​Wiley_HT_appBundles2.lasso|Application Bundles]].
 +
 +[[https://​developer.apple.com/​library/​content/​documentation/​DataManagement/​Conceptual/​DocBasedAppProgrammingGuideForOSX/​ApplicationCreationProcess/​ApplicationCreationProcess.html|Document-Based App Programming Guide for Mac]]
 +
 +
 +[[https://​developer.apple.com/​library/​content/​documentation/​General/​Reference/​InfoPlistKeyReference/​Articles/​CoreFoundationKeys.html#//​apple_ref/​doc/​uid/​20001431-101685|CFBundleDocumentTypes]]
 +
 +
 +Info.plist
 +<​code=xml>​
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​
 +<​!DOCTYPE plist PUBLIC "​-//​Apple//​DTD PLIST 1.0//​EN"​ "​http://​www.apple.com/​DTDs/​PropertyList-1.0.dtd">​
 +<plist version="​1.0">​
 +<​dict>​
 + <​key>​CFBundleDocumentTypes</​key>​
 + <​array>​
 + <​dict>​
 + <​key>​CFBundleTypeIconFile</​key>​
 + <​string>​elmt</​string>​
 + <​key>​CFBundleTypeExtensions</​key>​
 + <​array>​
 + <​string>​elmt</​string>​
 + </​array>​
 + <​key>​CFBundleTypeRole</​key>​
 + <​string>​Editor</​string>​
 + </​dict>​
 + <​dict>​
 + <​key>​CFBundleTypeIconFile</​key>​
 + <​string>​titleblock</​string>​
 + <​key>​CFBundleTypeExtensions</​key>​
 + <​array>​
 + <​string>​titleblock</​string>​
 + </​array>​
 + <​key>​CFBundleTypeRole</​key>​
 + <​string>​Editor</​string>​
 + </​dict>​
 + <​dict>​
 + <​key>​CFBundleTypeIconFile</​key>​
 + <​string>​qet</​string>​
 + <​key>​CFBundleTypeExtensions</​key>​
 + <​array>​
 + <​string>​qet</​string>​
 + </​array>​
 + <​key>​CFBundleTypeRole</​key>​
 + <​string>​Editor</​string>​
 + </​dict>​
 + </​array>​
 + <​key>​CFBundleExecutable</​key>​
 + <​string>​qelectrotech</​string>​
 + <​key>​CFBundleIconFile</​key>​
 + <​string>​qelectrotech.icns</​string>​
 + <​key>​CFBundleIdentifier</​key>​
 + <​string>​org.qelectrotech</​string>​
 + <​key>​CFBundleInfoDictionaryVersion</​key>​
 + <​string>​6.0</​string>​
 + <​key>​CFBundlePackageType</​key>​
 + <​string>​APPL</​string>​
 + <​key>​CFBundleSignature</​key>​
 + <​string>????</​string>​
 + <​key>​NOTE</​key>​
 + <​string>​This file was generated by Qt/​QMake.</​string>​
 + <​key>​CFBundleShortVersionString</​key>​
 + <​string></​string>​
 + <​key>​NSHighResolutionCapable</​key>​
 + <​string>​YES</​string>​
 + <​key>​NSHighResolutionMagnifyAllowed</​key>​
 + <​string>​NO</​string>​
 + <​key>​NSHumanReadableCopyright</​key>​
 + <​string>​GNU Public License, Version 2, June 1991</​string>​
 + <​key>​NSPrincipalClass</​key>​
 + <​string>​NSApplication</​string>​
 +</​dict>​
 +</​plist>​
 +</​code>​
 +
 +
 +
 +<​code>​
 +defaults write com.apple.LaunchServices LSHandlers -array-add "<​dict><​key>​LSHandlerContentTag</​key>​ <​string>​qet</​string><​key>​LSHandlerContentTagClass</​key>​ <​string>​public.filename-extension</​string><​key>​LSHandlerRoleAll</​key>​ <​string>​com.qelectrotech</​string></​dict>"​
 +defaults write com.apple.LaunchServices LSHandlers -array-add "<​dict><​key>​LSHandlerContentTag</​key>​ <​string>​elmt</​string><​key>​LSHandlerContentTagClass</​key>​ <​string>​public.filename-extension</​string><​key>​LSHandlerRoleAll</​key>​ <​string>​com.qelectrotech</​string></​dict>"​
 +defaults write com.apple.LaunchServices LSHandlers -array-add "<​dict><​key>​LSHandlerContentTag</​key>​ <​string>​titleblock</​string><​key>​LSHandlerContentTagClass</​key>​ <​string>​public.filename-extension</​string><​key>​LSHandlerRoleAll</​key>​ <​string>​com.qelectrotech</​string></​dict>"​
 +/​System/​Library/​Frameworks/​CoreServices.framework/​Versions/​A/​Frameworks/​LaunchServices.framework/​Versions/​A/​Support/​lsregister -kill -domain local -domain system -domain user
 +</​code>​
Imprimer/exporter