Avi Drissman | e4622aa | 2022-09-08 20:36:06 | [diff] [blame] | 1 | // Copyright 2011 The Chromium Authors |
[email protected] | 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_ | ||||
[email protected] | 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" |
[email protected] | 99084f6 | 2013-06-28 00:49:07 | [diff] [blame] | 9 | #include "base/time/time.h" |
[email protected] | 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. | ||||
[email protected] | 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. | ||||
[email protected] | 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 | } | ||||
[email protected] | 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_ |