# 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.

# Having revved dev-libs/protobuf to 2.6.1 in the SDK, we need to rebuild stuff
# that dynamically links against the libraries it installs.
# Unfortunately, using the in-build emerge logic for rebuilding all the
# reverse-dependencies of protobuf seems to blow up pretty terribly
# (including gcc and icedtea for some reason?) so let's just rebuild the
# things we know to be required.
sudo ~/trunk/chromite/bin/parallel_emerge \
  chromeos-base/libchrome \
  chromeos-base/libchromeos \
  chromeos-base/metrics \
  chromeos-base/update_engine \
  dev-libs/protobuf \
  dev-libs/protobuf-python

