Zpět

Jak sestavit projekt

Systémové požadavky

Softwarové závislosti pro sestavení

Postup

1. Naklonování projektu

git clone https://codeberg.org/tondik/recu
cd recu

2. Získání závislostí

2.1. Se správcem balíčků Nix (doporučeno)

Zde naleznete návod k instalaci pro Nix.

Projekt využívá Nix flake, který definuje vývojové prostředí se všemi potřebnými závislostmi.

Pro vstup do vývojového prostředí, v kořenovém adresáři projektu zadejte:

nix develop

2.2. Bez správce balíčků Nix

Pro většinu závislostí je možné použít preferovaný správce balíčků, ale Zig není možné nainstalovat pomocí standardního správce balíčků, protože projekt vyžaduje specificky verzi 0.16.0-dev.2860+9c5460316. Nabízí se několik možností:

  1. Použití zvm - správce verzí Zigu.
  2. Sestavení ze zdroje, commit 9c5460316.
  3. Stažení předkompilovaného binárního souboru (Zig je staticky linkovaný, nemusíte se bát problémů se špatnou verzí glibc a podobně). Soubory jsou podepsány pomocí nástroje minisign s využitím veřejného klíče, který najdete zde.

    OS CPU Architektura Odkaz Odkaz na podpis
    Linux x86_64 zig-x86_64-linux-0.16.0-dev.2860+9c5460316.tar.xz minisig
    aarch64 zig-aarch64-linux-0.16.0-dev.2860+9c5460316.tar.xz minisig
    arm zig-arm-linux-0.16.0-dev.2860+9c5460316.tar.xz minisig
    riscv64 zig-riscv64-linux-0.16.0-dev.2860+9c5460316.tar.xz minisig
    powerpc64le zig-powerpc64le-linux-0.16.0-dev.2860+9c5460316.tar.xz minisig
    x86 zig-x86-linux-0.16.0-dev.2860+9c5460316.tar.xz minisig
    loongarch64 zig-loongarch64-linux-0.16.0-dev.2860+9c5460316.tar.xz minisig
    s390x zig-s390x-linux-0.16.0-dev.2860+9c5460316.tar.xz minisig
    FreeBSD aarch64 zig-aarch64-freebsd-0.16.0-dev.2860+9c5460316.tar.xz minisig
    arm zig-arm-freebsd-0.16.0-dev.2860+9c5460316.tar.xz minisig
    powerpc64le zig-powerpc64le-freebsd-0.16.0-dev.2860+9c5460316.tar.xz minisig
    riscv64 zig-riscv64-freebsd-0.16.0-dev.2860+9c5460316.tar.xz minisig
    x86_64 zig-x86_64-freebsd-0.16.0-dev.2860+9c5460316.tar.xz minisig

3. Spouštění ukázkových příkladů

Ukázkové příklady se v rámci projektu nacházejí v adresáři tests/behavior a zároveň slouží k otestování správnosti implementace.

Pro spuštění určitého příkladu, v kořenovém adresáři projektu zadejte:

cd tests/behavior/<název>
zig build run

4. Sestavení statické knihovny a C API

Pro interoperabilitu s jinými jazyky je k dispozici C API s hlavičkovým souborem include/recu.h. Sestavením do statické knihovny je možné projekt využít z libovolného programovacího jazyka podporujícího volání funkcí s C ABI.

V kořenovém adresáři projektu zadejte:

nix build .

nebo

zig build

Výsledek kompilace bude v adresáři zig-out/lib.

5. Dodatečné parametry pro zig build

6. Generování dokumentace

Dokumentace je automaticky generována ze zdrojového kódu.

V kořenovém adresáři projektu zadejte:

zig build docs

Výsledek bude v adresáři zig-out/docs.

7. Pomocné skripty a GDB skripty

V adresáři tools/ se nachází pomocné skripty, například pro dešifrování dat z binárního souboru nástroje nvdisasm. Skripty mají nastavená práva pro spuštění a shebang využívající nix-shell.

GDB skripty se spouští pomocí:

gdb -x <skript> -q <sledovaný binární soubor>