update_engine: Split libupdate_engine in server and client side code.
This patch creates a new intermediate static_libray
"libpayload_generator" with all the code under payload_generator/.
The only mentions of payload_generator/ form the base directory are
from unittest code, so we include this library in delta_generator
and unittests, but not in update_engine and update_engine_client.
BUG=chromium:394184
TEST=FEATURES="test" emerge-link update_engine; sudo emerge update_engine
Change-Id: Ida4e6c7f942c1cae14fb5f4a6634f118f11c2ce3
Reviewed-on: https://chromium-review.googlesource.com/208845
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
diff --git a/payload_verifier.cc b/payload_verifier.cc
index fa23d4f..c4bf912 100644
--- a/payload_verifier.cc
+++ b/payload_verifier.cc
@@ -9,7 +9,6 @@
#include "update_engine/delta_performer.h"
#include "update_engine/omaha_hash_calculator.h"
-#include "update_engine/payload_generator/delta_diff_generator.h"
#include "update_engine/update_metadata.pb.h"
#include "update_engine/utils.h"
diff --git a/update_engine.gyp b/update_engine.gyp
index c201b65..dbe1330 100644
--- a/update_engine.gyp
+++ b/update_engine.gyp
@@ -42,6 +42,17 @@
'variables': {
'proto_in_dir': '.',
'proto_out_dir': 'include/update_engine',
+ 'exported_deps': [
+ 'protobuf',
+ ],
+ 'deps': ['<@(exported_deps)'],
+ },
+ 'all_dependent_settings': {
+ 'variables': {
+ 'deps': [
+ '<@(exported_deps)',
+ ],
+ },
},
'sources': [
'update_metadata.proto'
@@ -100,7 +111,6 @@
'libmetrics-<(libbase_ver)',
'libssl',
'libxml-2.0',
- 'protobuf',
],
'deps': ['<@(exported_deps)'],
},
@@ -157,16 +167,6 @@
'omaha_response_handler_action.cc',
'p2p_manager.cc',
'payload_constants.cc',
- 'payload_generator/cycle_breaker.cc',
- 'payload_generator/delta_diff_generator.cc',
- 'payload_generator/extent_mapper.cc',
- 'payload_generator/filesystem_iterator.cc',
- 'payload_generator/full_update_generator.cc',
- 'payload_generator/graph_utils.cc',
- 'payload_generator/metadata.cc',
- 'payload_generator/payload_signer.cc',
- 'payload_generator/tarjan.cc',
- 'payload_generator/topological_sort.cc',
'payload_state.cc',
'payload_verifier.cc',
'postinstall_runner_action.cc',
@@ -213,11 +213,37 @@
'update_engine_client.cc',
]
},
+ # server-side code. This is used for delta_generator and unittests but not
+ # for any client code.
+ {
+ 'target_name': 'libpayload_generator',
+ 'type': 'static_library',
+ 'dependencies': [
+ 'update_metadata-protos',
+ ],
+ # TODO(deymo): Add here the payload_generator dependencies not in
+ # libupdate_engine.
+ 'sources': [
+ 'payload_generator/cycle_breaker.cc',
+ 'payload_generator/delta_diff_generator.cc',
+ 'payload_generator/extent_mapper.cc',
+ 'payload_generator/filesystem_iterator.cc',
+ 'payload_generator/full_update_generator.cc',
+ 'payload_generator/graph_utils.cc',
+ 'payload_generator/metadata.cc',
+ 'payload_generator/payload_signer.cc',
+ 'payload_generator/tarjan.cc',
+ 'payload_generator/topological_sort.cc',
+ ],
+ },
# server-side delta generator.
{
'target_name': 'delta_generator',
'type': 'executable',
- 'dependencies': ['libupdate_engine'],
+ 'dependencies': [
+ 'libupdate_engine',
+ 'libpayload_generator',
+ ],
'link_settings': {
'ldflags!': [
'-pie',
@@ -258,7 +284,10 @@
{
'target_name': 'update_engine_unittests',
'type': 'executable',
- 'dependencies': ['libupdate_engine'],
+ 'dependencies': [
+ 'libupdate_engine',
+ 'libpayload_generator',
+ ],
'includes': ['../common-mk/common_test.gypi'],
'defines': [
'SYSROOT="<(sysroot)"',