Bug 1904609 - Provide a function to get the build id r=glandium

Differential Revision: https://phabricator.services.mozilla.com/D214841
This commit is contained in:
Alex Franchuk
2024-06-28 14:55:01 +00:00
parent 65c5238dc2
commit cf017a0788
4 changed files with 14 additions and 16 deletions

View File

@@ -10,6 +10,14 @@ from datetime import datetime
SOURCESTAMP_FILENAME = "sourcestamp.txt" SOURCESTAMP_FILENAME = "sourcestamp.txt"
def get_buildid():
import buildconfig
path = os.path.join(buildconfig.topobjdir, "buildid.h")
_define, _MOZ_BUILDID, buildid = open(path, "r", encoding="utf-8").read().split()
return buildid
def buildid_header(output): def buildid_header(output):
buildid = os.environ.get("MOZ_BUILD_DATE") buildid = os.environ.get("MOZ_BUILD_DATE")
if buildid and len(buildid) != 14: if buildid and len(buildid) != 14:
@@ -17,6 +25,7 @@ def buildid_header(output):
buildid = None buildid = None
if not buildid: if not buildid:
buildid = datetime.now().strftime("%Y%m%d%H%M%S") buildid = datetime.now().strftime("%Y%m%d%H%M%S")
# If this output changes, be sure to update `get_buildid()`.
output.write("#define MOZ_BUILDID %s\n" % buildid) output.write("#define MOZ_BUILDID %s\n" % buildid)

View File

@@ -9,6 +9,7 @@ from datetime import datetime
import buildconfig import buildconfig
from mozbuild.preprocessor import Preprocessor from mozbuild.preprocessor import Preprocessor
from variables import get_buildid
TEMPLATE = """ TEMPLATE = """
// This Source Code Form is subject to the terms of the Mozilla Public // This Source Code Form is subject to the terms of the Mozilla Public
@@ -95,12 +96,6 @@ def parse_module_ver(path, defines):
return result return result
def get_buildid():
path = os.path.join(buildconfig.topobjdir, "buildid.h")
define, MOZ_BUILDID, buildid = io.open(path, "r", encoding="utf-8").read().split()
return buildid
def last_winversion_segment(buildid, app_version_display): def last_winversion_segment(buildid, app_version_display):
""" """
The last segment needs to fit into a 16 bit number. We also need to The last segment needs to fit into a 16 bit number. We also need to

View File

@@ -23,7 +23,6 @@
import ctypes import ctypes
import errno import errno
import io
import os import os
import platform import platform
import re import re
@@ -45,6 +44,7 @@ from mozbuild.util import memoize
from mozpack import executables from mozpack import executables
from mozpack.copier import FileRegistry from mozpack.copier import FileRegistry
from mozpack.manifests import InstallManifest, UnreadableInstallManifest from mozpack.manifests import InstallManifest, UnreadableInstallManifest
from variables import get_buildid
# Utility classes # Utility classes
@@ -591,9 +591,8 @@ class Dumper:
) )
# Add the build ID if it's present # Add the build ID if it's present
path = os.path.join(buildconfig.topobjdir, "buildid.h")
try: try:
buildid = io.open(path, "r", encoding="utf-8").read().split()[2] buildid = get_buildid()
cmdline.extend( cmdline.extend(
[ [
"--extra-info", "--extra-info",

View File

@@ -10,10 +10,9 @@
import os import os
from io import StringIO
import buildconfig import buildconfig
from mozbuild.preprocessor import Preprocessor from variables import get_buildid
def main(output, input_file): def main(output, input_file):
@@ -34,11 +33,7 @@ def tests(output, buildid):
def write_file(output, maybe_buildid): def write_file(output, maybe_buildid):
pp = Preprocessor() buildid = maybe_buildid or get_buildid()
pp.out = StringIO()
pp.do_include(os.path.join(buildconfig.topobjdir, "buildid.h"))
buildid = pp.context["MOZ_BUILDID"] if maybe_buildid is None else maybe_buildid
keyword_extern = "extern" if maybe_buildid is None else "" keyword_extern = "extern" if maybe_buildid is None else ""
attribute_used = "__attribute__((used))" if maybe_buildid is not None else "" attribute_used = "__attribute__((used))" if maybe_buildid is not None else ""