إلزامي:
خياري:
يفترض هذا المثال أنك قمت بتثبيت Python 3 والنسخة الحديثة من Scons. من الممكن أيضًا إنشاء مكتبتنا بدون Scons باستخدام Makefile. نظرًا لأن Scons هي أداة البناء الرئيسية الخاصة بنا ، فنحن نصف نهج Scons هنا.
استنساخ المستودع من https://gitlab.com/pi-lar/neuropil (إصدار التطوير) أو https://github.com/pi-lar/neuropil (Mirror) مع git.
قرص مضغوط في المجلد وبناء الكود مع Scons.
أولا أعط الأمر
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 بشكل أساسي لتشغيل أدوات Build LLVM لتحليل الكود الثابت ولإغراء المكتبة.
تعد ملفات CMAKE أول مسودة أولية وتكون قادرة على إنشاء المكتبة ، ولكن ليس على سبيل المثال البرامج.
لا autoconf متاح حتى الآن ، ليتم القيام به.
Neuropil متاح للنظام الإيكولوجي لـ NIX والذي يوفر تصميمات قابلة للتكرار للمكتبة وبيئات التطوير النظيفة.
يأتي هذا المشروع كقشر nix ولكنه يأتي مع مغلفات لـ nix < 3.x .
يوفر الحزم التالية:
على الرغم من أن هذا ليس ما تريد القيام به (انظر القسم التالي) ، فإن بناء الحزم الفردية يعمل على النحو التالي:
| يأمر | وصف |
|---|---|
nix build ./ | بناء ملفات المكتبة وبرامج الرأس |
nix build ./#packages.x86_64-{darwin,linux}.neuropil_{python,luajit} | يبني وحدة بيثون أو وحدة لوا على التوالي |
nix develop أو nix-shell -A devShell.x86_64-{darwin,linux} | يفتح قذيفة مع libneuropil على LDPATH و LUA/Python روابط متوفرة. استخدم هذا لبناء مصادر C يدويًا (على سبيل المثال $CC examples/neuropil_sender.c -lneuropil ) |
nix shell ./#packages.x86_64-{darwin,linux}.libneuropil | يفتح قذيفة مع تبعيات Neuropil المتاحة ، يسمح لسير العمل المشترك باستخدام scons --DEBUG و scons --RELEASE . |
لفتح shell/إنشاء المكتبة دون استنساخ المستودع ، باستخدام رقائق Nix استبدال ./ by git+<url to repo> أو gitlab:pi-lar/neuropil لأحدث الفرع.
في معظم الحالات على الرغم من أنك سترغب في دمج neuropil في مشروعك باستخدام NIX. لجعل Neuropil جزءًا من التطبيق الخاص بك ، يمكنك ببساطة استيراد Flake وإضافة تراكبها إلى مجموعة الحزمة الخاصة بك مثل هذا على سبيل المثال:
{ 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 > ]
...
}إذا كان مشروعك يستند إلى Flake ، فما عليك سوى إضافة هذا الريبو كمدخل واستيراد التراكب.
حاليًا تفشل مكتبة cffi على Python 3.8 في تحليل ملف رأس حرج في 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 وأرسل رسالة انضمام إلى Wildcard إلى عقدة أخرى:
./build/neuropil/bin/neuropil_node -b 2222 -j *:udp6:test.local:3141
لتشغيل أجنحة الاختبار ، يرجى منا المعلمة "-J1" للحد من التنفيذ الموازي. عادة ما نستخدم الأمر التالي:
./build/neuropil/bin/neuropil_test_suite --tap -j1
يتوفر هذا المشروع كمصدر مفتوح بموجب شروط إصدار ترخيص البرنامج المفتوح 3.0. ومع ذلك ، يتم ترخيص بعض الملفات في EG Ext_Tools بموجب BSD2 أو GPL-2.0-orlater و X11 ، لذا يرجى الحصول على معلومات دقيقة ، والتحقق من الملفات الفردية.