[gjs] Use gresource for internal modules



commit 417db1df488db3e4ad641d77ae673b5642458744
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Thu Jan 2 12:21:32 2014 -0500

    Use gresource for internal modules
    
    This means that we don't install any JS files to disk anymore, and
    everything is linked into libgjs.so, hopefully making bootstrap time
    faster.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=721352

 .gitignore                    |    1 +
 Makefile-modules.am           |   35 +++++++++++++----------------------
 Makefile.am                   |    5 -----
 gjs/importer.cpp              |   10 +---------
 modules/modules.gresource.xml |   21 +++++++++++++++++++++
 5 files changed, 36 insertions(+), 36 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 4b5156e..e4de784 100644
--- a/.gitignore
+++ b/.gitignore
@@ -43,3 +43,4 @@ installed-tests/gjs-installed-tests.testmeta
 jsunit
 jsunit.test
 testSystemExit.test
+modules-resources.[ch]
diff --git a/Makefile-modules.am b/Makefile-modules.am
index a410738..7b51a4c 100644
--- a/Makefile-modules.am
+++ b/Makefile-modules.am
@@ -1,27 +1,6 @@
-dist_gjstweener_DATA =                 \
-       modules/tweener/equations.js    \
-       modules/tweener/tweener.js      \
-       modules/tweener/tweenList.js
 
-dist_gjsoverride_DATA =                \
-       modules/overrides/GLib.js       \
-       modules/overrides/Gio.js        \
-       modules/overrides/GObject.js
-
-dist_gjsjs_DATA +=             \
-       modules/gettext.js      \
-       modules/lang.js         \
-       modules/mainloop.js     \
-       modules/jsUnit.js       \
-       modules/signals.js      \
-       modules/promise.js      \
-       modules/format.js
-
-NATIVE_MODULES = libconsole.la libsystem.la
+NATIVE_MODULES = libconsole.la libsystem.la libmodules_resources.la
 if ENABLE_CAIRO
-dist_gjsjs_DATA +=             \
-       modules/cairo.js        \
-       $(NULL)
 NATIVE_MODULES += libcairoNative.la
 endif
 
@@ -35,6 +14,18 @@ JS_NATIVE_MODULE_CFLAGS =    \
 JS_NATIVE_MODULE_LIBADD =      \
         $(GJS_LIBS)
 
+modules_resources_files = $(shell glib-compile-resources --sourcedir=$(srcdir) --generate-dependencies 
$(srcdir)/modules/modules.gresource.xml)
+modules-resources.h: $(srcdir)/modules/modules.gresource.xml $(modules_resource_files)
+       $(AM_V_GEN) glib-compile-resources --target=$@ --sourcedir=$(srcdir) --sourcedir=$(builddir) 
--generate --c-name modules_resources $<
+modules-resources.c: $(srcdir)/modules/modules.gresource.xml $(modules_resource_files)
+       $(AM_V_GEN) glib-compile-resources --target=$@ --sourcedir=$(srcdir) --sourcedir=$(builddir) 
--generate --c-name modules_resources $<
+
+EXTRA_DIST += $(modules_resources_files)
+
+nodist_libmodules_resources_la_SOURCES = modules-resources.c modules-resources.h
+libmodules_resources_la_CPPFLAGS = $(JS_NATIVE_MODULE_CFLAGS)
+libmodules_resources_la_LIBADD = $(JS_NATIVE_MODULE_LIBADD)
+
 libcairoNative_la_CPPFLAGS = $(JS_NATIVE_MODULE_CFLAGS) $(GJS_CAIRO_CFLAGS)
 libcairoNative_la_LIBADD = $(JS_NATIVE_MODULE_LIBADD) $(GJS_CAIRO_LIBS)
 libcairoNative_la_SOURCES =                     \
diff --git a/Makefile.am b/Makefile.am
index c46b7a2..68cdd0f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -19,10 +19,6 @@ ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS}
 AM_CFLAGS = $(WARN_CFLAGS) -DG_LOG_DOMAIN=\"Gjs\"
 AM_CPPFLAGS = $(WARN_CXXFLAGS) -DG_LOG_DOMAIN=\"Gjs\"
 
-gjsjsdir = @gjsjsdir@
-gjsoverridedir = $(gjsjsdir)/overrides
-gjstweenerdir = $(gjsjsdir)/tweener
-
 gjs_public_includedir = $(includedir)/gjs-1.0
 gjs_module_includedir = $(includedir)/gjs-1.0
 
@@ -80,7 +76,6 @@ EXTRA_DIST +=                         \
 ########################################################################
 gjs_directory_defines =                                \
        -DGJS_TOP_SRCDIR=\"$(top_srcdir)\"              \
-       -DGJS_JS_DIR=\"$(gjsjsdir)\"                    \
        -DPKGLIBDIR=\"$(pkglibdir)\"
 
 ########################################################################
diff --git a/gjs/importer.cpp b/gjs/importer.cpp
index d15c8bc..f1f7a7b 100644
--- a/gjs/importer.cpp
+++ b/gjs/importer.cpp
@@ -1066,16 +1066,8 @@ gjs_get_search_path(void)
             g_free(dirs);
         }
 
-        /* $XDG_DATA_DIRS /gjs-1.0 */
-        system_data_dirs = g_get_system_data_dirs();
-        for (i = 0; system_data_dirs[i] != NULL; ++i) {
-            char *s;
-            s = g_build_filename(system_data_dirs[i], "gjs-1.0", NULL);
-            g_ptr_array_add(path, s);
-        }
-
         /* ${datadir}/share/gjs-1.0 */
-        g_ptr_array_add(path, g_strdup(GJS_JS_DIR));
+        g_ptr_array_add(path, g_strdup("resource:///org/gnome/gjs/modules/"));
 
         g_ptr_array_add(path, NULL);
 
diff --git a/modules/modules.gresource.xml b/modules/modules.gresource.xml
new file mode 100644
index 0000000..8173ed7
--- /dev/null
+++ b/modules/modules.gresource.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+  <gresource prefix="/org/gnome/gjs">
+    <file>modules/tweener/equations.js</file>
+    <file>modules/tweener/tweener.js</file>
+    <file>modules/tweener/tweenList.js</file>
+
+    <file>modules/overrides/GLib.js</file>
+    <file>modules/overrides/Gio.js</file>
+    <file>modules/overrides/GObject.js</file>
+
+    <file>modules/cairo.js</file>
+    <file>modules/gettext.js</file>
+    <file>modules/lang.js</file>
+    <file>modules/mainloop.js</file>
+    <file>modules/jsUnit.js</file>
+    <file>modules/signals.js</file>
+    <file>modules/promise.js</file>
+    <file>modules/format.js</file>
+  </gresource>
+</gresources>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]