Articles

A cmake-ben mi a “projekt”?

a projekt logikusan csoportosít számos célt (azaz könyvtárakat, futtatható fájlokat és egyéni build lépéseket) egy önálló gyűjteménybe, amely önállóan építhető.

a gyakorlatban ez azt jelenti, hogy ha van egy projectparancs a CMakeLists.txt, akkor képesnek kell lennie a CMake futtatására abból a fájlból, és a generátornak létre kell hoznia valamit, ami építhető. A legtöbb kódbázisban építésenként csak egyetlen projekt lesz.

ne feledje azonban, hogy több projektet is beágyazhat. A legfelső szintű projekt tartalmazhat egy alkönyvtárat, amely viszont egy másik önálló projekt. Ebben az esetben a project parancs további hatóköröket vezet be bizonyos értékekhez. Például a PROJECT_BINARY_DIR változó mindig az aktuális projekt root bináris könyvtárára mutat. Hasonlítsa össze ezt a CMAKE_BINARY_DIR, amely mindig a felső szintű projekt bináris könyvtárára mutat. Vegye figyelembe azt is, hogy bizonyos generátorok további fájlokat generálhatnak a projektekhez. Például a Visual Studio generátorok létrehoznak egy .sln megoldásfájlt minden alprojekthez.

használjon alprojekteket, ha a kódbázis nagyon összetett, és a felhasználóknak képesnek kell lenniük bizonyos összetevők elkülönítésére. Ez egy nagyon hatékony mechanizmust biztosít a build rendszer strukturálásához. A megnövekedett kódolási és karbantartási költségek miatt, amelyek ahhoz szükségesek, hogy a több alprojekt valóban önálló legyen, azt tanácsolom, hogy csak akkor menjen ezen az úton, ha valódi felhasználási esete van rá. A kódbázis különböző célokra történő felosztása mindig az előnyben részesített mechanizmus a felépítés strukturálásához, míg az alprojekteket azokra a ritka esetekre kell fenntartani, amikor valóban a célok egy részhalmazát kell önállóvá tenni.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.