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

import("//build/util/lastchange.gni")

declare_args() {
  # This should be the filename of a script that prints a single line
  # containing an integer that's a unix timestamp in UTC.
  # This timestamp is used as build time and will be compiled into
  # other code.
  #
  # This argument may look unused. Before removing please check with the
  # chromecast team to see if they still use it internally.
  compute_build_timestamp = "compute_build_timestamp.py"
}

if (is_official_build) {
  official_name = "official"
} else {
  official_name = "default"
}

# This will return a timestamp that's different each day (official builds)
# or each month (regular builds).  Just rely on gn rerunning due to other
# changes to keep this up to date.  (Bots run gn on each build, and for devs
# the timestamp being 100% accurate doesn't matter.)
# See compute_build_timestamp.py for tradeoffs for picking the timestamp.
build_timestamp = exec_script(compute_build_timestamp,
                              [ official_name ],
                              "trim string",
                              [ lastchange_file ])
