[gobject-introspection/wip/ebassi/meson: 1/4] meson: Gather and build all paths upfront



commit 2dcf8644e908a514be4545a8fd6885f1a0d89546
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Wed Nov 22 16:21:47 2017 +0000

    meson: Gather and build all paths upfront
    
    Use get_option() once, and build all paths used elsewhere in one place.

 gir/meson.build       |    2 +-
 giscanner/meson.build |    2 +-
 meson.build           |   36 +++++++++++++++++-------------------
 tools/meson.build     |    6 ++----
 4 files changed, 21 insertions(+), 25 deletions(-)
---
diff --git a/gir/meson.build b/gir/meson.build
index 5229207..75ae527 100644
--- a/gir/meson.build
+++ b/gir/meson.build
@@ -51,7 +51,7 @@ scanner_command = [
 
 # GLib
 glib_includedir = join_paths(gobject_dep.get_pkgconfig_variable('includedir'), 'glib-2.0')
-glib_libincludedir = join_paths(gobject_dep.get_pkgconfig_variable('libdir'), 'glib-2.0/include')
+glib_libincludedir = join_paths(gobject_dep.get_pkgconfig_variable('libdir'), 'glib-2.0', 'include')
 glib_srcdir = get_option('glib-src-dir')
 
 glib_glob = glib_includedir + '/glib/*.h'
diff --git a/giscanner/meson.build b/giscanner/meson.build
index 963fad5..73e3901 100644
--- a/giscanner/meson.build
+++ b/giscanner/meson.build
@@ -1,4 +1,4 @@
-pkglibdir = join_paths(get_option('libdir'), meson.project_name())
+pkglibdir = join_paths(gi_libdir, meson.project_name())
 giscannerdir = join_paths(pkglibdir, 'giscanner')
 install_data([
   '__init__.py',
diff --git a/meson.build b/meson.build
index ba888e3..b527439 100644
--- a/meson.build
+++ b/meson.build
@@ -9,11 +9,17 @@ project('gobject-introspection', 'c',
 
 py3 = import('python3')
 
+gi_prefix = get_option('prefix')
+gi_bindir = join_paths(gi_prefix, get_option('bindir'))
+gi_libdir = join_paths(gi_prefix, get_option('libdir'))
+gi_datadir = join_paths(gi_prefix, get_option('datadir'))
+gi_includedir = join_paths(gi_prefix, get_option('includedir'))
+
 cc = meson.get_compiler('c')
 config = configuration_data()
 config.set_quoted('GIR_SUFFIX', 'gir-1.0')
-config.set_quoted('GIR_DIR', join_paths(get_option('prefix'), get_option('datadir'), 'gir-1.0'))
-config.set_quoted('GOBJECT_INTROSPECTION_LIBDIR', join_paths(get_option('prefix'), get_option('libdir')))
+config.set_quoted('GIR_DIR', join_paths(gi_datadir, 'gir-1.0'))
+config.set_quoted('GOBJECT_INTROSPECTION_LIBDIR', gi_libdir)
 
 foreach type : ['char', 'short', 'int', 'long']
   size = cc.sizeof(type)
@@ -62,39 +68,31 @@ if gir_build
 endif
 subdir('examples')
 subdir('docs')
+
 ### Missing meson.build file
 ### subdir('tests')
 
-install_data('Makefile.introspection', install_dir: join_paths(get_option('datadir'), 
'gobject-introspection-1.0'))
-install_data('m4/introspection.m4', install_dir: join_paths(get_option('datadir'), 'aclocal'))
+install_data('Makefile.introspection', install_dir: join_paths(gi_datadir, 'gobject-introspection-1.0'))
+install_data('m4/introspection.m4', install_dir: join_paths(gi_datadir, 'aclocal'))
 
-prefix = get_option('prefix')
 pkgconfig_conf = configuration_data()
 pkgconfig_conf.set('prefix', prefix)
 pkgconfig_conf.set('exec_prefix', '${prefix}')
-pkgconfig_conf.set('bindir', join_paths(prefix, get_option('bindir')))
-pkgconfig_conf.set('libdir', join_paths(prefix, get_option('libdir')))
-pkgconfig_conf.set('datarootdir', join_paths(prefix, get_option('datadir')))
+pkgconfig_conf.set('bindir', gi_bindir)
+pkgconfig_conf.set('libdir', gi_libdir)
+pkgconfig_conf.set('datarootdir', gi_datadir)
 pkgconfig_conf.set('datadir', '${datarootdir}')
-pkgconfig_conf.set('includedir', join_paths(prefix, get_option('includedir')))
+pkgconfig_conf.set('includedir', gi_includedir)
 pkgconfig_conf.set('EXEEXT', '') # TODO?
 pkgconfig_conf.set('VERSION', meson.project_version())
 pkgconfig_conf.set('FFI_PC_CFLAGS', libffi_dep.get_pkgconfig_variable('Cflags'))
-pkgconfig_conf.set('FFI_PC_PACKAGES', 'libffi')
 pkgconfig_conf.set('FFI_PC_LIBS', libffi_dep.get_pkgconfig_variable('Libs'))
-
-configure_file(
-  input: 'gobject-introspection-no-export-1.0.pc.in',
-  output: 'gobject-introspection-no-export-1.0.pc',
-  configuration: pkgconfig_conf,
-  install: true,
-  install_dir: join_paths(get_option('libdir'), 'pkgconfig'),
-)
+pkgconfig_conf.set('FFI_PC_PACKAGES', 'libffi')
 
 configure_file(
   input: 'gobject-introspection-1.0.pc.in',
   output: 'gobject-introspection-1.0.pc',
   configuration: pkgconfig_conf,
   install: true,
-  install_dir: join_paths(get_option('libdir'), 'pkgconfig'),
+  install_dir: join_paths(gi_libdir, 'pkgconfig'),
 )
diff --git a/tools/meson.build b/tools/meson.build
index 73817ec..a82a203 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -1,5 +1,3 @@
-libdir_abs = join_paths(get_option('prefix'), get_option('libdir'))
-datadir_abs = join_paths(get_option('prefix'), get_option('datadir'))
 python_path = py3.find_python().path()
 
 tools = [
@@ -13,8 +11,8 @@ endif
 tool_output = []
 foreach tool : tools
   tools_conf = configuration_data()
-  tools_conf.set('libdir', libdir_abs)
-  tools_conf.set('datarootdir', datadir_abs)
+  tools_conf.set('libdir', gi_libdir)
+  tools_conf.set('datarootdir', gi_datadir)
   tools_conf.set('PYTHON', python_path)
 
   tools_conf.set('TOOL_MODULE', tool[1])


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