يحتوي هذا المستودع على مجموعة من البرامج النصية CMake لمساعدتك في تضمين تطبيق WEBRTC الأصلي من Google داخل مشروعك بهذه البساطة:
cmake_minimum_required ( VERSION 3.3)
project (sample)
find_package (LibWebRTC REQUIRED)
include ( ${LIBWEBRTC_USE_FILE} )
set ( SOURCE_FILES main.cpp)
add_executable (sample ${SOURCE_FILES} )
target_link_libraries (sample ${LIBWEBRTC_LIBRARIES} ) ينتج أيضًا ملف pkg-config إذا كنت تفضل الطريقة الكلاسيكية:
$ g++ `pkg-config --cflags LibWebRTC` main.cpp -o main `pkg-config --libs LibWebRTC`
يعرض الجدول التالي الوضع الحالي لهذا المشروع ، بما في ذلك المنصات والبنية المدعومة.
| x86 | x64 | ذراع | ARM64 | |
| Linux | ✔ | ✔ | ||
|---|---|---|---|---|
| ماكوس | - | ✔ | - | - |
| النوافذ | ✔ | ✔ |
depot_tools ) # apt-get install build-essential libglib2.0-dev libgtk2.0-dev libxtst-dev
libxss-dev libpci-dev libdbus-1-dev libgconf2-dev
libgnome-keyring-dev libnss3-dev libasound2-dev libpulse-dev
libudev-dev
Windows 7 x64 أو أحدث
Visual Studio 2015 مع التحديثات - قم بتنزيل المثبت
تأكد من تثبيت المكونات التالية:
Windows 10 SDK مع أدوات تصحيح الأخطاء لنظام التشغيل Windows أو Windows Driver Kit 10 مثبتة في دليل تثبيت Windows 10 SDK نفسه.
استنساخ المستودع ، قم بإنشاء دليل إخراج ، وتصفح بداخله ، ثم قم بتشغيل Cmake.
$ git clone https://github.com/aisouard/libwebrtc.git
$ cd libwebrtc
$ mkdir out
$ cd out
$ cmake ..
يجب على مستخدمي Windows إضافة لاحقة Win64 إلى اسم مولد Visual Studio الخاص بهم إذا كانوا يرغبون في إنشاء المكتبة لمنصات 64 بت ، فسوف يحذفونها للبناء 32 بت وتحديد متغير TARGET_CPU وفقًا لذلك.
> cmake -G "Visual Studio 14 2015" -DTARGET_CPU=x86
> cmake -G "Visual Studio 14 2015 Win64"
بعد ذلك ، سيتعين عليهم فتح libwebrtc.sln الموجود داخل دليل الإخراج الحالي وإنشاء مشروع ALL_BUILD .
سيتعين على مستخدمي UNIX تشغيل make التالية.
$ make
# make install
ستكون المكتبة موجودة داخل مجلد lib في دليل الإخراج الحالي. سيحتوي include على ملفات الرأس. سيتم وضع البرامج النصية CMAKE داخل دليل lib/cmake/LibWebRTC .
إذا كنت تستخدم Xcode أو Visual Studio ، فيمكنك ببساطة التبديل بين تصحيح التصحيح والإصدار من IDE. سيتم إلحاق أعلام تصحيح الأخطاء بمعلمات المولد.
خلاف ذلك ، يجب عليك تحديد متغير CMAKE_BUILD_TYPE Debug .
$ cmake -DCMAKE_BUILD_TYPE=Debug ..
في وقت كتابة هذا الملف ، لا توجد طريقة مناسبة للكشف عن أي تثبيت لمكتبة وملفات رأس WEBRTC. في غضون ذلك ، يقوم هذا البرنامج النصي CMAKE بإنشاء ويعلن حزمة LibWebRTC التي ستكون سهلة الاستخدام لمشاريعك.
كل ما عليك فعله هو تضمين الحزمة ، ثم تضمين "ملف الاستخدام" الذي سيجد المكتبات المطلوبة تلقائيًا ، وتحديد أعلام التجميع المناسبة وتشمل الدلائل.
find_package (LibWebRTC REQUIRED)
include ( ${LIBWEBRTC_USE_FILE} )
target_link_libraries (my-app ${LIBWEBRTC_LIBRARIES} ) يتم توفير ملف PKG-Config أيضًا ، يمكنك الحصول على علامات التحويل البرمجي والرابط المطلوبة عن طريق تحديد LibWebRTC كاسم الحزمة.
$ pkg-config --cflags --libs LibWebRTC
سيتم إحضار أحدث إصدار من العمل افتراضيًا ، إلا إذا قررت استرداد التزام محدد عن طريق تعيين تجزئة في متغير WEBRTC_REVISION CMAKE ، أو رأس فرع آخر في متغير WEBRTC_BRANCH_HEAD .
$ cmake -DWEBRTC_REVISION=be22d51 ..
$ cmake -DWEBRTC_BRANCH_HEAD=refs/branch-heads/57 ..
إذا تم تعيين كلا المتغيرين ، فسيركز على جلب الالتزام المحدد داخل Webrtc_revision .
سيسترجع Cmake أحدث مراجعة لمستودع depot_tools . سيحصل على تاريخ التزام مستودع WEBRTC ، ثم تسجيل الخروج من depot_tools إلى الالتزام به أقرب موعد إلى WEBRTC ، من أجل ضمان توافق عالي مع gclient وغيرها من الأدوات.
من الممكن منع هذا السلوك من خلال تحديد الموقع لمستودع depot_tools الخاص بك عن طريق تحديد متغير depot_tools_path .
$ cmake -DDEPOT_TOOLS_PATH=/opt/depot_tools ..
سيتم تجميع المكتبة ويمكن استخدامها على منصة وعمارة المضيف نفسه. فيما يلي بعض أعلام Cmake التي قد تكون مفيدة إذا كنت بحاجة إلى أداء التوفيق المتبادل.
build_deb_package
قم بإنشاء حزمة Debian ، والافتراضات إلى OFF ، متوفرة تحت Linux فقط.
build_rpm_package
قم بإنشاء حزمة Red Hat ، والافتراضات إلى OFF ، متوفرة تحت Linux فقط.
build_tests
بناء اختبارات وحدة WEBRTC والفئات السخرية مثل FakeAudioCaptureModule .
build_sample
بناء قابلة للتنفيذ موجودة داخل مجلد sample .
depot_tools_path
اضبط هذا المتغير على دليل depot_tools الخاص بك. هذا سيمنع Cmake من جلب واحد المطابقة مع مراجعة WebRTC المطلوبة.
GN_EXTRA_ARGS
أضف وسيطات إضافية إلى gn gen --args .
ninja_args
حجج لتمريرها أثناء تنفيذ أمر ninja .
Target_OS
نظام التشغيل المستهدف ، سيتم استخدام القيمة داخل وسيطة --target_os لأمر gn gen يجب أن تكون القيمة واحدة مما يلي:
androidchromeosioslinuxmacnaclwinTarget_cpu
الهندسة المعمارية المستهدفة ، سيتم استخدام القيمة داخل وسيطة --target_cpu لأمر gn gen يجب أن تكون القيمة واحدة مما يلي:
x86x64armarm64mipselwebrtc_branch_head
قم بتعيين REF Branch Head لاسترداده ، يتم تعيينه على أحدث عمل. يتم تجاهل هذا المتغير إذا تم تعيين webrtc_revision .
webrtc_revision
اضبط تجزئة محددة لفحص.
لا تتردد في فتح مشكلة إذا كنت ترغب في إصلاح الخلل أو مناقشة ميزة جديدة أو لطرح سؤال. أنا منفتح لسحب الطلبات ، طالما أن تعديلاتك تعمل على نظام التشغيل الثلاثة الرئيسي (Windows و MacOS و Linux).
لا تنس وضع اسمك وعنوان بريدك الإلكتروني داخل ملف AUTHORS ! يمكنك أيضًا الوصول إلي على Twitter لمزيد من المناقشة.
شكرا جزيلا للدكتور أليكس جويلارد لكونه معلمًا ممتازًا لهذا المشروع.
بدأ كل شيء من "أتمتة LibWebrtc Build with Cmake» مدونة ، والتي كانت مصدر إلهام رائع بالنسبة لي لإنشاء أسهل طريقة لربط مكتبة Webrtc في أي مشروع أصلي.
Apache License 2.0 © Axel Isouard