xref: /aosp_15_r20/external/cronet/base/build_time.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2011 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker 
5*6777b538SAndroid Build Coastguard Worker #ifndef BASE_BUILD_TIME_H_
6*6777b538SAndroid Build Coastguard Worker #define BASE_BUILD_TIME_H_
7*6777b538SAndroid Build Coastguard Worker 
8*6777b538SAndroid Build Coastguard Worker #include "base/generated_build_date.h"
9*6777b538SAndroid Build Coastguard Worker #include "base/time/time.h"
10*6777b538SAndroid Build Coastguard Worker 
11*6777b538SAndroid Build Coastguard Worker namespace base {
12*6777b538SAndroid Build Coastguard Worker 
13*6777b538SAndroid Build Coastguard Worker // GetBuildTime returns the time at which the current binary was built,
14*6777b538SAndroid Build Coastguard Worker // rounded down to 5:00:00am at the start of the day in UTC.
15*6777b538SAndroid Build Coastguard Worker //
16*6777b538SAndroid Build Coastguard Worker // This uses a generated file, which doesn't trigger a rebuild when the time
17*6777b538SAndroid Build Coastguard Worker // changes. It will, however, be updated whenever //build/util/LASTCHANGE
18*6777b538SAndroid Build Coastguard Worker // changes.
19*6777b538SAndroid Build Coastguard Worker //
20*6777b538SAndroid Build Coastguard Worker // This value should only be considered accurate to within a day.
21*6777b538SAndroid Build Coastguard Worker // It will always be in the past.
22*6777b538SAndroid Build Coastguard Worker //
23*6777b538SAndroid Build Coastguard Worker // Note: If the build is not official (i.e. is_official_build = false)
24*6777b538SAndroid Build Coastguard Worker // this time will be set to 5:00:00am on the most recent first Sunday
25*6777b538SAndroid Build Coastguard Worker // of a month.
GetBuildTime()26*6777b538SAndroid Build Coastguard Worker constexpr Time GetBuildTime() {
27*6777b538SAndroid Build Coastguard Worker   // BASE_GENERATED_BUILD_DATE_TIMESTAMP is a Unix timestamp value. See
28*6777b538SAndroid Build Coastguard Worker   // //base/write_build_date_header.py and //build/compute_build_timestamp.py
29*6777b538SAndroid Build Coastguard Worker   // for details. On non-official builds, this will be first Sunday of the month
30*6777b538SAndroid Build Coastguard Worker   // at 5:00am UTC.
31*6777b538SAndroid Build Coastguard Worker   return Time::FromTimeT(BASE_GENERATED_BUILD_DATE_TIMESTAMP);
32*6777b538SAndroid Build Coastguard Worker }
33*6777b538SAndroid Build Coastguard Worker 
34*6777b538SAndroid Build Coastguard Worker }  // namespace base
35*6777b538SAndroid Build Coastguard Worker 
36*6777b538SAndroid Build Coastguard Worker #endif  // BASE_BUILD_TIME_H_
37