summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Saunier <tsaunier@igalia.com>2019-08-15 09:41:30 -0400
committerThibault Saunier <saunierthibault@gmail.com>2019-08-15 13:58:07 +0000
commitba744068f2075dad4d5d3562c79034f23a6bb90a (patch)
tree678e417910d3c48db1af0c157cc6b8c4c849e94b
parent722d59c14cd0a82a0373fb305d0157f5281c076e (diff)
downloadgobject-introspection-ba744068f2075dad4d5d3562c79034f23a6bb90a.tar.gz
Make meson.override_find_program working on more complex use cases
Add some missing `meson.override_find_program` And make sure that the `.gir` we build are found when used uninstalled as a concequence of `meson.override_find_program`.
-rw-r--r--girepository/girparser.c4
-rw-r--r--giscanner/transformer.py3
-rw-r--r--meson.build1
-rwxr-xr-xtools/g-ir-tool-template.in3
-rw-r--r--tools/meson.build3
5 files changed, 11 insertions, 3 deletions
diff --git a/girepository/girparser.c b/girepository/girparser.c
index 53450baf..fb47e75c 100644
--- a/girepository/girparser.c
+++ b/girepository/girparser.c
@@ -309,6 +309,10 @@ locate_gir (GIrParser *parser,
if (g_file_test (path, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR))
return path;
g_free (path);
+ path = g_build_filename (UNINSTALLED_GIR_DIR, girname, NULL);
+ if (g_file_test (path, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR))
+ return path;
+ g_free (path);
return NULL;
}
diff --git a/giscanner/transformer.py b/giscanner/transformer.py
index f63894cb..bcabdedc 100644
--- a/giscanner/transformer.py
+++ b/giscanner/transformer.py
@@ -183,7 +183,6 @@ None."""
def _get_gi_data_dirs(self):
data_dirs = utils.get_system_data_dirs()
data_dirs.append(DATADIR)
- data_dirs.append(GIRDIR)
if os.name != 'nt':
# For backwards compatibility, was always unconditionally added to the list.
data_dirs.append('/usr/share')
@@ -191,9 +190,9 @@ None."""
def _find_include(self, include):
searchdirs = self._includepaths[:]
+ searchdirs.extend(GIRDIR)
for path in self._get_gi_data_dirs():
searchdirs.append(os.path.join(path, 'gir-1.0'))
- searchdirs.append(os.path.join(DATADIR, 'gir-1.0'))
girname = '%s-%s.gir' % (include.name, include.version)
for d in searchdirs:
diff --git a/meson.build b/meson.build
index 7d71c8e5..bd6eaa48 100644
--- a/meson.build
+++ b/meson.build
@@ -90,6 +90,7 @@ endif
girdir = join_paths(gir_dir_prefix, 'gir-1.0')
config.set_quoted('GIR_DIR', girdir)
config.set_quoted('GOBJECT_INTROSPECTION_LIBDIR', join_paths(get_option('prefix'), get_option('libdir')))
+config.set_quoted('UNINSTALLED_GIR_DIR', join_paths(meson.current_build_dir(), 'gir'))
foreach type : ['char', 'short', 'int', 'long']
size = cc.sizeof(type)
diff --git a/tools/g-ir-tool-template.in b/tools/g-ir-tool-template.in
index 3b33f75d..8462f88a 100755
--- a/tools/g-ir-tool-template.in
+++ b/tools/g-ir-tool-template.in
@@ -61,7 +61,7 @@ if '@gir_dir_prefix@' and not '@gir_dir_prefix@'.startswith('@'):
# for autotools
elif '@GIR_DIR@' and not '@GIR_DIR@'.startswith('@'):
girdir = os.path.dirname(os.path.abspath('@GIR_DIR@'))
-builtins.__dict__['GIRDIR'] = girdir
+builtins.__dict__['GIRDIR'] = [girdir]
# Again, relative paths first so that the installation prefix is relocatable
pylibdir = os.path.abspath(os.path.join(filedir, '..', 'lib', 'gobject-introspection'))
@@ -85,6 +85,7 @@ if not os.path.isfile(os.path.join(pylibdir, 'giscanner', '_giscanner' + py_mod_
# We're running uninstalled inside meson
builddir = os.path.abspath(os.path.join(filedir, '..'))
pylibdir = builddir
+ builtins.__dict__['GIRDIR'].append(os.path.join(filedir, os.pardir, 'gir'))
gdump_path = os.path.join(builddir, 'girepository', 'gdump.c')
if os.path.isfile(gdump_path):
builtins.__dict__['GDUMP_PATH'] = gdump_path
diff --git a/tools/meson.build b/tools/meson.build
index 6cc3186a..1fedaa53 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -56,6 +56,7 @@ gircompiler = executable('g-ir-compiler', 'compiler.c',
install: true,
c_args: custom_c_args,
)
+meson.override_find_program('g-ir-compiler', gircompiler)
girgenerate = executable('g-ir-generate', 'generate.c',
dependencies: [
@@ -65,9 +66,11 @@ girgenerate = executable('g-ir-generate', 'generate.c',
install: true,
c_args: custom_c_args,
)
+meson.override_find_program('g-ir-generate', girgenerate)
girinspect = executable('g-ir-inspect', 'g-ir-inspect.c',
dependencies: girepo_dep,
install: true,
c_args: custom_c_args,
)
+meson.override_find_program('g-ir-inspect', girinspect) \ No newline at end of file