relativesrcdir is used for l10n packaging primarily. Being able to
override this in jar.mn allows to package individual files from toolkit
for an app.
--HG--
extra : rebase_source : 1b5b9028751cfe01a3810cea81a52b4c20919b51
When using files in the current working directory, JarMaker.py uses '.' as the base directory, which ends up giving us links like bookmarks.json -> ./bookmarks.json . This replaces '.' with the actual working directory to give us proper symlinks.
In a nonpackaged build, we have the following manifests:
* chrome.manifest is just a series of manifest directives for all the other manifests, generated in rules.mk using buildlist.py
** components/interfaces.manifest is also generated in rules.mk using buildlist.py
** components/components.manifest contains only the *binary* components. JS components each have their own manifest which is installed to dist/bin/components
** Each chrome/jarfile.jar has a matching chrome/jarfile.manifest, and JarMaker.py inserts this filename into the root chrome.manifest by importing buildlist.py
In a packaged build, we end up with the following manifests:
* chrome.manifest lists the four manifests below
** components/interfaces.manifest
** components/components.manifest
** chrome/nonlocalized.manifest
** chrome/localized.manifest
In the future it should be possible to integrate the three non-localized manifests directly into the root chrome.manifest for increased performance, but this is slightly tricky because it involves rewriting some manifest instructions which may include relative JAR URIs. That is left for a future followup.
When we repackage a l10n build, we only have to replace chrome/localized.manifest.