เครื่องมือหลักที่รองรับในการสร้าง OpenWeave คือเครื่องมือของ GNU Autotools
ข้อกำหนดของระบบ
แพลตฟอร์มระบบปฏิบัติการหลักทั้งหมดรองรับการสร้างและการคอมไพล์ OpenWeave แบบข้ามแพลตฟอร์ม เชนเครื่องมือที่ระบุไว้ได้รับการทดสอบอย่างเป็นทางการโดย Nest
Linux | ||||||
---|---|---|---|---|---|---|
ข้อกําหนด: เรารองรับ Ubuntu 14.04 (Trusty) อย่างเป็นทางการ แต่ระบบที่ใช้ Linux ที่คล้ายกันควรใช้งานได้ | ||||||
C/C++, Java, การเชื่อมโยง Python |
|
|||||
C/C++, การเชื่อมโยง Java |
|
Mac OS X | ||||||
---|---|---|---|---|---|---|
ข้อกําหนด: XQuartz สําหรับการคัดลอกแผนผังย่อยไดเรกทอรีหนึ่งไปยังอีกไดเรกทอรีหนึ่งที่มีลิงก์สัญลักษณ์ | ||||||
C/C++ การเชื่อมโยงโกโก้ |
|
|||||
C/C++, การเชื่อมโยง Python |
|
หน้าต่าง | ||||||
---|---|---|---|---|---|---|
ข้อกําหนด: Cygwin สําหรับบรรทัดคําสั่งบรรทัดคําสั่ง Linux | ||||||
การเชื่อมโยง C/C++ |
|
แบบฝัง | ||||||
---|---|---|---|---|---|---|
การเชื่อมโยง C/C++ |
|
สิ่งที่ต้องมีก่อน
นอกเหนือจากเชนเครื่องมือที่รองรับแล้ว เราขอแนะนําให้ติดตั้งแพ็กเกจและเครื่องมือต่อไปนี้ก่อนสร้าง OpenWeave
แพ็กเกจ
กรณีที่ใช้ Linux
sudo apt-get install python-pip python-setuptools bridge-utils /
libglib2.0-dev libdbus-1-dev libudev-dev /
libical-dev libreadline-dev
Linux และ Mac OS X
pip install --user google-cloud googleapis-common-protos grpc protobuf pycryptodomex
sudo cpan -i Text::Template
เครื่องมืออัตโนมัติ GNU
OpenWeave ต้องใช้ GNU Autotools สําหรับระบบบิลด์ เวอร์ชัน GNU Autotools ต้องพร้อมใช้งานเพื่อสร้าง OpenWeave ให้สําเร็จ วิธีใช้เครื่องมืออัตโนมัติเวอร์ชันที่อยู่ในระบบของ Linux
sudo apt-get install libtool autoconf automake
สําหรับระบบที่ GNU Autotools ไม่พร้อมให้บริการหรือติดตั้งได้ (เช่น Mac OS) หรือในระบบที่ไม่มีเวอร์ชันบิลด์ของระบบอยู่แล้ว Nest Labs ได้สร้างเฟรมเวิร์กระบบบิลด์ที่ปรับแต่งเองโดยอิงตาม GNU Autotools ระบบจะปักหมุดชุดโปรแกรมที่ใช้ในการสร้างบิลด์เป็นเวอร์ชันที่ดีที่ทราบ การปักหมุดเครื่องมือเป็นเวอร์ชันที่เจาะจงจะทําให้เอาต์พุตของเครื่องมืออัตโนมัติลดลงอย่างมาก ซึ่งนําไปสู่ประสบการณ์สําหรับนักพัฒนาซอฟต์แวร์และการสนับสนุนที่คาดเดาได้ เราขอแนะนําให้ใช้บิลด์ GNU Autotools ในการสร้าง Nest Lab เพื่อใช้กับ OpenWeave
วิธีสร้างเครื่องมืออัตโนมัติ GNU ของ Nest Labs
git clone https://github.com/openweave/openweave-core.git
cd openweave-core
make -C third_party/nlbuild-autotools/repo/ tools
มีความสุข
ในการเรียกใช้สคริปต์การทดสอบที่รวมอยู่ใน OpenWeave หรือใช้ Weave ในโทโพโลยีจําลอง ให้ติดตั้ง Happy บนเครื่อง Linux ดูข้อมูลเพิ่มเติมได้ที่การตั้งค่าอย่างมีความสุข
แอปพลิเคชันแบบสแตนด์อโลน
ใช้แอปพลิเคชัน OpenWeave Standalone เริ่มต้นสําหรับโฮสต์การพัฒนาเดสก์ท็อปหรือเซิร์ฟเวอร์
- โคลนที่เก็บข้อมูล OpenWeave
git clone https://github.com/openweave/openweave-core.git
- สร้างแอปพลิเคชัน OpenWeave แบบสแตนด์อโลน
cd openweave-core
make -f Makefile-Standalone
ใช้แฟล็ก help
กับ Makefile-Standalone
เพื่อดูสวิตช์ที่มีสําหรับการปรับแต่งบิลด์
make -f Makefile-Standalone help
เช่น วิธีเปิดใช้โค้ดการแก้ไขข้อบกพร่องและการบันทึก Weave
make -f Makefile-Standalone DEBUG=1
การลิงก์โปรเจ็กต์
- โคลนที่เก็บข้อมูล OpenWeave
git clone https://github.com/openweave/openweave-core.git
- กําหนดค่าสภาพแวดล้อมของบิลด์สําหรับ GNU Autotools ดังนี้
cd openweave-core
./bootstrap
./configure
- สร้าง OpenWeave ดังนี้
make all
- ตั้งค่าเอาต์พุตไปยังตําแหน่งแยกต่างหากสําหรับการลิงก์โปรเจ็กต์ ดังนี้
mkdir <openweave-output>
make DESTDIR=<openweave-output> install
หลังจากจัดเตรียมแล้ว ให้ใช้ไดเรกทอรีภายใต้ <openweave-output>
สําหรับการลิงก์โปรเจ็กต์ ดังนี้
/usr/local/include
— ส่วนหัวสาธารณะ/usr/local/lib
— ไลบรารี
Android และ iOS
หากต้องการสร้างไลบรารีสําหรับการลิงก์โปรเจ็กต์ Android และ iOS ให้ใช้ Makefiles
แบบเจาะจงแพลตฟอร์ม ดังนี้
make -f Makefile-Android
make -f Makefile-iOS
ใช้แฟล็ก help
กับ Makefile-<platform>
เพื่อดูว่าสวิตช์บิลด์ใดปรับแต่งได้ เช่น
make -f Makefile-Android help
make -f Makefile-iOS help
การกำหนดค่า
ก่อนกําหนดค่า OpenWeave ด้วยสคริปต์และส่วนหัวต่างๆ ให้ใช้เครื่องมืออัตโนมัติเพื่อเปิดระบบไฟล์บิลด์ที่เกี่ยวข้อง ดังนี้
./bootstrap
ขั้นตอนนี้ต้องดําเนินการครั้งเดียวหลังการชําระเงินแบบต้นไม้ และต่อการเปลี่ยนแปลง configure.ac
หรือ Makefile.am
หลังจากนั้น ไม่จําเป็นต้องทําซ้ําเมื่อเปลี่ยนการกําหนดค่าหรือเป้าหมายบิวด์
สคริปต์
ใช้แฟล็ก --help
ที่มีสคริปต์การกําหนดค่าที่ให้มาเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกที่กําหนดค่าได้
./configure --help
เช่น ในการกําหนดค่า OpenWeave โดยไม่มีการรองรับ BlueZ ให้ทําดังนี้
./configure --without-bluez
ส่วนหัว
Makefiles
ที่รวมอยู่จะใช้ไฟล์ส่วนหัว 2 ไฟล์ที่กําหนดค่าคงที่ในเวลาคอมไพล์:
และอาจระบุส่วนหัวการกําหนดค่าเฉพาะโครงการไว้ด้วย วางไฟล์เหล่านี้ลงในไดเรกทอรีโปรเจ็กต์ โปรดอย่าวางไว้ในที่เก็บของ OpenWeave ใช้ตัวเลือกการกําหนดค่าที่เหมาะสมเพื่อระบุตําแหน่งแต่ละไฟล์ระหว่างการกําหนดค่า ดังนี้
ไฟล์ส่วนหัว | ตัวเลือกการกําหนดค่า |
---|---|
InetProjectConfig.h |
--with-weave-inet-project-includes=<directory> |
WeaveProjectConfig.h |
--with-weave-project-includes=<directory> |
เช่น หากต้องการกําหนดค่า OpenWeave ให้ใช้ไฟล์ WeaveProjectConfig.h
เฉพาะโปรเจ็กต์ที่อยู่ใน ~/my-project/headers
./configure --with-weave-project-includes=~/my-project/headers