# 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 extension 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 all extensions BUILD.gn files.
# It also saves us from duplicating this exec_script call.
extensions_gypi_values =
    exec_script("//build/gypi_to_gn.py",
                [
                  rebase_path("extensions.gypi"),
                  "--replace=<(SHARED_INTERMEDIATE_DIR)=$root_gen_dir",
                ],
                "scope",
                [ "extensions.gypi" ])

extensions_tests_gypi_values =
    exec_script("//build/gypi_to_gn.py",
                [
                  rebase_path("extensions_tests.gypi"),
                  "--replace=<(SHARED_INTERMEDIATE_DIR)=$root_gen_dir",
                ],
                "scope",
                [ "extensions_tests.gypi" ])
