obligatorisch:
Optional:
In diesem Beispiel wird davon ausgegangen, dass Sie Python 3 und die aktuelle Version von Scons installiert haben. Es ist auch möglich, unsere Bibliothek ohne die Scons mit der Makefile zu bauen. Da Scons unser eigenes Hauptbauwerkzeug ist, beschreiben wir hier den Scons -Ansatz.
Klonen Sie das Repository von https://gitlab.com/pi-lar/neuropil (Entwicklungsversion) oder https://github.com/pi-lar/neuropil (Mirror) mit Git.
CD in den Ordner und erstellen Sie den Code mit Scons.
Geben Sie zuerst den Befehl
git submodule init
Gefolgt von
git submodule update
Bauen Sie entweder im Debug -Modus mit:
scons -C build -f ../SConstruct --DEBUG
oder im Freigabemodus mit:
scons -C build -f ../SConstruct --RELEASE
Erstellen Sie die Dokumentation (Sphinx -Installation erforderlich):
scons -C build -f ../SConstruct doc=1
Erstellen Sie die Tests (Kriterieninstallation erforderlich):
scons -C build -f ../SConstruct tests
das Projekt reinigen/löschen:
scons -C build -f ../SConstruct -c
Es gibt auch ein Makefile, aber einige Pfad -Infos sind hart codiert und müssen an Ihre Umgebung angepasst werden. Das Makefile wird hauptsächlich zum Ausführen der LLVM-Scan-Build-Tools für eine statische Codeanalyse und zum Verschwinden der Bibliothek verwendet.
Die CMake -Dateien sind ein erster Erstentwurf und können die Bibliothek erstellen, jedoch nicht die Beispielprogramme.
Bisher ist kein Autoconf verfügbar.
Neuropil ist für das Nix -Ökosystem verfügbar, das reproduzierbare Builds der Bibliothek und saubere Entwicklungsumgebungen bietet.
Dieses Projekt wird als Nix -Flake geliefert, aber mit Wrappern für NIX < 3.x geliefert.
Es enthält die folgenden Pakete:
Obwohl dies wahrscheinlich nicht das ist, was Sie tun möchten (siehe nächster Abschnitt), funktioniert das Erstellen der einzelnen Pakete wie folgt:
| Befehl | Beschreibung |
|---|---|
nix build ./ | Erstellen Sie Bibliotheks- und Header -Dateien |
nix build ./#packages.x86_64-{darwin,linux}.neuropil_{python,luajit} | baut das Python -Modul oder das Lua -Modul auf |
nix develop oder nix-shell -A devShell.x86_64-{darwin,linux} | Öffnet eine Hülle mit Libneuropil über LDPATH und Lua/Python -Bindungen. Verwenden Sie dies, um C -Quellen manuell zu erstellen (z. $CC examples/neuropil_sender.c -lneuropil ) |
nix shell ./#packages.x86_64-{darwin,linux}.libneuropil | Öffnet eine Hülle mit den verfügbaren Abhängigkeiten von Neuropil und ermöglicht den gemeinsamen Workflow mit scons --DEBUG und scons --RELEASE . |
So öffnen Sie die Shell/erstellen Sie die Bibliothek git+<url to repo> ohne das Repository zu klonen, gitlab:pi-lar/neuropil verwenden Sie Nix Flakes ./
In den meisten Fällen möchten Sie jedoch mit NIX neuropil in Ihr Projekt integrieren. Um den Neuropil zu einem Teil Ihrer Anwendung zu machen, können Sie einfach die Flocken importieren und die Überlagerung in Ihr Paketsatz wie diese hinzufügen: beispielsweise:
{ nixpkgs } :
let
// add rev = . . . to point to a specific version
neuropil = import ( fetchGit { url = "https://gitlab.com/pi-lar/neuropil.git" ; } ) ;
pkgs = import nixpkgs { overlays = [ neuropil . overlay ] } ;
python = pkgs . python3 . withPackages ( ps : with ps ; [ neuropil_python < other python > ] )
in with pkgs ; mkDerivarion {
...
buildInputs = [ libneuropil neuropil_luajit python < other deps > ]
...
}Wenn Ihr Projekt auf Flocken basiert, fügen Sie dieses Repo einfach als Eingabe hinzu und importieren Sie das Overlay.
Derzeit kann die cffi -Bibliothek auf Python 3.8 eine kritische Header -Datei im STDDEF nicht analysieren. Wir stellen daher die Bibliothek nur für Python3.7 zur Verfügung, bis dies gelöst ist.
Eingabeverzeichnisse:
Ausgabeverzeichnisse:
Sie können die ausführbaren Ausführungen genauso ausführen wie jede ausführbare Datei. Bitte sehen Sie sich die Parameter jedes Programms an:
Beispiel 1: Führen Sie den Controller auf Port 1111 aus
LD_LIBRARY_PATH=./build/neuropil/lib ./build/neuropil/bin/neuropil_controller -b 1111
Beispiel 2: Führen Sie einen Knoten auf Port 2222 aus und senden Sie eine Join -Nachricht an einen anderen Knoten:
./build/neuropil/bin/neuropil_node -b 2222 -j b3b680a867849efe5886a5db751392e9d3079779e3f3c240ed849c11f4ba7d4a:udp6:test.local:3141
Beispiel 3: Führen Sie einen Knoten auf Port 2222 aus und senden Sie eine Wildcard -Join -Nachricht an einen anderen Knoten:
./build/neuropil/bin/neuropil_node -b 2222 -j *:udp6:test.local:3141
Um die Testsuiten auszuführen, bitte den Parameter "-J1", um die parallele Ausführung zu begrenzen. Normalerweise verwenden wir den folgenden Befehl:
./build/neuropil/bin/neuropil_test_suite --tap -j1
Dieses Projekt ist unter den Bedingungen der Open Software -Lizenzversion 3.0 als Open Source verfügbar. Einige Dateien in z. B. ext_tools sind jedoch unter BSD2 oder GPL-2.0-ORLATER und X11 lizenziert. Überprüfen Sie also genaue Informationen, um genaue Informationen zu überprüfen.