libweave: Add build of share library with light version of base lib This build type has own test runner with some base unittests. BUG=brillo:1256 TEST=`FEATURES=test emerge-gizmo libweave buffet` Change-Id: I1f15942b59dce85f47fbf6a04f5ed568d91def2b Reviewed-on: https://chromium-review.googlesource.com/294174 Reviewed-by: Alex Vakulenko <avakulenko@chromium.org> Commit-Queue: Vitaly Buka <vitalybuka@chromium.org> Tested-by: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/libweave/libweave.gyp b/libweave/libweave.gyp index d5f48b2..e17ac6a 100644 --- a/libweave/libweave.gyp +++ b/libweave/libweave.gyp
@@ -1,107 +1,111 @@ { + 'includes': [ + 'libweave.gypi', + ], 'target_defaults': { 'variables': { 'deps': [ 'expat', - 'libchrome-<(libbase_ver)', 'libcrypto', ], }, 'include_dirs': [ '.', '../libweave/include', + '../libweave/third_party/modp_b64/modp_b64/', ], }, 'targets': [ { - 'target_name': 'libweave_external', - 'type': 'static_library', - 'include_dirs': [ - '../libweave/third_party/modp_b64/modp_b64/', - ], - 'sources': [ - 'external/crypto/p224.cc', - 'external/crypto/p224_spake.cc', - 'external/crypto/sha2.cc', - 'third_party/modp_b64/modp_b64.cc', - ], - }, - { 'target_name': 'libweave_common', 'type': 'static_library', 'cflags!': ['-fPIE'], 'cflags': ['-fPIC'], + 'variables': { + 'deps': [ + 'libchrome-<(libbase_ver)', + ], + }, 'sources': [ - 'src/backoff_entry.cc', - 'src/base_api_handler.cc', - 'src/commands/cloud_command_proxy.cc', - 'src/commands/command_definition.cc', - 'src/commands/command_dictionary.cc', - 'src/commands/command_instance.cc', - 'src/commands/command_manager.cc', - 'src/commands/command_queue.cc', - 'src/commands/object_schema.cc', - 'src/commands/prop_constraints.cc', - 'src/commands/prop_types.cc', - 'src/commands/prop_values.cc', - 'src/commands/schema_constants.cc', - 'src/commands/schema_utils.cc', - 'src/commands/user_role.cc', - 'src/config.cc', - 'src/data_encoding.cc', - 'src/device_manager.cc', - 'src/device_registration_info.cc', - 'src/error.cc', - 'src/http_constants.cc', - 'src/json_error_codes.cc', - 'src/notification/notification_parser.cc', - 'src/notification/pull_channel.cc', - 'src/notification/xml_node.cc', - 'src/notification/xmpp_channel.cc', - 'src/notification/xmpp_iq_stanza_handler.cc', - 'src/notification/xmpp_stream_parser.cc', - 'src/privet/cloud_delegate.cc', - 'src/privet/constants.cc', - 'src/privet/device_delegate.cc', - 'src/privet/openssl_utils.cc', - 'src/privet/privet_handler.cc', - 'src/privet/privet_manager.cc', - 'src/privet/privet_types.cc', - 'src/privet/publisher.cc', - 'src/privet/security_manager.cc', - 'src/privet/wifi_bootstrap_manager.cc', - 'src/privet/wifi_ssid_generator.cc', - 'src/registration_status.cc', - 'src/states/error_codes.cc', - 'src/states/state_change_queue.cc', - 'src/states/state_manager.cc', - 'src/states/state_package.cc', - 'src/string_utils.cc', - 'src/utils.cc', + '<@(weave_sources)', ], }, { 'target_name': 'libweave-<(libbase_ver)', 'type': 'shared_library', + 'variables': { + 'deps': [ + 'libchrome-<(libbase_ver)', + ], + }, 'includes': [ '../common-mk/deps.gypi', ], 'dependencies': [ 'libweave_common', - 'libweave_external', ], 'sources': [ - 'src/empty.cc', + 'src/empty.cc' ], }, { 'target_name': 'libweave-test-<(libbase_ver)', 'type': 'static_library', 'standalone_static_library': 1, + 'variables': { + 'deps': [ + 'libchrome-<(libbase_ver)', + ], + }, 'sources': [ - 'src/commands/mock_command.cc', - 'src/commands/unittest_utils.cc', - 'src/mock_http_client.cc', + '<@(weave_test_sources)', + ], + 'includes': ['../common-mk/deps.gypi'], + }, + + { + 'target_name': 'libweave_base_common', + 'type': 'static_library', + 'cflags!': ['-fPIE'], + 'cflags': [ + '-fPIC', + '-Wno-format-nonliteral', + '-Wno-char-subscripts', + '-Wno-deprecated-register', + ], + 'include_dirs': [ + '../libweave/external', + ], + 'sources': [ + '<@(weave_sources)', + '<@(base_sources)', + ], + }, + { + 'target_name': 'libweave_base', + 'type': 'shared_library', + 'include_dirs': [ + '../libweave/external', + ], + 'includes': [ + '../common-mk/deps.gypi', + ], + 'dependencies': [ + 'libweave_base_common', + ], + 'sources': [ + 'src/empty.cc' + ], + }, + { + 'target_name': 'libweave_base-test', + 'type': 'static_library', + 'standalone_static_library': 1, + 'include_dirs': [ + '../libweave/external', + ], + 'sources': [ + '<@(weave_test_sources)', ], 'includes': ['../common-mk/deps.gypi'], }, @@ -114,46 +118,33 @@ 'type': 'executable', 'variables': { 'deps': [ - 'libchrome-test-<(libbase_ver)', + 'libchrome-<(libbase_ver)', ], }, 'dependencies': [ 'libweave_common', - 'libweave_external', 'libweave-test-<(libbase_ver)', ], 'includes': ['../common-mk/common_test.gypi'], 'sources': [ - 'external/crypto/p224_spake_unittest.cc', - 'external/crypto/p224_unittest.cc', - 'external/crypto/sha2_unittest.cc', - 'src/backoff_entry_unittest.cc', - 'src/base_api_handler_unittest.cc', - 'src/commands/cloud_command_proxy_unittest.cc', - 'src/commands/command_definition_unittest.cc', - 'src/commands/command_dictionary_unittest.cc', - 'src/commands/command_instance_unittest.cc', - 'src/commands/command_manager_unittest.cc', - 'src/commands/command_queue_unittest.cc', - 'src/commands/object_schema_unittest.cc', - 'src/commands/schema_utils_unittest.cc', - 'src/config_unittest.cc', - 'src/data_encoding_unittest.cc', - 'src/device_registration_info_unittest.cc', - 'src/error_unittest.cc', - 'src/notification/notification_parser_unittest.cc', - 'src/notification/xml_node_unittest.cc', - 'src/notification/xmpp_channel_unittest.cc', - 'src/notification/xmpp_iq_stanza_handler_unittest.cc', - 'src/notification/xmpp_stream_parser_unittest.cc', - 'src/privet/privet_handler_unittest.cc', - 'src/privet/security_manager_unittest.cc', - 'src/privet/wifi_ssid_generator_unittest.cc', - 'src/states/state_change_queue_unittest.cc', - 'src/states/state_manager_unittest.cc', - 'src/states/state_package_unittest.cc', - 'src/string_utils_unittest.cc', - 'src/weave_testrunner.cc', + '<@(weave_unittest_sources)', + ], + }, + { + 'target_name': 'libweave_base_testrunner', + 'type': 'executable', + 'cflags': ['-Wno-format-nonliteral'], + 'include_dirs': [ + '../libweave/external', + ], + 'dependencies': [ + 'libweave_base_common', + 'libweave_base-test', + ], + 'includes': ['../common-mk/common_test.gypi'], + 'sources': [ + '<@(weave_unittest_sources)', + '<@(base_unittests)', ], }, ],
diff --git a/libweave/libweave.gypi b/libweave/libweave.gypi new file mode 100644 index 0000000..5543575 --- /dev/null +++ b/libweave/libweave.gypi
@@ -0,0 +1,150 @@ +{ + 'variables': { + 'weave_sources': [ + 'external/crypto/p224.cc', + 'external/crypto/p224_spake.cc', + 'external/crypto/sha2.cc', + 'src/backoff_entry.cc', + 'src/base_api_handler.cc', + 'src/commands/cloud_command_proxy.cc', + 'src/commands/command_definition.cc', + 'src/commands/command_dictionary.cc', + 'src/commands/command_instance.cc', + 'src/commands/command_manager.cc', + 'src/commands/command_queue.cc', + 'src/commands/object_schema.cc', + 'src/commands/prop_constraints.cc', + 'src/commands/prop_types.cc', + 'src/commands/prop_values.cc', + 'src/commands/schema_constants.cc', + 'src/commands/schema_utils.cc', + 'src/commands/user_role.cc', + 'src/config.cc', + 'src/data_encoding.cc', + 'src/device_manager.cc', + 'src/device_registration_info.cc', + 'src/error.cc', + 'src/http_constants.cc', + 'src/json_error_codes.cc', + 'src/notification/notification_parser.cc', + 'src/notification/pull_channel.cc', + 'src/notification/xml_node.cc', + 'src/notification/xmpp_channel.cc', + 'src/notification/xmpp_iq_stanza_handler.cc', + 'src/notification/xmpp_stream_parser.cc', + 'src/privet/cloud_delegate.cc', + 'src/privet/constants.cc', + 'src/privet/device_delegate.cc', + 'src/privet/openssl_utils.cc', + 'src/privet/privet_handler.cc', + 'src/privet/privet_manager.cc', + 'src/privet/privet_types.cc', + 'src/privet/publisher.cc', + 'src/privet/security_manager.cc', + 'src/privet/wifi_bootstrap_manager.cc', + 'src/privet/wifi_ssid_generator.cc', + 'src/registration_status.cc', + 'src/states/error_codes.cc', + 'src/states/state_change_queue.cc', + 'src/states/state_manager.cc', + 'src/states/state_package.cc', + 'src/string_utils.cc', + 'src/utils.cc', + 'third_party/modp_b64/modp_b64.cc', + ], + 'weave_test_sources': [ + 'src/commands/mock_command.cc', + 'src/commands/unittest_utils.cc', + 'src/mock_http_client.cc', + ], + 'weave_unittest_sources': [ + 'external/crypto/p224_spake_unittest.cc', + 'external/crypto/p224_unittest.cc', + 'external/crypto/sha2_unittest.cc', + 'src/backoff_entry_unittest.cc', + 'src/base_api_handler_unittest.cc', + 'src/commands/cloud_command_proxy_unittest.cc', + 'src/commands/command_definition_unittest.cc', + 'src/commands/command_dictionary_unittest.cc', + 'src/commands/command_instance_unittest.cc', + 'src/commands/command_manager_unittest.cc', + 'src/commands/command_queue_unittest.cc', + 'src/commands/object_schema_unittest.cc', + 'src/commands/schema_utils_unittest.cc', + 'src/config_unittest.cc', + 'src/data_encoding_unittest.cc', + 'src/device_registration_info_unittest.cc', + 'src/error_unittest.cc', + 'src/notification/notification_parser_unittest.cc', + 'src/notification/xml_node_unittest.cc', + 'src/notification/xmpp_channel_unittest.cc', + 'src/notification/xmpp_iq_stanza_handler_unittest.cc', + 'src/notification/xmpp_stream_parser_unittest.cc', + 'src/privet/privet_handler_unittest.cc', + 'src/privet/security_manager_unittest.cc', + 'src/privet/wifi_ssid_generator_unittest.cc', + 'src/states/state_change_queue_unittest.cc', + 'src/states/state_manager_unittest.cc', + 'src/states/state_package_unittest.cc', + 'src/string_utils_unittest.cc', + 'src/weave_testrunner.cc', + ], + 'base_sources': [ + 'external/base/bind_helpers.cc', + 'external/base/callback_internal.cc', + 'external/base/guid_posix.cc', + 'external/base/json/json_parser.cc', + 'external/base/json/json_reader.cc', + 'external/base/json/json_writer.cc', + 'external/base/json/string_escape.cc', + 'external/base/memory/ref_counted.cc', + 'external/base/logging.cc', + 'external/base/location.cc', + 'external/base/memory/weak_ptr.cc', + 'external/base/memory/weak_ptr.cc', + 'external/base/rand_util.cc', + 'external/base/rand_util_posix.cc', + 'external/base/strings/string_number_conversions.cc', + 'external/base/strings/string_piece.cc', + 'external/base/strings/stringprintf.cc', + 'external/base/strings/string_util.cc', + 'external/base/strings/string_util_constants.cc', + 'external/base/strings/utf_string_conversion_utils.cc', + 'external/base/third_party/dmg_fp/g_fmt.cc', + 'external/base/third_party/dmg_fp/dtoa.cc', + 'external/base/third_party/icu/icu_utf.cc', + 'external/base/time/clock.cc', + 'external/base/time/time.cc', + 'external/base/time/time_posix.cc', + 'external/base/values.cc', + ], + 'base_unittests': [ + 'external/base/atomicops_unittest.cc', + 'external/base/bind_unittest.cc', + 'external/base/callback_list_unittest.cc', + 'external/base/callback_unittest.cc', + 'external/base/guid_unittest.cc', + 'external/base/json/json_parser_unittest.cc', + 'external/base/json/json_reader_unittest.cc', + 'external/base/json/json_writer_unittest.cc', + 'external/base/json/string_escape_unittest.cc', + 'external/base/logging_unittest.cc', + 'external/base/memory/ref_counted_unittest.cc', + 'external/base/memory/scoped_ptr_unittest.cc', + 'external/base/memory/weak_ptr_unittest.cc', + 'external/base/move_unittest.cc', + 'external/base/numerics/safe_numerics_unittest.cc', + 'external/base/observer_list_unittest.cc', + 'external/base/rand_util_unittest.cc', + 'external/base/scoped_clear_errno_unittest.cc', + 'external/base/strings/string_number_conversions_unittest.cc', + 'external/base/strings/string_piece_unittest.cc', + 'external/base/strings/string_util_unittest.cc', + 'external/base/strings/stringprintf_unittest.cc', + 'external/base/template_util_unittest.cc', + 'external/base/time/time_unittest.cc', + 'external/base/tuple_unittest.cc', + 'external/base/values_unittest.cc', + ], + }, +}