cmake is used to build gtest and libevhtp

Change-Id: I1c81bbfbf275b27c6039d06555c6b22a2d9ec26a
Reviewed-on: https://weave-review.googlesource.com/2484
Reviewed-by: Jacob Marble <jacobmarble@google.com>
2 files changed
tree: 01207b5a7a0a3efe05bab2cf6d5a2a944eb0605c
  1. examples/
  2. include/
  3. src/
  4. third_party/
  5. .clang-format
  6. .gitignore
  7. AUTHORS
  8. CONTRIBUTORS
  9. file_lists.mk
  10. libweave-test.pc.in
  11. libweave.pc.in
  12. LICENSE
  13. Makefile
  14. README.md
  15. tests.mk
README.md

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
Makefile, *.mk filesBuild files

Quick start on Debian/Ubuntu

Install prerequisites

sudo apt-get update
sudo apt-get install \
  autoconf \
  automake \
  binutils \
  g++ \
  hostapd \
  libavahi-client-dev \
  libcurl4-openssl-dev \
  libevent-dev \
  libexpat1-dev \
  libnl-3-dev \
  libnl-route-3-dev \
  libssl-dev \
  libtool

Prerequisites

Common

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

For tests

  • cmake
  • gtest (included; see third_party/get_gtest.sh)
  • gmock (included; see third_party/get_gtest.sh)

For examples

  • cmake
  • hostapd
  • libavahi-client-dev
  • libcurl4-openssl-dev
  • libevent 2.0.x
  • libevhtp (included; see third_party/get_libevhtp.sh)

Compiling

The make --jobs/-j flag is encouraged, to speed up build time. For example

make -j

which happens to be the same as

make all -j

Build library

make out/Debug/libweave.so

Build examples

make all-examples

See the examples README for details.

Testing

Run tests

make test
make export-test

or

make testall

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.