強制的:
選修的:
此示例假設您已經安裝了Python 3和最新版本的SCONS。也可以通過使用Makefile來構建我們的圖書館,而無需SCON。由於SCONS是我們自己的主要構建工具,因此我們在此處描述SCONS方法。
從https://gitlab.com/pi-lar/neuropil(開發版本)或https://github.com/pi-lar/neuropil(irrient)從https://gitlab.com/pi-lar/neuropil(開發版本)克隆存儲庫。
CD進入文件夾並用SCONS構建代碼。
首先給出命令
git submodule init
其次是
git submodule update
在調試模式下構建以下任務模式:
scons -C build -f ../SConstruct --DEBUG
或在發行模式下以:
scons -C build -f ../SConstruct --RELEASE
構建文檔(需要獅身人面像安裝):
scons -C build -f ../SConstruct doc=1
構建測試(需要安裝標準):
scons -C build -f ../SConstruct tests
清潔/刪除項目:
scons -C build -f ../SConstruct -c
還有一個Makefile,但是一些路徑Infos是硬編碼的,需要適應您的環境。 MakeFile主要用於運行LLVM掃描構建工具,以進行靜態代碼分析和模糊庫。
Cmake文件是第一個初始草稿,能夠構建庫,而不是示例程序。
到目前為止,還沒有可用的AutoConf。
Neuropil可用於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 and 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
根據開放軟件許可證版本3.0的條款,該項目可作為開源。但是,例如ext_tool中的某些文件是根據BSD2或GPL-2.0-Orlater和X11許可的,因此請有關準確的信息,請檢查單個文件。