| Index: SConstruct
|
| diff --git a/SConstruct b/SConstruct
|
| index 09e27b0419c2c06933c638d28a1da9dc95e1ee91..196df2ada692a9fb8a29ee179c1cb89401661af7 100644
|
| --- a/SConstruct
|
| +++ b/SConstruct
|
| @@ -173,22 +173,6 @@ env['BUILDERS']['ProtocolBuffer'] = proto_builder
|
| env['BUILDERS']['DbusBindings'] = dbus_bindings_builder
|
| env['BUILDERS']['GlibMarshal'] = glib_marshal_builder
|
|
|
| -# Hack to fix dependencies from auto generated headers.
|
| -# Some files indirectly included update_metatadata.pb.h
|
| -# which is built as a side effect of building update_metadata.pb.cc
|
| -env.Depends('bzip_extent_writer_unittest.cc', 'update_metadata.pb.cc');
|
| -env.Depends('bzip_extent_writer.cc', 'update_metadata.pb.cc');
|
| -env.Depends('cycle_breaker.cc', 'update_metadata.pb.cc');
|
| -
|
| -# Some files indirectly include marshal.glibmarshal.h
|
| -# which is built as a side effect of the .c file
|
| -env.Depends('dbus_service.cc', 'marshal.glibmarshal.c');
|
| -
|
| -# Some files indirectly include update_engine.dbusserver.h
|
| -# which is built as a side effect of the dbusclient.h file
|
| -env.Depends('mock_http_fetcher.cc', 'update_engine.dbusclient.h');
|
| -env.Depends('main.cc', 'update_engine.dbusclient.h');
|
| -
|
| # Fix issue with scons not passing pkg-config vars through the environment.
|
| for key in Split('PKG_CONFIG_LIBDIR PKG_CONFIG_PATH'):
|
| if os.environ.has_key(key):
|
| @@ -236,8 +220,8 @@ sources = Split("""action_processor.cc
|
| topological_sort.cc
|
| update_attempter.cc
|
| update_check_action.cc
|
| - update_metadata.pb.cc
|
| - utils.cc""")
|
| + update_metadata.pb.cc
|
| + utils.cc""")
|
| main = ['main.cc']
|
|
|
| unittest_sources = Split("""action_unittest.cc
|
| @@ -277,6 +261,22 @@ client_main = ['update_engine_client.cc']
|
|
|
| delta_generator_main = ['generate_delta_main.cc']
|
|
|
| +# Hack to generate header files first. They are generated as a side effect
|
| +# of generating other files (usually their corresponding .c(c) files),
|
| +# so we make all sources depend on those other files.
|
| +all_sources = []
|
| +all_sources.extend(sources)
|
| +all_sources.extend(unittest_sources)
|
| +all_sources.extend(main)
|
| +all_sources.extend(unittest_main)
|
| +all_sources.extend(client_main)
|
| +all_sources.extend(delta_generator_main)
|
| +for source in all_sources:
|
| + if source.endswith('.glibmarshal.c') or source.endswith('.pb.cc'):
|
| + continue
|
| + env.Depends(source, 'update_metadata.pb.cc')
|
| + env.Depends(source, 'marshal.glibmarshal.c')
|
| + env.Depends(source, 'update_engine.dbusclient.h')
|
|
|
| update_engine_core = env.Library('update_engine_core', sources)
|
| env.Prepend(LIBS=[update_engine_core])
|
|
|