Avi Drissman | e4622aa | 2022-09-08 20:36:06 | [diff] [blame] | 1 | // Copyright 2011 The Chromium Authors |
agl@chromium.org | 08aa0276 | 2011-11-11 16:09:31 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
danakj | 0a44860 | 2015-03-10 00:31:16 | [diff] [blame] | 5 | #ifndef BASE_BUILD_TIME_H_ |
| 6 | #define BASE_BUILD_TIME_H_ |
agl@chromium.org | 08aa0276 | 2011-11-11 16:09:31 | [diff] [blame] | 7 | |
Will Harris | 064192c | 2023-03-16 17:34:50 | [diff] [blame] | 8 | #include "base/generated_build_date.h" |
avi@chromium.org | 99084f6 | 2013-06-28 00:49:07 | [diff] [blame] | 9 | #include "base/time/time.h" |
agl@chromium.org | 08aa0276 | 2011-11-11 16:09:31 | [diff] [blame] | 10 | |
| 11 | namespace base { |
| 12 | |
zforman | 08d91b7 | 2016-02-12 06:23:42 | [diff] [blame] | 13 | // GetBuildTime returns the time at which the current binary was built, |
| 14 | // rounded down to 5:00:00am at the start of the day in UTC. |
agl@chromium.org | 08aa0276 | 2011-11-11 16:09:31 | [diff] [blame] | 15 | // |
zforman | 08d91b7 | 2016-02-12 06:23:42 | [diff] [blame] | 16 | // This uses a generated file, which doesn't trigger a rebuild when the time |
| 17 | // changes. It will, however, be updated whenever //build/util/LASTCHANGE |
| 18 | // changes. |
agl@chromium.org | 08aa0276 | 2011-11-11 16:09:31 | [diff] [blame] | 19 | // |
zforman | 08d91b7 | 2016-02-12 06:23:42 | [diff] [blame] | 20 | // This value should only be considered accurate to within a day. |
| 21 | // It will always be in the past. |
sebmarchand | 153e1b8 | 2014-10-31 20:25:52 | [diff] [blame] | 22 | // |
zforman | 08d91b7 | 2016-02-12 06:23:42 | [diff] [blame] | 23 | // Note: If the build is not official (i.e. is_official_build = false) |
| 24 | // this time will be set to 5:00:00am on the most recent first Sunday |
| 25 | // of a month. |
Will Harris | 064192c | 2023-03-16 17:34:50 | [diff] [blame] | 26 | constexpr Time GetBuildTime() { |
| 27 | // BASE_GENERATED_BUILD_DATE_TIMESTAMP is a Unix timestamp value. See |
| 28 | // //base/write_build_date_header.py and //build/compute_build_timestamp.py |
| 29 | // for details. On non-official builds, this will be first Sunday of the month |
| 30 | // at 5:00am UTC. |
| 31 | return Time::FromTimeT(BASE_GENERATED_BUILD_DATE_TIMESTAMP); |
| 32 | } |
agl@chromium.org | 08aa0276 | 2011-11-11 16:09:31 | [diff] [blame] | 33 | |
| 34 | } // namespace base |
| 35 | |
danakj | 0a44860 | 2015-03-10 00:31:16 | [diff] [blame] | 36 | #endif // BASE_BUILD_TIME_H_ |