diff options
Diffstat (limited to 'devtools/templates.mozbuild')
-rw-r--r-- | devtools/templates.mozbuild | 48 |
1 files changed, 48 insertions, 0 deletions
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], + ) |