Index: src/platform/update_engine/SConstruct |
diff --git a/src/platform/update_engine/SConstruct b/src/platform/update_engine/SConstruct |
index fa036021ae52385fcc3189bbd7c389f2d01e80ba..64406e49290e4c9895d7023c124cdfae01352129 100644 |
--- a/src/platform/update_engine/SConstruct |
+++ b/src/platform/update_engine/SConstruct |
@@ -2,41 +2,137 @@ |
# Use of this source code is governed by a BSD-style license that can be |
# found in the LICENSE file. |
+# Protobuffer compilation |
+""" Inputs: |
+ target: list of targets to compile to |
+ source: list of sources to compile |
+ env: the scons environment in which we are compiling |
+ Outputs: |
+ target: the list of targets we'll emit |
+ source: the list of sources we'll compile""" |
+def ProtocolBufferEmitter(target, source, env): |
+ output = str(source[0]) |
+ output = output[0:output.rfind('.proto')] |
+ target = [ |
+ output + '.pb.cc', |
+ output + '.pb.h', |
+ ] |
+ return target, source |
+ |
+""" Inputs: |
+ source: list of sources to process |
+ target: list of targets to generate |
+ env: scons environment in which we are working |
+ for_signature: unused |
+ Outputs: a list of commands to execute to generate the targets from |
+ the sources.""" |
+def ProtocolBufferGenerator(source, target, env, for_signature): |
+ commands = [ |
+ '/usr/bin/protoc ' |
+ ' --proto_path . ${SOURCES} --cpp_out .'] |
+ return commands |
+ |
+proto_builder = Builder(generator = ProtocolBufferGenerator, |
+ emitter = ProtocolBufferEmitter, |
+ single_source = 1, |
+ suffix = '.pb.cc') |
+ |
env = Environment() |
-env['CCFLAGS'] = '-g -fno-exceptions -Wall -Werror -D_FILE_OFFSET_BITS=64 ' + \ |
- '-I/usr/include/libxml2' |
-env['LIBS'] = Split('curl gtest ssl xml2 z') |
-env['CPPPATH'] = ['..'] |
+env['CCFLAGS'] = ' '.join("""-g |
+ -fno-exceptions |
+ -Wall |
+ -Werror |
+ -Wclobbered |
+ -Wempty-body |
+ -Wignored-qualifiers |
+ -Wmissing-field-initializers |
+ -Wsign-compare |
+ -Wtype-limits |
+ -Wuninitialized |
+ -D_FILE_OFFSET_BITS=64 |
+ -I/usr/include/libxml2""".split()); |
+ |
+env['LIBS'] = Split("""base |
+ curl |
+ gflags |
+ glib-2.0 |
+ gtest |
+ gthread-2.0 |
+ libpcrecpp |
+ protobuf |
+ pthread |
+ ssl |
+ xml2 |
+ z""") |
+env['CPPPATH'] = ['..', '../../third_party/chrome/files', '../../common'] |
+env['LIBPATH'] = ['../../third_party/chrome'] |
+env['BUILDERS']['ProtocolBuffer'] = proto_builder |
env.ParseConfig('pkg-config --cflags --libs glib-2.0') |
+env.ProtocolBuffer('update_metadata.pb.cc', 'update_metadata.proto') |
if ARGUMENTS.get('debug', 0): |
env['CCFLAGS'] += ' -fprofile-arcs -ftest-coverage' |
env['LIBS'] += ['gcov'] |
+ |
+ |
sources = Split("""action_processor.cc |
decompressing_file_writer.cc |
+ delta_diff_parser.cc |
download_action.cc |
+ filesystem_copier_action.cc |
+ filesystem_iterator.cc |
+ file_writer.cc |
+ gzip.cc |
+ install_action.cc |
libcurl_http_fetcher.cc |
omaha_hash_calculator.cc |
- update_check_action.cc""") |
+ omaha_request_prep_action.cc |
+ omaha_response_handler_action.cc |
+ postinstall_runner_action.cc |
+ set_bootable_flag_action.cc |
+ subprocess.cc |
+ update_check_action.cc |
+ update_metadata.pb.cc |
+ utils.cc""") |
main = ['main.cc'] |
unittest_sources = Split("""action_unittest.cc |
action_pipe_unittest.cc |
action_processor_unittest.cc |
decompressing_file_writer_unittest.cc |
+ delta_diff_generator_unittest.cc |
download_action_unittest.cc |
file_writer_unittest.cc |
+ filesystem_copier_action_unittest.cc |
+ filesystem_iterator_unittest.cc |
+ gzip_unittest.cc |
http_fetcher_unittest.cc |
+ install_action_unittest.cc |
+ integration_unittest.cc |
mock_http_fetcher.cc |
omaha_hash_calculator_unittest.cc |
+ omaha_request_prep_action_unittest.cc |
+ omaha_response_handler_action_unittest.cc |
+ postinstall_runner_action_unittest.cc |
+ set_bootable_flag_action_unittest.cc |
+ subprocess_unittest.cc |
test_utils.cc |
- update_check_action_unittest.cc""") |
+ update_check_action_unittest.cc |
+ utils_unittest.cc""") |
unittest_main = ['testrunner.cc'] |
+delta_generator_sources = Split("""delta_diff_generator.cc""") |
+ |
env.Program('update_engine', sources + main) |
unittest_cmd = env.Program('update_engine_unittests', |
- sources + unittest_sources + unittest_main) |
+ sources + delta_generator_sources + |
+ unittest_sources + unittest_main) |
Clean(unittest_cmd, Glob('*.gcda') + Glob('*.gcno') + Glob('*.gcov') + |
Split('html app.info')) |
+ |
+delta_generator_cmd = env.Program('delta_generator', |
+ sources + delta_generator_sources + main) |
+ |
+http_server_cmd = env.Program('test_http_server', 'test_http_server.cc') |