mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-11 21:58:41 +02:00
This helper makes it considerably easier for C++ code to import a JS module
and wrap it in an appropriately-defined XPIDL interface for its exports.
Typical usage is something like:
Foo.jsm:
var EXPORTED_SYMBOLS = ["foo"];
function foo(bar) {
return bar.toString();
}
mozIFoo.idl:
interface mozIFoo : nsISupports {
AString foo(double meh);
}
Thing.cpp:
nsCOMPtr<mozIFoo> foo = do_ImportModule(
"resource://meh/Foo.jsm");
MOZ_TRY(foo->Foo(42));
Differential Revision: https://phabricator.services.mozilla.com/D14209
--HG--
extra : rebase_source : 4d518205b173fc210908235b42ddace590e6b7e5
63 lines
1.2 KiB
Python
63 lines
1.2 KiB
Python
# -*- 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/.
|
|
|
|
UNIFIED_SOURCES += [
|
|
'AutoMemMap.cpp',
|
|
'ChromeScriptLoader.cpp',
|
|
'mozJSLoaderUtils.cpp',
|
|
'mozJSSubScriptLoader.cpp',
|
|
'nsImportModule.cpp',
|
|
'ScriptCacheActors.cpp',
|
|
'ScriptPreloader.cpp',
|
|
'URLPreloader.cpp',
|
|
]
|
|
|
|
# mozJSComponentLoader.cpp cannot be built in unified mode because it uses
|
|
# windows.h
|
|
SOURCES += [
|
|
'mozJSComponentLoader.cpp',
|
|
]
|
|
|
|
IPDL_SOURCES += [
|
|
'PScriptCache.ipdl',
|
|
]
|
|
|
|
EXPORTS += [
|
|
'nsImportModule.h'
|
|
]
|
|
|
|
EXPORTS.mozilla += [
|
|
'AutoMemMap.h',
|
|
'ScriptPreloader.h',
|
|
'URLPreloader.h',
|
|
]
|
|
|
|
EXPORTS.mozilla.dom += [
|
|
'PrecompiledScript.h',
|
|
]
|
|
|
|
EXPORTS.mozilla.loader += [
|
|
'AutoMemMap.h',
|
|
'ScriptCacheActors.h',
|
|
]
|
|
|
|
EXTRA_JS_MODULES += [
|
|
'XPCOMUtils.jsm',
|
|
]
|
|
|
|
FINAL_LIBRARY = 'xul'
|
|
|
|
LOCAL_INCLUDES += [
|
|
'../src',
|
|
'../wrappers',
|
|
'/dom/base',
|
|
'/xpcom/base/',
|
|
]
|
|
|
|
include('/ipc/chromium/chromium-config.mozbuild')
|
|
|
|
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
|
|
CXXFLAGS += ['-Wno-shadow']
|