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 Workerconstexpr 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