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/08/2013 19:49] – [Utilitaires] 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 | ||
| + | |||
| + | </ | ||