Bug 952335 - Provide the full path for OS.Constants.Path.libxul on OSX. r=mossop
This commit is contained in:
18
addon-sdk/source/test/test-libxul.js
Normal file
18
addon-sdk/source/test/test-libxul.js
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
/* 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/. */
|
||||||
|
|
||||||
|
// Test that we can link with libxul using js-ctypes
|
||||||
|
|
||||||
|
const {Cu} = require("chrome");
|
||||||
|
const {ctypes} = Cu.import("resource://gre/modules/ctypes.jsm", {});
|
||||||
|
const {OS} = Cu.import("resource://gre/modules/osfile.jsm", {});
|
||||||
|
|
||||||
|
exports.test = function(assert) {
|
||||||
|
let path = OS.Constants.Path.libxul;
|
||||||
|
assert.pass("libxul is at " + path);
|
||||||
|
let lib = ctypes.open(path);
|
||||||
|
assert.ok(lib != null, "linked to libxul successfully");
|
||||||
|
};
|
||||||
|
|
||||||
|
require('test').run(exports);
|
||||||
@@ -837,11 +837,14 @@ bool DefineOSFileConstants(JSContext *cx, JS::Handle<JSObject*> global)
|
|||||||
// library, which is sufficient to link to the library using js-ctypes.
|
// library, which is sufficient to link to the library using js-ctypes.
|
||||||
|
|
||||||
#if defined(XP_MACOSX)
|
#if defined(XP_MACOSX)
|
||||||
// Under MacOS X, for some reason, libxul is called simply "XUL"
|
// Under MacOS X, for some reason, libxul is called simply "XUL",
|
||||||
nsAutoString libxul(NS_LITERAL_STRING("XUL"));
|
// and we need to provide the full path.
|
||||||
|
nsAutoString libxul;
|
||||||
|
libxul.Append(gPaths->libDir);
|
||||||
|
libxul.Append(NS_LITERAL_STRING("/XUL"));
|
||||||
#else
|
#else
|
||||||
// On other platforms, libxul is a library "xul" with regular
|
// On other platforms, libxul is a library "xul" with regular
|
||||||
// library prefix/suffix
|
// library prefix/suffix.
|
||||||
nsAutoString libxul;
|
nsAutoString libxul;
|
||||||
libxul.Append(NS_LITERAL_STRING(DLL_PREFIX));
|
libxul.Append(NS_LITERAL_STRING(DLL_PREFIX));
|
||||||
libxul.Append(NS_LITERAL_STRING("xul"));
|
libxul.Append(NS_LITERAL_STRING("xul"));
|
||||||
|
|||||||
Reference in New Issue
Block a user