Google 致力于为黑人社区推动种族平等。查看具体举措

构建 OpenWeave

构建 OpenWeave 的主要支持工具链是 GNU Autotools。

系统要求

所有主要的操作系统平台都支持 OpenWeave 的构建和交叉编译。列出的工具链已由 Nest 正式测试。

Linux

要求:Ubuntu的14.04(忠实的)官方支持,但任何类似的基于Linux的系统应该工作。
C/C++、Java、Python 绑定
工具链海湾合作委员会 4.6.3
目标i386-unknown-linux-gnu
x86_64-unknown-linux-gnu
C/C++、Java 绑定
工具链海湾合作委员会 4.6
目标arm-unknown-linux-android
armv7-unknown-linux-android
i386-unknown-linux-android

Mac OS X

要求: XQuartz克隆一个目录树到另一个符号链接。
C/C++、Cocoa 绑定
目标armv7-apple-darwin-ios
armv7s-apple-darwin-ios
i386-apple-darwin-ios
C/C++、Python 绑定
工具链LLVM/clang 3.5 (6.0)
目标i386-apple-darwin-macosx
x86_64-apple-darwin-macosx

视窗

要求: Cygwin的用于Linux的命令行支持。
C/C++ 绑定
工具链海湾合作委员会 4.8.3
目标i686-pc-cygwin

嵌入式

C/C++ 绑定
工具链海湾合作委员会 4.4.1
LLVM/clang 3.1
LLVM/clang 3.3
目标arm*-unknown-linux*
arm*-unknown-freertos-lwip

先决条件

除了支持的工具链之外,我们建议在构建 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 上使用系统提供的 autotools 版本:

sudo apt-get install libtool autoconf automake

对于 GNU Autotools 不容易获得或安装的系统(例如 Mac OS),或者系统提供的版本不提供可靠的开箱即用构建生成的系统,Nest Labs 创建了一个定制的交钥匙构建系统框架,基于 GNU Autotools。系统将生成生成中使用的程序集固定到已知的良好版本。将工具固定到特定版本还可以确保自动工具输出的流失率相对较低,从而带来可预测的开发人员和支持体验。建议将 GNU Autotools 的 Nest Labs 版本与 OpenWeave 一起使用。

要构建 Nest Labs GNU Autotools:

git clone https://github.com/openweave/openweave-core.git
cd openweave-core
make -C third_party/nlbuild-autotools/repo/ tools

快乐的

要运行 OpenWeave 中包含的测试脚本,或在模拟拓扑中使用 Wea​​ve,请在您的 Linux 机器上安装 Happy。见逍遥设置以获取更多信息。

独立应用

为桌面或服务器开发主机使用默认的 OpenWeave Standalone 应用程序。

  1. 克隆OpenWeave库:
    git clone https://github.com/openweave/openweave-core.git
  2. 构建OpenWeave独立应用程序:
    cd openweave-core
    make -f Makefile-Standalone

使用help与国旗Makefile-Standalone学习什么构建开关可用于构建定制。

make -f Makefile-Standalone help

例如,要启用 Wea​​ve 调试代码和日志记录:

make -f Makefile-Standalone DEBUG=1

项目对接

  1. 克隆OpenWeave库:
    git clone https://github.com/openweave/openweave-core.git
  2. 配置构建环境GNU自动工具:
    cd openweave-core
    ./bootstrap
    ./configure
  3. 构建OpenWeave:
    make all
  4. 级的输出到不同的地点供项目链接:
    mkdir <openweave-output>
    make DESTDIR=<openweave-output> install

升级后,使用目录下<openweave-output>项目链接:

  • /usr/local/include -公共标题
  • /usr/local/lib -库

安卓和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.acMakefile.am 。简单地更改构建配置或目标时不需要重复。

脚本

使用--help标志附带的配置脚本,以了解更多配置选项。

./configure --help

例如,要在不支持 BlueZ 的情况下配置 OpenWeave:

./configure --without-bluez

标题

所包含Makefiles使用定义在编译时间常数两个头文件:

还可以提供特定于项目的配置标题。将这些文件放在您的项目目录中——不要将它们放在 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