summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Griffis <tingping@tingping.se>2017-04-28 04:54:18 -0400
committerPhilip Chimento <philip.chimento@gmail.com>2017-05-01 22:52:15 -0700
commitd083e39038aca8de1b84ed3cb09c2ed880df1f88 (patch)
tree013c2a0c0621dd746973995b82c6bc2277766ed3
parentbdbf7179bca6fba1ac9ce69256b5121f81305507 (diff)
downloadgjs-d083e39038aca8de1b84ed3cb09c2ed880df1f88.tar.gz
package: Support running Meson projects from source
The run_target() function in Meson sets these variables allowing you to simply create a target that can be ran with ninja. See also: http://mesonbuild.com/Reference-manual.html#run_target https://bugzilla.gnome.org/show_bug.cgi?id=781883
-rw-r--r--modules/package.js22
1 files changed, 22 insertions, 0 deletions
diff --git a/modules/package.js b/modules/package.js
index fa1d5a82..ca167c2d 100644
--- a/modules/package.js
+++ b/modules/package.js
@@ -59,6 +59,11 @@ function _runningFromSource() {
return binary.equal(sourceBinary);
}
+function _runningFromMesonSource() {
+ return GLib.getenv('MESON_BUILD_ROOT') &&
+ GLib.getenv('MESON_SOURCE_ROOT');
+}
+
function _makeNamePath(name) {
return '/' + name.replace('.', '/', 'g');
}
@@ -132,6 +137,23 @@ function init(params) {
pkgdatadir = GLib.build_filenamev([_base, 'data']);
localedir = GLib.build_filenamev([_base, 'po']);
moduledir = GLib.build_filenamev([_base, 'src']);
+ } else if (_runningFromMesonSource()) {
+ log('Running from Meson, using local files');
+ let bld = GLib.getenv('MESON_BUILD_ROOT');
+ let src = GLib.getenv('MESON_SOURCE_ROOT');
+
+ pkglibdir = libpath = girpath = GLib.build_filenamev([bld, 'lib']);
+ pkgdatadir = GLib.build_filenamev([bld, 'data']);
+ localedir = GLib.build_filenamev([bld, 'po']);
+
+ try {
+ let resource = Gio.Resource.load(GLib.build_filenamev([bld, 'src',
+ name + '.src.gresource']));
+ resource._register();
+ moduledir = 'resource://' + _makeNamePath(name) + '/js';
+ } catch(e) {
+ moduledir = GLib.build_filenamev([src, 'src']);
+ }
} else {
_base = prefix;
pkglibdir = GLib.build_filenamev([libdir, _pkgname]);