libweave: Add clang support to Makefile.

To use: "CLANG=1 make all -j"

BUG: 26508278

Change-Id: I6b09e6574634d8e07ce2438c31907466e953eb0f
Reviewed-on: https://weave-review.googlesource.com/2185
Reviewed-by: Vitaly Buka <vitalybuka@google.com>
3 files changed
tree: 77f788bef06009a855412ddbe5b5129a4988af65
  1. .clang-format
  2. .gitignore
  3. AUTHORS
  4. CONTRIBUTORS
  5. LICENSE
  6. Makefile
  7. README.md
  8. examples.mk
  9. examples/
  10. file_lists.mk
  11. include/
  12. libweave-test.pc.in
  13. libweave.gypi
  14. libweave.pc.in
  15. libweave_common.gypi
  16. libweave_standalone.gyp
  17. src/
  18. tests.mk
  19. third_party.mk
  20. third_party/
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
*.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.