libweave: Build weave example for ubuntu BUG=brillo:1275 TEST=libweave/examples/ubuntu/build.sh Change-Id: I6b0d97cc27077c8d64d095419cce34da3d79b0cd Reviewed-on: https://chromium-review.googlesource.com/297005 Commit-Queue: Vitaly Buka <vitalybuka@chromium.org> Trybot-Ready: Vitaly Buka <vitalybuka@chromium.org> Tested-by: Vitaly Buka <vitalybuka@chromium.org> Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/libweave/examples/ubuntu/build.sh b/libweave/examples/ubuntu/build.sh new file mode 100755 index 0000000..96d0ab6 --- /dev/null +++ b/libweave/examples/ubuntu/build.sh
@@ -0,0 +1,27 @@ +#!/bin/bash +# Copyright 2015 The Chromium OS Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +DIR=$(cd -P -- "$(dirname -- "$0")" && pwd -P) +ROOT_DIR=$(cd -P -- "$(dirname -- "$0")/../.." && pwd -P) + +cd $ROOT_DIR + +gyp -Ilibweave_common.gypi --toplevel-dir=. -f ninja $DIR/weave.gyp + +if [ -z "$BUILD_CONFIG" ]; then + export BUILD_CONFIG=Debug +fi + +export BUILD_TARGET=$* +if [ -z "$BUILD_TARGET" ]; then + export BUILD_TARGET="weave libweave_testrunner" +fi + +export CORES=`cat /proc/cpuinfo | grep processor | wc -l` +ninja -j $CORES -C out/${BUILD_CONFIG} $BUILD_TARGET || exit 1 + +if [[ $BUILD_TARGET == *"libweave_testrunner"* ]]; then + out/${BUILD_CONFIG}/libweave_testrunner +fi
diff --git a/libweave/examples/ubuntu/weave.gyp b/libweave/examples/ubuntu/weave.gyp new file mode 100644 index 0000000..0aa4e3a --- /dev/null +++ b/libweave/examples/ubuntu/weave.gyp
@@ -0,0 +1,32 @@ +{ + 'targets': [ + { + 'target_name': 'weave', + 'type': 'executable', + 'cflags': ['-pthread'], + 'sources': [ + 'main.cc', + 'file_config_store.cc', + 'event_task_runner.cc', + 'curl_http_client.cc', + 'network_manager.cc', + 'avahi_client.cc', + 'event_http_server.cc', + ], + 'dependencies': [ + '../../libweave_standalone.gyp:libweave', + ], + 'libraries': [ + '-levent', + '-lcrypto', + '-lexpat', + '-lcurl', + '-lpthread', + '-lssl', + '-lavahi-common', + '-lavahi-client', + '-levent_openssl', + ] + } + ] +}
diff --git a/libweave/libweave_common.gypi b/libweave/libweave_common.gypi new file mode 100644 index 0000000..c6bdd78 --- /dev/null +++ b/libweave/libweave_common.gypi
@@ -0,0 +1,43 @@ +{ + 'target_defaults': { + 'configurations': { + 'Release': { + 'defines': [ + 'NDEBUG', + ], + 'cflags': [ + '-Os', + ], + }, + 'Debug': { + 'defines': [ + '_DEBUG', + ], + 'cflags': [ + '-Og', + ], + }, + }, + 'include_dirs': [ + '.', + '..', + 'include', + 'external', + 'third_party/include', + 'third_party/modp_b64/modp_b64', + ], + 'cflags!': ['-fPIE'], + 'cflags': [ + '-fPIC', + '-fvisibility=hidden', + '-Wl,--exclude-libs,ALL', + '--std=c++11', + '-Wno-format-nonliteral', + '-Wno-char-subscripts', + #'-Wno-deprecated-register', + ], + 'libraries': [ + '-L../../third_party/lib', + ], + }, +}
diff --git a/libweave/libweave_standalone.gyp b/libweave/libweave_standalone.gyp new file mode 100644 index 0000000..6c825ac --- /dev/null +++ b/libweave/libweave_standalone.gyp
@@ -0,0 +1,80 @@ +{ + 'includes': [ + 'libweave.gypi', + ], + 'target_defaults': { + 'libraries': [ + '-lcrypto', + '-lexpat', + '-lpthread', + '-lgtest', + '-lgmock', + ], + }, + 'targets': [ + { + 'target_name': 'libweave_common', + 'type': 'static_library', + 'include_dirs': [ + '../libweave/external', + ], + 'sources': [ + '<@(weave_sources)', + '<@(base_sources)', + ], + }, + { + 'target_name': 'libweave', + 'type': 'shared_library', + 'include_dirs': [ + '../libweave/external', + ], + 'dependencies': [ + 'libweave_common', + ], + 'sources': [ + 'src/empty.cc' + ], + }, + { + 'target_name': 'libweave-test', + 'type': 'static_library', + 'standalone_static_library': 1, + 'include_dirs': [ + '../libweave/external', + ], + 'sources': [ + '<@(weave_test_sources)', + ], + }, + { + 'target_name': 'libweave_testrunner', + 'type': 'executable', + 'include_dirs': [ + '../libweave/external', + ], + 'dependencies': [ + 'libweave_common', + 'libweave-test', + ], + 'sources': [ + '<@(weave_unittest_sources)', + '<@(base_unittests)', + ], + }, + { + 'target_name': 'libweave_exports_testrunner', + 'type': 'executable', + 'include_dirs': [ + '../libweave/external', + ], + 'dependencies': [ + 'libweave', + 'libweave-test', + ], + 'sources': [ + '<@(weave_exports_unittest_sources)', + ], + }, + ], +}