# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# No particular functionality in this file whose only purpose is to provide a hook for the Fuchsia
# GN build to inject global parameters into build files.
