Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

OpenWeaveを構築する

OpenWeaveを構築するためにサポートされている主なツールチェーンはGNUAutotoolsです。

システム要求

すべての主要なOSプラットフォームは、OpenWeaveの構築とクロスコンパイルをサポートしています。リストされているツールチェーンは、Nestによって公式にテストされています。

Linux

要件:Ubuntuの14.04(トラスティ)が正式にサポートされていますが、任意の類似したLinuxベースのシステムが動作するはずです。
C / C ++、Java、Pythonバインディング
ツールチェーンgcc 4.6.3
ターゲットi386-不明-linux-gnu
x86_64-不明-linux-gnu
C / C ++、Javaバインディング
ツールチェーンgcc 4.6
ターゲットarm-unknown-linux-android
armv7-不明-linux-android
i386-不明-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 ++バインディング
ツールチェーンgcc 4.8.3
ターゲットi686-pc-cygwin

埋め込み

C / C ++バインディング
ツールチェーンgcc 4.4.1
LLVM / clang 3.1
LLVM / clang 3.3
ターゲットarm * -unknown-linux *
arm *-不明-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およびMacOS X:

pip install --user google-cloud googleapis-common-protos grpc protobuf pycryptodomex
sudo cpan -i Text::Template

GNU Autotools

OpenWeaveは、ビルドシステムをGNUAutotoolsに依存しています。 OpenWeaveを正常にビルドするには、GNUAutotoolsのバージョンが利用可能である必要があります。 Linuxでシステム提供バージョンのautotoolsを使用するには:

sudo apt-get install libtool autoconf automake

GNU Autotoolsがすぐに利用できない、またはインストールできないシステム(Mac OSなど)、またはシステムが提供するバージョンがすぐに使用できるビルド生成を提供しないシステムの場合、NestLabsはカスタマイズされたターンキービルドを作成しましたGNUAutotoolsに基づくシステムフレームワーク。システムは、ビルド生成で使用されるプログラムのセットを既知の適切なバージョンに固定します。ツールを特定のバージョンに固定すると、autotoolsの出力のチャーンが比較的少なくなるため、開発者とサポートのエクスペリエンスが予測可能になります。 OpenWeaveでの使用にはGNUAutotoolsのNestLabsビルドをお勧めします。

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に含まれているテストスクリプトを実行する、またはシミュレートされたトポロジでWeaveを使用するには、LinuxマシンにHappyをインストールします。参照してください幸せなセットアップの詳細については、を。

スタンドアロンアプリケーション

デスクトップまたはサーバー開発ホストには、デフォルトのOpenWeaveスタンドアロンアプリケーションを使用します。

  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

たとえば、Weaveデバッグコードとロギングを有効にするには、次のようにします。

make -f Makefile-Standalone DEBUG=1

プロジェクトのリンク

  1. クローンOpenWeaveリポジトリ:
    git clone https://github.com/openweave/openweave-core.git
  2. GNU Autotool群のためのビルド環境を設定します。
    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 -ライブラリ

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を構成する前に、autotoolsを使用して関連するビルドファイルをブートストラップします。

./bootstrap

このステップでは、ツリーのチェックアウトした後、その後の変更時に1回だけ実行する必要configure.acまたはMakefile.am 。ビルド構成やターゲットを変更するだけの場合は、繰り返す必要はありません。

スクリプト

使用--help設定可能なオプションについての詳細を学ぶために含まれる構成スクリプトを使用してフラグを。

./configure --help

たとえば、BlueZをサポートせずにOpenWeaveを構成するには、次のようにします。

./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