พื้นที่เก็บข้อมูลนี้มีคอลเลกชันของสคริปต์ 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 | |
| ลินเวกซ์ | ||||
|---|---|---|---|---|
| แม็กอส | - | - | - | |
| หน้าต่าง |
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 ..
ในช่วงเวลาของการเขียนไฟล์ readme นี้ไม่มีวิธีที่เหมาะสมในการตรวจจับการติดตั้งไฟล์ Library และส่วนหัวของ WebRTC ในระหว่างนี้สคริปต์ cmake นี้จะสร้างและประกาศแพ็คเกจ LibWebRTC ที่จะใช้งานง่ายมากสำหรับโครงการของคุณ
สิ่งที่คุณต้องทำคือรวมแพ็คเกจจากนั้นฝัง "ใช้ไฟล์" ที่จะค้นหาไลบรารีที่ต้องการโดยอัตโนมัติกำหนดธงรวบรวมที่เหมาะสมและรวมถึงไดเรกทอรี
find_package (LibWebRTC REQUIRED)
include ( ${LIBWEBRTC_USE_FILE} )
target_link_libraries (my-app ${LIBWEBRTC_LIBRARIES} ) นอกจากนี้ยังมีไฟล์ pkg-config คุณสามารถรับคอมไพเลอร์และแฟล็ก Linker ที่ต้องการได้โดยระบุ 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 มันจะได้รับวันที่ repository ของ WebRTC จากนั้นตรวจสอบ depot_tools ไปยังการกระทำที่มีวันที่ใกล้เคียงที่สุดกับ WebRTC เพื่อให้แน่ใจว่าเข้ากันได้สูงกับ gclient และเครื่องมืออื่น ๆ
เป็นไปได้ที่จะป้องกันพฤติกรรมนี้โดยการระบุตำแหน่งไปยังที่เก็บข้อมูล depot_tools ของคุณเองโดยการกำหนดตัวแปร DEPOT_TOOLS_PATH
$ cmake -DDEPOT_TOOLS_PATH=/opt/depot_tools ..
ห้องสมุดจะถูกรวบรวมและใช้งานได้บนแพลตฟอร์มและสถาปัตยกรรมของโฮสต์เดียวกัน นี่คือธง CMake บางส่วนซึ่งอาจเป็นประโยชน์หากคุณต้องการทำการคอมไพล์ข้าม
build_deb_package
สร้างแพ็คเกจ Debian, ค่าเริ่มต้นที่จะปิด, มีอยู่ภายใต้ Linux เท่านั้น
build_rpm_package
สร้างแพ็คเกจ Red Hat, ค่าเริ่มต้นที่จะปิด, มีอยู่ภายใต้ 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
ตั้งค่าการอ้างอิงหัวสาขาเพื่อเรียกคืนมันถูกตั้งค่าเป็นงานล่าสุด ตัวแปรนี้จะถูกละเว้นหากตั้งค่า webrtc_revision
webrtc_revision
ตั้งค่าแฮชเฉพาะเพื่อเช็คเอาท์
อย่าลังเลที่จะเปิดปัญหาหากคุณต้องการให้บั๊กได้รับการแก้ไขเพื่อหารือเกี่ยวกับคุณสมบัติใหม่หรือถามคำถาม ฉันเปิดรับคำขอดึงตราบใดที่การแก้ไขของคุณทำงานบนระบบปฏิบัติการหลักสามแห่ง (Windows, MacOS และ Linux)
อย่าลืมใส่ชื่อและที่อยู่อีเมลของคุณไว้ในไฟล์ AUTHORS ! คุณยังสามารถติดต่อฉันบน Twitter เพื่อการสนทนาเพิ่มเติม
ขอขอบคุณดร. อเล็กซ์ Gouaillard ที่เป็นที่ปรึกษาที่ยอดเยี่ยมสำหรับโครงการนี้
ทุกอย่างเริ่มต้นจาก«การสร้าง libwebrtc โดยอัตโนมัติของเขาด้วยบทความบล็อก cmake »ซึ่งเป็นแหล่งแรงบันดาลใจที่ยอดเยี่ยมสำหรับฉันในการสร้างวิธีที่ง่ายที่สุดในการเชื่อมโยงห้องสมุด WebRTC ในโครงการพื้นเมืองใด ๆ
ใบอนุญาต Apache 2.0 © Axel Isouard