diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /devtools/templates.mozbuild | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | devtools/templates.mozbuild | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/devtools/templates.mozbuild b/devtools/templates.mozbuild new file mode 100644 index 0000000000..1f4877128d --- /dev/null +++ b/devtools/templates.mozbuild @@ -0,0 +1,52 @@ +# -*- 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], + ) |