必須:
オプション:
この例では、Python 3と最近のバージョンのSconsをインストールしたことを前提としています。 MakeFileを使用して、スコンなしでライブラリを構築することもできます。 Sconsは独自のメインビルドツールであるため、ここでのSconsアプローチについて説明します。
https://gitlab.com/pi-lar/neuropil(開発バージョン)またはhttps://github.com/pi-lar/neuropil(ミラー)からgitを使用してリポジトリをクローンします。
フォルダーにCDを使用して、スコンでコードを構築します。
最初にコマンドを与えます
git submodule init
に続く
git submodule update
次のようにデバッグモードで構築します:
scons -C build -f ../SConstruct --DEBUG
またはリリースモードで:
scons -C build -f ../SConstruct --RELEASE
ドキュメントを作成します(Sphinxのインストールが必要):
scons -C build -f ../SConstruct doc=1
テストを作成します(必要な基準のインストール):
scons -C build -f ../SConstruct tests
プロジェクトのクリーン/削除:
scons -C build -f ../SConstruct -c
MakeFileも利用できますが、一部のパスインフォスはハードコード化されており、環境に適応する必要があります。 MakeFileは、主に、静的コード分析のためにLLVMスキャンビルドツールを実行し、ライブラリをファジングするために使用されます。
Cmakeファイルは最初の初期ドラフトであり、ライブラリを構築することができますが、プログラムの例は構築できません。
これまでに利用できるAutoconfはありません。
Neuropilは、ライブラリとクリーンな開発環境の再現可能なビルドを提供するNIXエコシステムで利用できます。
このプロジェクトはNixフレークとして提供されますが、Nix < 3.xのラッパーが付属しています。
次のパッケージを提供します。
これはおそらくあなたがやりたいことではありませんが(次のセクションを参照)、個々のパッケージの構築は次のように機能します。
| 指示 | 説明 |
|---|---|
nix build ./ | ライブラリとヘッダーファイルを構築します |
nix build ./#packages.x86_64-{darwin,linux}.neuropil_{python,luajit} | それぞれPythonモジュールまたはLUAモジュールを構築します |
nix developまたはnix-shell -A devShell.x86_64-{darwin,linux} | LDPATHにLibneuropilとLua/Pythonバインディングを使用できるシェルを開きます。これを使用してCソースを手動で構築します(例: $CC examples/neuropil_sender.c -lneuropil ) |
nix shell ./#packages.x86_64-{darwin,linux}.libneuropil | Neuropilの依存関係が利用可能なシェルを開き、 scons --DEBUGとscons --RELEASEを使用して共通のワークフローを許可します。 |
シェルを開く/リポジトリをクローニングせずにライブラリを構築するには、nixフレークを使用して./ git+<url to repo>またはgitlab:pi-lar/neuropil使用して最新のブランチを使用します。
ほとんどの場合、Nixを使用してneuropilプロジェクトに統合したいと思うでしょう。 Neuropilをアプリケーションの一部にするには、フレークを単純にインポートして、このようなパッケージセットにそのオーバーレイを追加することができます。
{ 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 > ]
...
}プロジェクトがフレークに基づいている場合は、このリポジトリを入力として追加してオーバーレイをインポートしてください。
現在、Python 3.8のcffiライブラリは、STDDEFの重要なヘッダーファイルを解析できません。したがって、これが解決されるまでPython3.7のライブラリを提供します。
入力ディレクトリ:
出力ディレクトリ:
実行可能ファイルと同じように実行可能な場合は、各プログラムのパラメーターをご覧ください。
例1:ポート1111でコントローラーを実行します
LD_LIBRARY_PATH=./build/neuropil/lib ./build/neuropil/bin/neuropil_controller -b 1111
例2:ポート2222でノードを実行し、別のノードに結合メッセージを送信します。
./build/neuropil/bin/neuropil_node -b 2222 -j b3b680a867849efe5886a5db751392e9d3079779e3f3c240ed849c11f4ba7d4a:udp6:test.local:3141
例3:ポート2222でノードを実行し、別のノードにワイルドカード結合メッセージを送信します。
./build/neuropil/bin/neuropil_node -b 2222 -j *:udp6:test.local:3141
テストスイートを実行するには、並列実行を制限するためにパラメーター「-j1」を使用してください。通常、次のコマンドを使用します。
./build/neuropil/bin/neuropil_test_suite --tap -j1
このプロジェクトは、Open Softwareライセンスバージョン3.0の条件の下でオープンソースとして利用できます。ただし、Ext_toolsの一部のファイルはBSD2またはGPL-2.0-OrlaterおよびX11の下でライセンスされているため、正確な情報については、個々のファイルを確認してください。