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

# This file defines the content renderer gypi values. This file is read once
# and cached, which is a performance optimization that allows us to share the
# results of parsing the .gypi file between the public and private BUILD.gn
# files. It also saves us from duplicating this exec_script call.
content_renderer_gypi_values =
    exec_script("//build/gypi_to_gn.py",
                [ rebase_path("../content_renderer.gypi") ],
                "scope",
                [ "../content_renderer.gypi" ])
