CEllenõrizze és munka függőségek

CVégezze lehetővé teszi, hogy gyorsan és egyszerűen írni a build szkripteket építeni cross-platform szoftverfejlesztési projektek. Windows alatt létrehozott projektek Visual Studio, Linux alatt - Makefile fájlt. Egyéb támogatott fejlesztési környezetet.

CEllenõrizze de azt is kényelmesen csatlakoztathatja függőség (harmadik fél könyvtárak) a projekthez. Itt CEllenõrizze számos olyan funkciót, amit érdemes megfontolni röviden.

Keresés könyvtár

Ahhoz, hogy csatlakoztassa a külső könyvtárak igényeit legalább mondja a fordító include path a linker és - a könyvtár (.lib így.). CEllenõrizze is meg kell találnia az utat a parancsokat és find_path find_library. amely a legegyszerűbb formája a következőképpen néz ki:

Ha a név imya_zagolovochnogo_fayla fájl található, akkor a teljes elérési utat a könyvtárba, hogy kell írni a változó var1 ahol ez a fájl. Ha a név könyvtár név fájl található, a változó var2 lesz írva a teljes elérési utat.

Ezt követően, ezeket a változókat lehet csatlakoztatni az összeszerelési célokra:

De ez csak ahol CGyõzõdjön megkeresi? Megadhat egy sor szabványos módon, mint például:

Ez jól működik Linuxon is, ahol az összes könyvtárat általában számos szabvány módon. Windows alatt, annál rosszabb a helyes könyvtár bárhol lehet.

Akkor egyetértenek abban, hogy amikor telepíti a könyvtár egy számítógépen úgy, ahogy van előírva a változó PEREMENNAYA_OKRUZHENIYA környezetet. CEllenõrizze akkor lesz képes használni:

Ha minden sikerül, akkor a felhasználó manuálisan kell írja be a kívánt módon CGyõzõdjön felület.

egyszerűsítése keresés

Az összetett harmadik fél könyvtárak egy csomó modulok és változatok is szüksége lehet egy nagy kupac parancsok és find_path find_library. Az egyszerűség kedvéért ezeket a parancsokat lehet egy külön script nevű FindBIBLIOTEKA.cmake.

Akkor majd hívja a script find_package csapat:

(És ne felejtsük el, hogy regisztrálják magukat a változó CMAKE_MODULE_PATH utat a script mappába).

Ez nagyban leegyszerűsíti a szerkezet a gyökér CMakeLists.txt fájlt. Szintén népszerű könyvtárak léteznek szkriptek keresni, vannak telepítve CGyõzõdjön. Linux alatt ezek a scriptek a mappa / usr / share / CGyõzõdjön / modulok. és a Windows a C: \ Program Files (x86) \ CGyõzõdjön \ share \ CGyõzõdjön-3.2 \ modulok.

Emellett egyes könyvtárak az ilyen szkripteket keresni maguknak. Ebben az esetben meg kell másolni magát a projekthez a tárolóból egy harmadik fél könyvtár.

Importálása összeszerelés céljaira

Amellett, hogy a módját, hogy tartalmazza a fájlok és könyvtárak az információt fordító beállításai a meghatározások előfeldolgozó függőség függőség, stb Nem lenne kényelmes dolgozni a harmadik fél könyvtárak, mint a közönséges szerelvény célra.

CEllenõrizze lehetővé teszi. Ehhez létre kell hozni egy „virtuális” épít cél, és leírja annak tulajdonságait. A terminológia e CGyõzõdjön építmények cél úgynevezett importált.

Létrehozása és leírják a célja a szerelvény lehet behozni a kulcsszó importálják. például:

Akkor majd csatlakoztassa a külső építmények cél, hogy mi célból:

Amikor a szerelvény a projekt automatikusan bejegyzésre kerül az utat header fájlokat és könyvtárakat, előfeldolgozó meghatározása. Ez a módszer alternatívájaként a funkciók használatának és find_library find_path.

Leírás az importált szerelvények céljából célszerű elvégezni egy külön script. De jobb, ha ugyanaz a külső könyvtár generál a forgatókönyvet számunkra. Leírja, hogyan kell létrehozni egy script automatikusan.

Ezután a projekt elég lesz ahhoz, hogy csatlakoztassa a kész forgatókönyvet:

fordítási függőségek

De mi van, ha a rendszer nem rendelkezik a függőség? Kérheti a felhasználó számára, hogy telepítse, vagy bízza CGyõzõdjön-script.

Két alapvető stratégiát, attól függően, hogy a méret a külső könyvtár.

A forráskód egy kis könyvtár, akkor egyszerűen add hozzá a forrás fája a projekt, például, hogy egy almappát 3rdParty. Ezután a könyvtár is csatlakozik a gyökér CMakeLists.txt add_subdirectory fájlt a következő paranccsal:

Akkor ez a könyvtár kell összeállítani együtt a projekt, és elérhető lesz, hogy építsenek a cél.

Ha egy külső könyvtár túl nagy, akkor a parancs ExternalProject_Add. Például:

A parancs több paramétert. Ez lehetővé teszi, hogy letölt egy fájlt az internetről, és csomagolja ki vagy klónozására adattár, külön felhívás CGyõzõdjön egy példányának létrehozásához a Visual Studio vagy Makefile állományok projekteket. A többfunkciós kombájn.

Azonban a csapat megvannak a maga hátrányai. Az a tény, hogy a konfigurációs és összeszerelése külső könyvtár nem fordul elő ExternalProject_Add. Előfordulnak egyidejűleg a szerelvény a projekt, így mielőtt a szerelvény bármely könyvtárak maguk, sem a header fájlokat vagy szkript nem létezik. Ez azt jelenti, hogy find_library csapat. find_path fog hibákat a konfiguráció CGyõzõdjön. hogy célzott külső könyvtár elérhető lesz ...

Ezért ExternalProject_Add csapat nem csodaszer, és fel kell használni óvatosan.

Supersborka

A beszélgetések az interneten találkoztam a megközelítés építeni a projekt alapján ExternalProject_Add. amely nevezték „supersborkoy”.

Az ötlet az, hogy a harmadik fél könyvtárak, valamint a projekt összegyűjteni a ExternalProject_Add. Root CMakeLists.txt egyszerűen tartalmazza hívásokat a csapat, és mindent.

Ebben az esetben a letöltés és a konfigurációs zajlik az összeszerelés során. Ha hívjuk a make parancs Linux vagy fut a szerelvény a Visual Studio a Windows, a következő történik:

  1. Külső könyvtár letöltődik, konfigurálható fog létrehozni.
  2. Beállítható a projekt (most find_library. Find_path kiváltott hiba nélkül, mert a külső könyvtár már fizikailag létezik), és összegyűjtjük.

Kapcsolódó cikkek