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

# This exposes the Chrome branding as GN variables for use in build files.
#
# PREFER NOT TO USE THESE. The GYP build uses this kind of thing extensively.
# However, it is far better to write an action to generate a file at
# build-time with the information you need. This allows better dependency
# checking and GN will run faster.
#
# These values should only be used if you REALLY need to depend on them at
# build-time, for example, in the computation of output file names.

import("//build/config/chrome_build.gni")

_branding_dictionary_template =
    "full_name = \"@PRODUCT_FULLNAME@\" " +
    "short_name = \"@PRODUCT_SHORTNAME@\" " +
    "bundle_id = \"@MAC_BUNDLE_ID@\" " +
    "creator_code = \"@MAC_CREATOR_CODE@\" " +
    "installer_full_name = \"@PRODUCT_INSTALLER_FULLNAME@\" " +
    "installer_short_name = \"@PRODUCT_INSTALLER_SHORTNAME@\" " +
    "team_id = \"@MAC_TEAM_ID@\" "

_result = exec_script("version.py",
                      [
                        "-f",
                        rebase_path(branding_file_path, root_build_dir),
                        "-t",
                        _branding_dictionary_template,
                      ],
                      "scope",
                      [ branding_file_path ])

chrome_product_full_name = _result.full_name
chrome_product_short_name = _result.short_name
chrome_product_installer_full_name = _result.installer_full_name
chrome_product_installer_short_name = _result.installer_short_name

if (is_mac) {
  chrome_mac_bundle_id = _result.bundle_id
  chrome_mac_creator_code = _result.creator_code
  chrome_mac_team_id = _result.team_id
}
