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

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


Install Repo
-------
1. Make sure you have a bin/ directory in your home directory
and that it is included in your path:

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

2. 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
-------------------
Includes to be used by device code:
  include/

Implementation sources:
  src/

Example of device code:
  examples/

Dependencies:
  third_party/

Build files:
  libweave_standalone.gyp
  libweave_common.gypi

Quick start on Debian/Ubuntu
----------------------------

Install prerequisites:

  examples/prerequisites.sh

Build library, tests, run tests, build example:

  examples/build.sh

Execute example:

  sudo out/Debug/weave_daemon


Prerequisites
-------------
Common:

  autoconf
  automake
  binutils
  libtool
  gyp
  libexpat1-dev
  ninja-build

For tests:

  gtest
  gmock

For examples:

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


Compiling
---------
Everywhere below Debug can be replaced with Release.

Generate ninja build files:

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

Build library with tests:

  ninja -C out/Debug

Build library only:

  ninja -C out/Debug libweave

Testing
-------
Run unittests tests:

  out/Debug/libweave_testrunner
  out/Debug/libweave_exports_testrunner

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

  git config --local user.name "John Doe"
  git config --local user.email johndoe@example.com

Start local branch

  repo start <branch name> .

Edit code and commit locally e.g.:

  git commit -a -v

Upload CL:

  repo upload .

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

Known Issues
------------
* No big-endian support. Pairing fails on big-endian hardware.
