From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- devtools/templates.mozbuild | 48 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 devtools/templates.mozbuild (limited to 'devtools/templates.mozbuild') diff --git a/devtools/templates.mozbuild b/devtools/templates.mozbuild new file mode 100644 index 0000000000..2951faefce --- /dev/null +++ b/devtools/templates.mozbuild @@ -0,0 +1,48 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=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/. + +@template +def DevToolsModules(*modules): + '''Installs JS modules at a resource:// path that corresponds directly to + their source tree location. + + For this to work as intended, a moz.build file should be placed in each + source directory which uses this template to install only the JS files in + its own directory. Subdirectories should use their own moz.build. + + By following this pattern, there's less magic to require() and resource:// + paths, since they now match the source tree.''' + + for m in modules: + if '/' in m: + error('DevToolsModules must be used from the same directory as ' + + 'the files to be installed.') + + # jar.mn manifest files are typically used to install files to chrome + # locations. Instead of doing this, use this DevToolsModules syntax via + # moz.build files to do the installation so that we can enforce correct + # paths based on source tree location. + base = FINAL_TARGET_FILES.chrome.devtools.modules + for dir in RELATIVEDIR.split('/'): + base = base[dir] + base += [m for m in modules] + + +@template +def RenamedDevToolsModules(source, target): + ''' Helper function to ship a file (source) with a distinct name (target). + This will ship the file the same way DevToolsModule does it, to resource://devtools/''' + + base = FINAL_TARGET_FILES.chrome.devtools.modules + for dir in RELATIVEDIR.split("/"): + base = base[dir] + base += ["!%s" % target] + + GeneratedFile( + target, + script="/devtools/rename.py", + inputs=[source], + ) -- cgit v1.2.3