Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
doc:dev_windows [11/07/2019 21:25] – [Compiler QET en mode debug] scorpio810 | doc:dev_windows [27/08/2020 10:58] (Version actuelle) – cborn | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Développement sous Windows ====== | ||
+ | Cette page regroupe quelques astuces pour le développement de QET sous Windows. | ||
+ | |||
+ | [[winstatic: | ||
+ | |||
+ | ===== Utilitaires ===== | ||
+ | * Subversion en ligne de commande (svn.exe) est fourni par [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * gdb.exe est fourni par [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | |||
+ | ===== Compiler QET en mode debug ===== | ||
+ | Pour pouvoir lancer '' | ||
+ | |||
+ | |||
+ | |||
+ | ===== Avoir une sortie dans la console ===== | ||
+ | * Éditer le fichier qelectrotech.pro, | ||
+ | * Si, lors de l' | ||
+ | g++ -enable-stdcall-fixup -Wl, | ||
+ | ds -Wl -o release\qelectrotech.exe object_script.qelectrotech.Release | ||
+ | QtSvg4 -lQtXml4 -lQtGui4 -lQtNetwork4 -lQtCore4 | ||
+ | / | ||
+ | collect2: ld returned 1 exit status | ||
+ | mingw32-make[1]: | ||
+ | mingw32-make[1]: | ||
+ | mingw32-make: | ||
+ | </ | ||
+ | |||
+ | ===== Créer un paquet "ready to use" de QElectroTech ===== | ||
+ | Exemple ici avec le trunk. | ||
+ | Pré-requis : MingW (pour '' | ||
+ | Exemple de PATH utilisable : < | ||
+ | |||
+ | ==== Mise en place du répertoire de travail ==== | ||
+ | Lancer une invite de commande : Windows+R => cmd | ||
+ | Se rendre dans un répertoire qui sera dédié au packaging ; veiller à ce qu'il n'y ait pas d' | ||
+ | Y créer un répertoire bin : <code dos> | ||
+ | Faire un check out du répertoire trunk du dépôt Subversion : < | ||
+ | |||
+ | Ou pour ne pas charger le .svn du dépôt Subversion. | ||
+ | |||
+ | < | ||
+ | |||
+ | __On lance la compilation__ | ||
+ | |||
+ | < | ||
+ | mingw32-make -f Makefile.Release</ | ||
+ | |||
+ | ou avec un processeur tres puissant (8 cores) | ||
+ | < | ||
+ | |||
+ | |||
+ | copier le binaire qelectrotech.exe du répertoire release dans le répertoire bin | ||
+ | |||
+ | Ajouter les dll dans le répertoire bin: | ||
+ | |||
+ | '' | ||
+ | < | ||
+ | |||
+ | '' | ||
+ | < | ||
+ | |||
+ | '' | ||
+ | |||
+ | C: | ||
+ | |||
+ | < | ||
+ | |||
+ | '' | ||
+ | |||
+ | C: | ||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | ----------------------------------------- | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === Exemple de l' | ||
+ | |||
+ | *Le répertoire éléments n' | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | < | ||
+ | . | ||
+ | ├── bin | ||
+ | │ ├── imageformats | ||
+ | │ │ └── qjpeg4.dll | ||
+ | │ ├── libgcc_s_dw2-1.dll | ||
+ | │ ├── mingwm10.dll | ||
+ | │ ├── qelectrotech.exe | ||
+ | │ ├── QtCore4.dll | ||
+ | │ ├── QtGui4.dll | ||
+ | │ ├── QtNetwork4.dll | ||
+ | │ ├── QtSql4.dll | ||
+ | │ ├── QtSvg4.dll | ||
+ | │ ├── QtXml4.dll | ||
+ | │ └── sqldrivers | ||
+ | │ | ||
+ | ├── ChangeLog | ||
+ | ├── conf | ||
+ | │ ├── elements | ||
+ | │ ├── qelectrotech.conf | ||
+ | │ └── titleblocks | ||
+ | ├── CREDIT | ||
+ | ├── elements | ||
+ | │ ├── appareils_de_mesure | ||
+ | │ ├── automatisme | ||
+ | │ ├── blocs_de_securite | ||
+ | │ ├── bornes | ||
+ | │ ├── capteurs | ||
+ | │ ├── contacts | ||
+ | │ ├── convertisseurs | ||
+ | │ ├── demarreurs_progressifs | ||
+ | │ ├── domestiques | ||
+ | │ ├── energie | ||
+ | │ ├── fiches | ||
+ | │ ├── haute_tension | ||
+ | │ ├── mecanique | ||
+ | │ │ ├── hydraulique | ||
+ | │ │ └── pneumatique | ||
+ | │ ├── nomenclatures | ||
+ | │ ├── process | ||
+ | │ ├── protections | ||
+ | │ ├── recepteurs | ||
+ | │ ├── references | ||
+ | │ ├── semiconducteurs | ||
+ | │ ├── sources | ||
+ | │ ├── variateurs_de_frequence | ||
+ | │ └── vignettes | ||
+ | ├── ELEMENTS.LICENSE | ||
+ | ├── examples | ||
+ | │ ├── 741.qet | ||
+ | │ ├── ArduinoLCD.qet | ||
+ | │ ├── convertisseur.qet | ||
+ | │ ├── Convoyeur_bouteilles.qet | ||
+ | │ ├── domestique.qet | ||
+ | │ ├── double_sens.qet | ||
+ | │ ├── grafcet.qet | ||
+ | │ ├── Habitat-Schemas_developpes.qet | ||
+ | │ ├── lmdg.qet | ||
+ | │ ├── m_000.qet | ||
+ | │ └── tremie_vibrante.qet | ||
+ | ├── ico | ||
+ | │ ├── application-x-qet-element.ico | ||
+ | │ ├── application-x-qet-project.ico | ||
+ | │ ├── application-x-qet-titleblock.ico | ||
+ | │ └── qelectrotech.ico | ||
+ | ├── Lancer QET.bat | ||
+ | ├── lang | ||
+ | │ ├── qet_ar.qm | ||
+ | │ ├── qet_ca.qm | ||
+ | │ ├── qet_cs.qm | ||
+ | │ ├── qet_de.qm | ||
+ | │ ├── qet_el.qm | ||
+ | │ ├── qet_en.qm | ||
+ | │ ├── qet_es.qm | ||
+ | │ ├── qet_fr.qm | ||
+ | │ ├── qet_hr.qm | ||
+ | │ ├── qet_it.qm | ||
+ | │ ├── qet_pl.qm | ||
+ | │ ├── qet_pt.qm | ||
+ | │ ├── qet_ro.qm | ||
+ | │ ├── qet_ru.qm | ||
+ | │ ├── qt_ar.qm | ||
+ | │ ├── qt_cs.qm | ||
+ | │ ├── qt_de.qm | ||
+ | │ ├── qt_es.qm | ||
+ | │ ├── qt_fr.qm | ||
+ | │ ├── qt_it.qm | ||
+ | │ ├── qt_pl.qm | ||
+ | │ └── qt_pt.qm | ||
+ | ├── LICENSE | ||
+ | ├── qet_uninstall_file_associations.reg | ||
+ | ├── README | ||
+ | ├── register_filetypes.bat | ||
+ | └── titleblocks | ||
+ | ├── A4_1.titleblock | ||
+ | ├── default.titleblock | ||
+ | ├── DIN_A4.titleblock | ||
+ | ├── double-logo.titleblock | ||
+ | └── single-logo.titleblock | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | - Placer dans ce répertoire : | ||
+ | * Un schéma de test nommé '' | ||
+ | * Les scripts présentés dans la section suivante : '' | ||
+ | - | ||
+ | ==== Scripts ==== | ||
+ | 0-compil.bat : | ||
+ | < | ||
+ | @echo off | ||
+ | |||
+ | rem Dossier de travail | ||
+ | set working_directory=%~dp0 | ||
+ | cd /d %working_directory% | ||
+ | |||
+ | rem Mise a jour du depot SVN | ||
+ | svn up | ||
+ | |||
+ | rem compilation | ||
+ | qmake | ||
+ | mingw32-make -f Makefile.Release | ||
+ | |||
+ | rem copie du fichier si la compilation a reussi | ||
+ | if %errorlevel%==0 ( | ||
+ | copy /Y release\qelectrotech.exe bin\ | ||
+ | echo La compilation a reussi. | ||
+ | ) else ( | ||
+ | echo La compilation a echoue. | ||
+ | ) | ||
+ | </ | ||
+ | |||
+ | 1-test.bat : | ||
+ | < | ||
+ | @echo off | ||
+ | |||
+ | rem Dossier de travail | ||
+ | set working_directory=%~dp0 | ||
+ | cd /d %working_directory% | ||
+ | |||
+ | rem choisit des schemas a ouvrir | ||
+ | if " | ||
+ | rem schema a ouvrir par defaut pour le test | ||
+ | set args=test.qet | ||
+ | ) else ( | ||
+ | set args=%* | ||
+ | ) | ||
+ | rem set args=%* | ||
+ | rem lance QElectroTech | ||
+ | @start bin\qelectrotech.exe --common-elements-dir=elements/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | === Cygwin === | ||
+ | |||
+ | |||
+ | svn_donwload_tag.sh | ||
+ | |||
+ | <code bash> | ||
+ | # | ||
+ | |||
+ | # trouve la derniere revision de svn:// | ||
+ | if [ -z " | ||
+ | #HEAD=$(svn --xml info svn:// | ||
+ | HEAD=$(svn --xml info svn:// | ||
+ | #HEAD=$(svn --xml info svn:// | ||
+ | echo -e " | ||
+ | fi | ||
+ | |||
+ | #variables repertoires de travail | ||
+ | # | ||
+ | # | ||
+ | #svn export | ||
+ | |||
+ | #cd $TEMP_DIR | ||
+ | svn export svn:// | ||
+ | #tag de la version | ||
+ | cd qelectrotech_trunk/ | ||
+ | sed -i " | ||
+ | |||
+ | exit | ||
+ | </ | ||
+ | |||
+ | == builder.bat == | ||
+ | |||
+ | |||
+ | <code bash> | ||
+ | rem Dossier de travail | ||
+ | set working_directory=%~dp0 | ||
+ | cd /d %working_directory%\packaging_windows\files\bin | ||
+ | del /s *.exe | ||
+ | cd .. | ||
+ | rd elements /S /Q | ||
+ | rd examples /S /Q | ||
+ | rd lang /S /Q | ||
+ | rd titleblocks /S /Q | ||
+ | |||
+ | MD elements examples lang titleblocks | ||
+ | |||
+ | cd /d %working_directory%\qelectrotech-0.3+svn-x86-win32-readytouse\bin | ||
+ | del /s *.exe | ||
+ | cd .. | ||
+ | rd elements /S /Q | ||
+ | rd examples /S /Q | ||
+ | rd lang /S /Q | ||
+ | rd titleblocks /S /Q | ||
+ | |||
+ | MD elements examples lang titleblocks | ||
+ | |||
+ | cd /d %working_directory% | ||
+ | rd qelectrotech_trunk | ||
+ | |||
+ | move c: | ||
+ | cd /d %working_directory%\qelectrotech_trunk | ||
+ | qmake | ||
+ | mingw32-make -j9 -f Makefile.Release | ||
+ | |||
+ | rem copie du fichier si la compilation a reussi | ||
+ | if %errorlevel%==0 ( | ||
+ | |||
+ | copy /Y release\qelectrotech.exe ..\packaging_windows\files\bin | ||
+ | copy /Y release\qelectrotech.exe " | ||
+ | | ||
+ | xcopy /Y elements ..\packaging_windows\files\elements /s | ||
+ | xcopy /Y elements ..\qelectrotech-0.3+svn-x86-win32-readytouse\elements / | ||
+ | |||
+ | xcopy /Y examples ..\packaging_windows\files\examples /s | ||
+ | xcopy /Y examples ..\qelectrotech-0.3+svn-x86-win32-readytouse\examples /s | ||
+ | |||
+ | xcopy /Y lang\*.qm ..\packaging_windows\files\lang /s | ||
+ | xcopy /Y lang\*.qm ..\qelectrotech-0.3+svn-x86-win32-readytouse\lang /s | ||
+ | | ||
+ | xcopy /Y titleblocks ..\packaging_windows\files\titleblocks /s | ||
+ | xcopy /Y titleblocks ..\qelectrotech-0.3+svn-x86-win32-readytouse\titleblocks /s | ||
+ | |||
+ | cd /d %working_directory%\qt_qm | ||
+ | |||
+ | xcopy /Y ..\packaging_windows\files\lang /s | ||
+ | xcopy /Y ..\qelectrotech-0.3+svn-x86-win32-readytouse\lang /s | ||
+ | |||
+ | | ||
+ | |||
+ | cd /d %working_directory%\packaging_windows | ||
+ | makensis.exe QET.nsi | ||
+ | |||
+ | ) else ( | ||
+ | echo La compilation a echoue. | ||
+ | ) | ||
+ | |||
+ | pause | ||
+ | |||
+ | </ |