bodand / cg3

Other
0 stars 0 forks source link

= cg3 :icons: font

image::https://api.cirrus-ci.com/github/bodand/cg3.svg[]

Prog1 nagy házi sanity-check framework.

A clang AST-t felhasználva ellenőrzéseket hajt végre, a különböző követelmények teljesítésére. Ezek fordítási időben eldönthetőek, hogy melyiket fordítjuk bele a programba.

== Ellenőrzések

A mindenkori verzióban elérhető ellenőrzések a checks/ mappában találhatóak meg. Ezekhez a részletesebb leírás a saját mappájuk README fájljában látható.

== Installation

=== GitHub Release

GitHub Release-ben elérhetőek bináris csomagok különböző féle-fajta operációs rendszerekre és processzor architektúrákra. Ezek egyszerűen telepíthetőek, és nem igényelnek egyéb műveletet.

=== GitHub

==== Bleeding edge

Jelenleg cg3 forrása elérhető GitHubról, és ezáltal következő parancssal letölthető:

[source,shell]

$ git clone --recursive https://github.com/bodand/cg3

A projekt fordításához a <<_building>> részben leírtakat érdemes átolvasni.

==== Release sources

Release forráscsomag elérhetőek szintén a különböző releasekhez. Ezek fordítása várhatólag azonos a legfrissebb fejlesztői verzió fordításával, azaz a <<_building>> részben tárgyaltakkal, de pontos információkért a letöltött csomag README.adoc fájljával kell konzultálni.

NOTE: Bár elég fontosnak tartom, hogy minden projekt a triviális fordítási lépésekkel lefordítható legyen, akár ha ez esetenként jóval elbonyolíthatja a CMake szkripteket, nem tudom garantálni, hogy a különböző verziók pontosan ugyan azzak az inkarncáióval fordulnak. Ezért érdemes, mindig megnézni a README.adoc fájlt, hátha van benne valami hasznos információ.

[#_building] == Building

Az egész projektnek egyben kellene fordulna as-is, CMake, vcpkg által támogatott rendszereket, és ahol LLVM is lefordul.

Mivel a projekt fordít magának egy LLVM-et és egy Clang-ot, így az első fordítást érdemes olyankor indítani, amikor nem lenne sok szükség a gépünkre. A tényleges függőségek a vcpkg.json fájlban találhatóak, és vcpkg manifest módját használva automatikusan telepítésre kerülnek. Jelenleg a telepíthető csomagok készítéséhez szükséges tooling nem tudja biztosítani a megfelelő működést rendszerben talált csomagok esetén, így nem lehet előre buildelt használni a buildhez. Ennek megoldása folyamatban van.

Ezek ismeretében triviálisan fordítható a következő parancsokkal:

[source,shell]

$ cmake -S. -B_build -DCMAKE_BUILD_TYPE=Release $ cmake --build _build

Telepíteni lehetséges a következő parancssal:

[source,shell]

$ cmake --install _build

Előre fordított csomagok készítése folyamatban van.