Qt WinAPI - lecke 004
Helyes programozó - egy lusta programozó. Ha lehet automatizálni valamit, akkor feltétlenül kell csinálni. Például, lehet futtatni automatikusan a szerelvény windeployqt online és offline szerelők, valamint a készítmény az alkalmazás adattár Qt keretrendszer telepítő és a fekete mágia QMake.
Annak érdekében, hogy ez a legszebb módon, az szükséges, hogy a projekt került megrendezésre a szerkezetet subdirs. hogy áll a több projektet. Nem kell minden alkalommal, amikor építeni a projekt létrehozásához szerelők. Ezért a projekt lesz egy külön telepítő.
De automatizálás windeployqt hagyjuk a fő projekt.
A szerkezet a projekt
Tehát, van egy projekt két alprojekt:
- Hello.pro - alkalmazás projekt
- Installer.pro - telepítő projekt
A fő projekt a leggyakoribb „Hello world”, de a legnagyobb érdeklődés rejlik a forgatókönyvet QMake, amely felelős windeployqt alkalmazás.
A második projekt minimális struktúrát építeni online és offline szerelők, valamint építeni a tárolóból. QMake script egy profilt a projekt magában foglalja a szükséges információt, hogy automatizálják a build szerelők.
Automation WinDeployQt
HelloInstaller.pro
Amellett, hogy a szokásos végrehajtható utasításokat összeszerelés könyvtárak és más kimeneti fájlokat a projektben, ezen QMake script elindítja a windeployqt segédprogramot.
Ha a szerelési végrehajtható mappa egyértelmű, akkor meg kell érteni, hogy ugyanaz a dolog történik, amikor a windeployqt.
QMAKE_POST_LINK - Ez az irányelv meghatározza a keresetet, miután a projekt befejezését épít. Ez az, amit csinálunk, miután a végrehajtható lett lefordítva.
$$ (QTDIR) - egy változó, amely tartalmazza az út a Qt szerelőkészlet. Az én esetemben ez a D: \ Qt \ 5.7 \ mingw53_32.
Elvégzésére windeployqt nem feltétlenül jelenti azt, egy futtatható fájl, ez elegendő ahhoz, hogy adja meg a mappát érvként, ahol a fájl található. Ennek eredményeként a projekt befejezése a szerelvény, akkor automatikusan építeni a szükséges kérelmeket a dll. és lesznek mellé a futtatható fájlt.
Építsd a szerelők és a tároló
Építsd a szerelők és online projekt adattár segítségével történik Qt Installer Framework, amely összetételében segédprogram építeni szerelők magukat, és a készítmény a kérelem tárolóból.
Ahhoz, hogy összeállítsa a két közművek ennek keretében kerül felhasználásra:
- binarycreator - segédprogram építeni a telepítő;
- repogen - eszköz előkészítése online adatbázis.
Mielőtt dolgunk QMake script, vizsgálja meg a konfigurációs fájl és könyvtár struktúrát építeni szerelők.
könyvtár struktúra
Tekintsük a szerkezet a projekt:
- config - amely a konfigurációs fájl a telepítő:
- config.xml - ebben a fájlban információt tartalmaz egy távoli repository, verzió, a projekt neve, stb
- csomagok - ami csomagolásban, amelyből a szerelők kell gyűjteni, például:
- ru.evileg.helloinstaller - a könyvtár az első csomag
- meta - könyvtár, mely tartalmazza installyaionnye szkriptek, amelyek meghatározzák a különleges funkcionális, például a záró aktív példányának a kérelmet, ha a kérelem frissítik, vagy előírását a rendszerleíró adatbázisban.
- Package.xml - minimális verziószáma a jelenléte a fájlt, ami le lesz írva a projekt változat és épít dátumot. Ez az információ szükséges a formáció Updates.xml fájl kerül az online adattár.
- adatok - ez a könyvtár kell a végrehajtható fájlt, és minden szükséges dll, erőforrás fájlok, fájlok, stb Ez minden, ami szükséges, hogy létrejöjjön egy működő alkalmazás.
- meta - könyvtár, mely tartalmazza installyaionnye szkriptek, amelyek meghatározzák a különleges funkcionális, például a záró aktív példányának a kérelmet, ha a kérelem frissítik, vagy előírását a rendszerleíró adatbázisban.
- ru.evileg.ecolor - és, például a könyvtár a második csomag tartalmát, amely hasonló szerkezetű, mint a korábbi kiviteli alaknál.
- ru.evileg.helloinstaller - a könyvtár az első csomag
config.xml
Package.xml
Ott már jelezte további információt a telepítés a pályázati eljárás a rendszerben, vagyis a létezés bizonyos formáinak ablakok, telepítés scriptek, például, hogy bevigye az információt az adatbázisból. Szintén adunk tájékoztatást a kérelem megjelenési dátumot, ami szintén elhelyezhető Updates.xml fájlt.
Ezt a fájlt kell tartalmaznia az egyes csomagokban. A telepítő tud nyújtani képes telepíteni számos összetevő, emlékszik Qt telepítőt, van egy csomó pontot. Ennek megfelelően, az ilyen csomag a pontot.
- DisplayName - az összetevő neve. Kötelező tag.
- Leírás - az alkatrész leírását. Kötelező tag.
- Verzió - version komponentayu. Kötelező tag.
- Releasedate - a régebbiek. Kötelező tag.
- Alapértelmezett - az alapértelmezett beállítás komponens, azaz, ha a komponens kell telepíteni, vagy sem.
- Név - packet azonosító formájában a domain név. Kötelező tag.
- ForcedInstallation - azt jelzi, hogy az alkatrész szükséges a telepítéshez, és a felhasználó kizárhatja azt a növény
- RequiresAdminRights - azt jelzi, hogy a csomag kell telepíteni rendszergazda jogosultsággal. Mező nem kötelező. És a legérdekesebb dolog az, hogy a folyamat telepítő adatvesztést rendszergazda jogokkal. Azaz, egyes beavatkozásokra van szükség, hogy újra figyelmezteti a felhasználót rendszergazda jogokkal.
Installer.pro
Itt van egy lehetőség a build telepítők külön mappa Release és Debug változatban. Csakúgy, mint az adattár előállítására kiadott verziók.
Ki kell építeni az offline telepítő binarycreator a segédprogramot az alábbi lehetőségek közül:
- --kizárólag offline - amint az a neve, azt jelzi, hogy összegyűjti az offline telepítő
- -c - meghatározza az elérési utat a konfigurációs fájl
- -p-Jelzi utat a csomagokat a folyamat QtIFW meg fogja érteni, hogy ilyen csomagolásokat a telepítő, tekintettel a konfigurációs fájlokat és szkriptek névtárban
Megjegyzés. Az online változata a telepítő mindegy, csak a paraméterek --offline csak helyébe --online csak.
Az adattár képzési használható segédprogram repogen. az alábbi paraméterekkel:
- -p - meghatározza a mappát a csomagok
- -i - Meghatározza a csomag tartalmazza a telepítő
- -frissítés - meghatározza, hogy frissítenie kell a adattár a következő utat. Ha nem adattár, az újat hoz létre ezen a módon.