mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 12:25:53 +00:00
Bug 839298 - One True JSON file of build information r=ted
This commit is contained in:
parent
4d9aec8e49
commit
3a684cef64
46
toolkit/mozapps/installer/informulate.py
Normal file
46
toolkit/mozapps/installer/informulate.py
Normal file
@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env python
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
import sys
|
||||
import json
|
||||
import buildconfig
|
||||
|
||||
|
||||
def parse_cmdline(args):
|
||||
"""Take a list of strings in the format K=V and turn them into a python
|
||||
dictionary"""
|
||||
contents = {}
|
||||
for arg in args:
|
||||
key, s, value = arg.partition("=")
|
||||
if value == '':
|
||||
print "ERROR: Malformed command line key value pairing (%s)" % arg
|
||||
exit(1)
|
||||
contents[key.lower()] = value
|
||||
return contents
|
||||
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 2:
|
||||
print "ERROR: You must specify an output file"
|
||||
exit(1)
|
||||
|
||||
all_key_value_pairs = {}
|
||||
important_substitutions = [
|
||||
'target_alias', 'target_cpu', 'target_os', 'target_vendor',
|
||||
'host_alias', 'host_cpu', 'host_os', 'host_vendor',
|
||||
'MOZ_UPDATE_CHANNEL', 'MOZ_APP_VENDOR', 'MOZ_APP_NAME',
|
||||
'MOZ_APP_VERSION', 'MOZ_APP_MAXVERSION', 'MOZ_APP_ID',
|
||||
'CC', 'CXX', 'LD', 'AS']
|
||||
|
||||
all_key_value_pairs = dict([(x.lower(), buildconfig.substs[x]) for x in important_substitutions])
|
||||
all_key_value_pairs.update(parse_cmdline(sys.argv[2:]))
|
||||
|
||||
with open(sys.argv[1], "w+") as f:
|
||||
json.dump(all_key_value_pairs, f, indent=2, sort_keys=True)
|
||||
f.write('\n')
|
||||
|
||||
|
||||
if __name__=="__main__":
|
||||
main()
|
@ -64,7 +64,7 @@ PKG_STUB_BASENAME = $(PKG_BASENAME).installer-stub
|
||||
PKG_INST_PATH = install/sea/
|
||||
PKG_UPDATE_BASENAME = $(PKG_BASENAME)
|
||||
CHECKSUMS_FILE_BASENAME = $(PKG_BASENAME)
|
||||
MOZ_SOURCESTAMP_FILE_BASENAME = $(PKG_BASENAME)
|
||||
MOZ_INFO_BASENAME = $(PKG_BASENAME)
|
||||
PKG_UPDATE_PATH = update/
|
||||
COMPLETE_MAR = $(PKG_UPDATE_PATH)$(PKG_UPDATE_BASENAME).complete.mar
|
||||
# PARTIAL_MAR needs to be processed by $(wildcard) before you use it.
|
||||
@ -103,12 +103,12 @@ endif
|
||||
endif
|
||||
PKG_PATH = $(MOZ_PKG_PLATFORM)/$(AB_CD)/
|
||||
CHECKSUMS_FILE_BASENAME = $(MOZ_PKG_APPNAME_LC)-$(MOZ_PKG_VERSION)
|
||||
MOZ_SOURCESTAMP_FILE_BASENAME = $(MOZ_PKG_APPNAME_LC)-$(MOZ_PKG_VERSION)
|
||||
MOZ_INFO_BASENAME = $(MOZ_PKG_APPNAME_LC)-$(MOZ_PKG_VERSION)
|
||||
ifeq ($(MOZ_APP_NAME),xulrunner)
|
||||
PKG_PATH = runtimes/
|
||||
PKG_BASENAME = $(MOZ_APP_NAME)-$(MOZ_PKG_VERSION).$(AB_CD).$(MOZ_PKG_PLATFORM)
|
||||
CHECKSUMS_FILE_BASENAME = $(PKG_BASENAME)
|
||||
MOZ_SOURCESTAMP_FILE_BASENAME = $(PKG_BASENAME)
|
||||
MOZ_INFO_BASENAME = $(PKG_BASENAME)
|
||||
endif
|
||||
PKG_INST_PATH = $(PKG_PATH)
|
||||
PKG_UPDATE_BASENAME = $(MOZ_PKG_APPNAME_LC)-$(MOZ_PKG_VERSION)
|
||||
@ -151,7 +151,8 @@ MOZ_SOURCE_STAMP = $(firstword $(shell hg -R $(MOZILLA_DIR) parent --template="{
|
||||
###########################################################################
|
||||
MOZ_SOURCE_REPO = $(call getSourceRepo,$(MOZILLA_DIR)$(NULL) $(NULL))
|
||||
|
||||
MOZ_SOURCESTAMP_FILE = $(DIST)/$(PKG_PATH)/$(MOZ_SOURCESTAMP_FILE_BASENAME).txt
|
||||
MOZ_SOURCESTAMP_FILE = $(DIST)/$(PKG_PATH)/$(MOZ_INFO_BASENAME).txt
|
||||
MOZ_BUILDINFO_FILE = $(DIST)/$(PKG_PATH)/$(MOZ_INFO_BASENAME).json
|
||||
|
||||
# JavaScript Shell
|
||||
PKG_JSSHELL = $(DIST)/jsshell-$(MOZ_PKG_PLATFORM).zip
|
||||
|
@ -608,7 +608,7 @@ endif # LIBXUL_SDK
|
||||
|
||||
prepare-package: stage-package
|
||||
|
||||
make-package-internal: prepare-package make-sourcestamp-file
|
||||
make-package-internal: prepare-package make-sourcestamp-file make-buildinfo-file
|
||||
@echo "Compressing..."
|
||||
cd $(DIST) && $(MAKE_PACKAGE)
|
||||
|
||||
@ -623,6 +623,15 @@ make-sourcestamp-file::
|
||||
@echo "$(BUILDID)" > $(MOZ_SOURCESTAMP_FILE)
|
||||
@echo "$(MOZ_SOURCE_REPO)/rev/$(MOZ_SOURCE_STAMP)" >> $(MOZ_SOURCESTAMP_FILE)
|
||||
|
||||
.PHONY: make-buildinfo-file
|
||||
make-buildinfo-file:
|
||||
$(PYTHON) $(MOZILLA_DIR)/toolkit/mozapps/installer/informulate.py \
|
||||
$(MOZ_BUILDINFO_FILE) \
|
||||
BUILDID=$(BUILDID) \
|
||||
MOZ_SOURCE_REPO=$(MOZ_SOURCE_REPO) \
|
||||
MOZ_SOURCE_STAMP=$(MOZ_SOURCE_STAMP) \
|
||||
MOZ_PKG_PLATFORM=$(MOZ_PKG_PLATFORM)
|
||||
|
||||
# The install target will install the application to prefix/lib/appname-version
|
||||
# In addition if INSTALL_SDK is set, it will install the development headers,
|
||||
# libraries, and IDL files as follows:
|
||||
@ -732,6 +741,7 @@ UPLOAD_FILES= \
|
||||
$(call QUOTED_WILDCARD,$(DIST)/$(PKG_PATH)$(SYMBOL_ARCHIVE_BASENAME).zip) \
|
||||
$(call QUOTED_WILDCARD,$(DIST)/$(SDK)) \
|
||||
$(call QUOTED_WILDCARD,$(MOZ_SOURCESTAMP_FILE)) \
|
||||
$(call QUOTED_WILDCARD,$(MOZ_BUILDINFO_FILE)) \
|
||||
$(call QUOTED_WILDCARD,$(PKG_JSSHELL)) \
|
||||
$(if $(UPLOAD_EXTRA_FILES), $(foreach f, $(UPLOAD_EXTRA_FILES), $(wildcard $(DIST)/$(f))))
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user