Overview

libWeave is the library with device side implementation of Weave protocol.

Sources

Sources are located in git repository at https://weave.googlesource.com/weave/libweave/

Install Repo

Make sure you have a bin/ directory in your home directory and that it is included in your path:

mkdir ~/bin
PATH=~/bin:$PATH

Download the Repo tool and ensure that it is executable:

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

Checkout code

repo init -u https://weave.googlesource.com/weave/manifest
repo sync

Directory structure

PathDescription
include/Includes to be used by device code
src/Implementation sources
examples/Example of device code
third_party/Dependencies
*.gyp* filesBuild files

Quick start on Debian/Ubuntu

Install prerequisites

examples/prerequisites.sh

Build library, tests, run tests, build example

examples/build.sh

Execute example (see this README for details):

sudo out/Debug/weave_daemon

Prerequisites

Common

  • autoconf
  • automake
  • binutils
  • libtool
  • gyp
  • libexpat1-dev

For tests

  • gtest
  • gmock

For examples

  • hostapd
  • libavahi-client-dev
  • libcurl4-openssl-dev
  • libevent 2.1.x-alpha

Compiling

Generate build files

gyp -I libweave_common.gypi --toplevel-dir=. --depth=. \
    -f make libweave_standalone.gyp

Build library with tests

make

Build library only

make libweave

Testing

Run unittests tests

out/Debug/libweave_testrunner
out/Debug/libweave_exports_testrunner

Making changes

Configure git

Make sure to have correct user in local or global config e.g.:

git config --local user.name "User Name"
git config --local user.email user.name@example.com

Start local branch

repo start <branch name> .

Edit code and commit locally e.g.

git commit -a -v

Upload CL

repo upload .

Request code review

Go to the url from the output of “repo upload” and add reviewers.