obligatoire:
facultatif:
Cet exemple suppose que vous avez installé Python 3 et la version récente des SCONS. Il est également possible de construire notre bibliothèque sans les scons en utilisant le makefile. Comme Scons est notre propre outil de construction principal, nous décrivons l'approche Scons ici.
Clone le référentiel de https://gitlab.com/pi-lar/neuropil (version de développement) ou https://github.com/pi-lar/neuropil (miroir) avec git.
CD dans le dossier et construisez le code avec des scons.
Donnez d'abord la commande
git submodule init
Suivi de
git submodule update
Construisez soit en mode débogage avec:
scons -C build -f ../SConstruct --DEBUG
ou en mode libération avec:
scons -C build -f ../SConstruct --RELEASE
Construisez la documentation (installation de Sphinx requise):
scons -C build -f ../SConstruct doc=1
Construisez les tests (installation du critère requise):
scons -C build -f ../SConstruct tests
Nettoyez / supprimer le projet:
scons -C build -f ../SConstruct -c
Il y a aussi un makefile disponible, mais certains PATH INFOS sont codés en dur et doivent être adaptés à votre environnement. Le MakeFile est principalement utilisé pour exécuter l'outillage Scan-Build LLVM pour une analyse de code statique et pour fuzzing la bibliothèque.
Les fichiers CMake sont un premier projet initial et sont en mesure de créer la bibliothèque, mais pas les exemples de programmes.
Aucun AutoConf disponible jusqu'à présent, à faire.
Neuropil est disponible pour l'écosystème NIX qui fournit des versions reproductibles de la bibliothèque et des environnements de développement propres.
Ce projet est un flocon Nix mais est livré avec des emballages pour Nix < 3.x .
Il fournit les packages suivants:
Bien que ce ne soit probablement pas ce que vous voulez faire (voir la section suivante), la construction des packages individuels fonctionne comme suit:
| Commande | Description |
|---|---|
nix build ./ | Créer des fichiers de bibliothèque et d'en-tête |
nix build ./#packages.x86_64-{darwin,linux}.neuropil_{python,luajit} | construit respectivement le module Python ou le module LUA |
nix develop ou nix-shell -A devShell.x86_64-{darwin,linux} | Ouvre une coquille avec Libneuropil sur LDPATH et LUA / Python Bindings disponibles. Utilisez-le pour construire des sources C manuellement (par exemple $CC examples/neuropil_sender.c -lneuropil ) |
nix shell ./#packages.x86_64-{darwin,linux}.libneuropil | Ouvre un shell avec les dépendances de Neuropil disponibles, permet au flux de travail commun en utilisant scons --DEBUG et scons --RELEASE . |
Pour ouvrir le shell / construire la bibliothèque sans cloner le référentiel, en utilisant les flocons Nix remplacer ./ par git+<url to repo> ou gitlab:pi-lar/neuropil pour la dernière branche.
Dans la plupart des cas, vous voudrez intégrer neuropil dans votre projet à l'aide de NIX. Pour faire une partie des neuropiles de votre application, vous pouvez simplement importer le flocon et ajouter sa superposition à votre ensemble de packages comme celui-ci, par exemple:
{ 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 > ]
...
}Si votre projet est basé sur Flake, ajoutez ce dépôt en entrée et importez la superposition.
Actuellement, la bibliothèque cffi sur Python 3.8 ne parvient pas à analyser un fichier d'en-tête critique dans le stddef. Nous fournissons donc la bibliothèque de Python3.7 uniquement jusqu'à ce que cela soit résolu.
Répertoires d'entrée:
Répertoires de sortie:
Vous pouvez exécuter les exécutables tout comme n'importe quel exécutable, veuillez consulter les paramètres de chaque programme:
Exemple 1: Exécutez le contrôleur sur le port 1111
LD_LIBRARY_PATH=./build/neuropil/lib ./build/neuropil/bin/neuropil_controller -b 1111
Exemple 2: exécutez un nœud sur le port 2222 et envoyez un message de jointure à un autre nœud:
./build/neuropil/bin/neuropil_node -b 2222 -j b3b680a867849efe5886a5db751392e9d3079779e3f3c240ed849c11f4ba7d4a:udp6:test.local:3141
Exemple 3: exécutez un nœud sur le port 2222 et envoyez un message de jointure de joker à un autre nœud:
./build/neuropil/bin/neuropil_node -b 2222 -j *:udp6:test.local:3141
Pour exécuter les suites de test, veuillez nous le paramètre "-j1" pour limiter l'exécution parallèle. Habituellement, nous utilisons la commande suivante:
./build/neuropil/bin/neuropil_test_suite --tap -j1
Ce projet est disponible en open source en vertu des termes de la Licence Open Software version 3.0. Cependant, certains fichiers dans EG ext_tools sont sous licence sous BSD2 ou GPL-2.0-Orlater et X11, alors veuillez les informations précises, vérifiez les fichiers individuels.