[glibmm/mkolny/meson-build] Add meson files for giomm



commit 8d0137831a978d9a93bcb35e194863157ebac1b9
Author: Marcin Kolny <marcin kolny gmail com>
Date:   Sun Jul 30 16:50:02 2017 +0100

    Add meson files for giomm

 gio/giomm/meson.build   |  188 +++++++++++++++++++++++++++++++++++++++++++++++
 gio/meson.build         |    4 +
 glib/glibmm/meson.build |   20 +----
 meson.build             |   27 +++----
 4 files changed, 210 insertions(+), 29 deletions(-)
---
diff --git a/gio/giomm/meson.build b/gio/giomm/meson.build
new file mode 100644
index 0000000..2a88dfe
--- /dev/null
+++ b/gio/giomm/meson.build
@@ -0,0 +1,188 @@
+giodep = dependency('gio-2.0')
+giounixdep = dependency('gio-unix-2.0')
+
+giomm_modules = [
+  'actiongroup',
+  'dbusproxy',
+  'memoryinputstream',
+  'socketaddress',
+  'action',
+  'dbusserver',
+  'memoryoutputstream',
+  'socketclient',
+  'actionmap',
+  'dbussubtreevtable',
+  'menuattributeiter',
+  'socketconnectable',
+  'appinfo',
+  'dbusutils',
+  'menu',
+  'socketconnection',
+  'applaunchcontext',
+  'dbuswatchname',
+  'menuitem',
+  'socketcontrolmessage',
+  'applicationcommandline',
+  'desktopappinfo',
+  'menulinkiter',
+  'socket',
+  'application',
+  'drive',
+  'menumodel',
+  'socketlistener',
+  'asyncinitable',
+  'emblemedicon',
+  'mount',
+  'socketservice',
+  'asyncresult',
+  'emblem',
+  'mountoperation',
+  'srvtarget',
+  'bufferedinputstream',
+  'enums',
+  'networkaddress',
+  'tcpconnection',
+  'bufferedoutputstream',
+  'error',
+  'networkmonitor',
+  'tcpwrapperconnection',
+  'cancellable',
+  'fileattributeinfo',
+  'networkservice',
+  'themedicon',
+  'charsetconverter',
+  'fileattributeinfolist',
+  'notification',
+  'threadedsocketservice',
+  'converter',
+  'filedescriptorbased',
+  'outputstream',
+  'tlscertificate',
+  'converterinputstream',
+  'fileenumerator',
+  'permission',
+  'tlsclientconnection',
+  'converteroutputstream',
+  'file',
+  'pollableinputstream',
+  'tlsconnection',
+  'credentials',
+  'fileicon',
+  'pollableoutputstream',
+  'tlsdatabase',
+  'datainputstream',
+  'fileinfo',
+  'propertyaction',
+  'tlsfiledatabase',
+  'dataoutputstream',
+  'fileinputstream',
+  'proxyaddress',
+  'tlsinteraction',
+  'dbusactiongroup',
+  'fileiostream',
+  'proxy',
+  'tlspassword',
+  'dbusaddress',
+  'filemonitor',
+  'proxyresolver',
+  'tlsserverconnection',
+  'dbusauthobserver',
+  'filenamecompleter',
+  'remoteactiongroup',
+  'unixconnection',
+  'dbusconnection',
+  'fileoutputstream',
+  'resolver',
+  'unixcredentialsmessage',
+  'dbuserror',
+  'filterinputstream',
+  'resource',
+  'unixfdlist',
+  'dbuserrorutils',
+  'filteroutputstream',
+  'seekable',
+  'unixfdmessage',
+  'dbusinterface',
+  'icon',
+  'settings',
+  'unixinputstream',
+  'dbusinterfaceskeleton',
+  'inetaddress',
+  'settingsschema',
+  'unixmount',
+  'dbusinterfacevtable',
+  'inetsocketaddress',
+  'settingsschemakey',
+  'unixoutputstream',
+  'dbusintrospection',
+  'initable',
+  'settingsschemasource',
+  'unixsocketaddress',
+  'dbusmenumodel',
+  'inputstream',
+  'simpleactiongroup',
+  'volume',
+  'dbusmessage',
+  'iostream',
+  'simpleaction',
+  'volumemonitor',
+  'dbusmethodinvocation',
+  'listmodel',
+  'simpleiostream',
+  'zlibcompressor',
+  'dbusobject',
+  'liststore',
+  'simplepermission',
+  'zlibdecompressor',
+  'dbusownname',
+  'loadableicon',
+  'socketaddressenumerator']
+
+giomm_handwritten_sources = [
+  'contenttype.cc',
+  'init.cc',
+  'slot_async.cc',
+  'socketsource.cc']
+
+
+giomm_targets = []
+
+#TODO ugly hack, has to be implemented in other way in the future
+private_dir = join_paths(meson.build_root(), 'gio', 'giomm', 'private')
+giomm_targets += custom_target('giomm_generate_priv_dir',
+  output : 'private',
+  command : [python, '-c',
+            'import os\nos.mkdir("' + private_dir + '")'])
+
+giomm_targets += custom_target('giomm_generate_wrap_init',
+  output : 'wrap_init.cc',
+  command : [python,
+             wrap_output,
+            perl,
+            join_paths(meson.current_build_dir(), 'wrap_init.cc'),
+             '--',
+             join_paths(meson.build_root(), 'tools', 'generate_wrap_init.pl'),
+             '--namespace=Gio', '--parent_dir=giomm'])
+
+# TODO: foreach below could be replaced with simpler code (see glibmm's meson file)
+foreach giomm_module : giomm_modules
+  giomm_targets += custom_target('giomm_generate_cc_' + giomm_module,
+    output : [giomm_module + '.cc', giomm_module + '.h'],
+    input : join_paths('..', 'src', giomm_module + '.hg'),
+    command : [perl,
+               '-I../tools/pm', '--', join_paths(meson.build_root(), 'tools', 'gmmproc'),
+               '-I', join_paths(meson.source_root(), 'tools', 'm4'),
+               '--defs', join_paths(meson.current_source_dir(), '..', 'src'),
+               giomm_module,
+               join_paths(meson.current_source_dir(), '..', 'src'),
+               join_paths('gio', 'giomm')])
+endforeach
+
+giomm_includes = include_directories('..', 'gio', join_paths('..', '..', 'glib'))
+
+giomm_library = shared_library(
+  'giomm',
+  giomm_targets, giomm_handwritten_sources,
+  include_directories : giomm_includes,
+  dependencies : [glibdep, sigcppdep, gobjectdep, gmoduledep, giounixdep, giodep, glibmm_dep])
+
diff --git a/gio/meson.build b/gio/meson.build
new file mode 100644
index 0000000..1ce98bd
--- /dev/null
+++ b/gio/meson.build
@@ -0,0 +1,4 @@
+configure_file(output : 'giommconfig.h',
+               configuration : conf)
+
+subdir('giomm')
diff --git a/glib/glibmm/meson.build b/glib/glibmm/meson.build
index d6b1ab6..54e2052 100644
--- a/glib/glibmm/meson.build
+++ b/glib/glibmm/meson.build
@@ -1,14 +1,3 @@
-glibdep = dependency('glib-2.0')
-gmoduledep = dependency('gmodule-2.0')
-gobjectdep = dependency('gobject-2.0')
-sigcppdep = dependency('sigc++-3.0')
-
-python = find_program('python')
-perl = find_program('perl')
-m4 = find_program('m4')
-
-wrap_output = join_paths(meson.source_root(), 'tools', 'wrap_output.py')
-
 glibmm_modules = [
   'balancedtree',
   'binding',
@@ -81,12 +70,12 @@ glibmm_targets = []
 
 #TODO ugly hack, has to be implemented in other way in the future
 private_dir = join_paths(meson.build_root(), 'glib', 'glibmm', 'private')
-glibmm_targets += custom_target('generate_priv_dir',
+glibmm_targets += custom_target('glibmm_generate_priv_dir',
   output : 'private',
   command : [python, '-c',
             'import os\nos.mkdir("' + private_dir + '")'])
 
-glibmm_targets += custom_target('generate_wrap_init',
+glibmm_targets += custom_target('glibmm_generate_wrap_init',
   output : 'wrap_init.cc',
   command : [python,
              wrap_output,
@@ -97,9 +86,9 @@ glibmm_targets += custom_target('generate_wrap_init',
              '--namespace=Glib', '--parent_dir=glibmm'])
 
 foreach glibmm_module : glibmm_modules
-  glibmm_targets += custom_target('generate_cc_' + glibmm_module,
+  glibmm_targets += custom_target('glibmm_generate_cc_' + glibmm_module,
     output : [glibmm_module + '.cc', glibmm_module + '.h'],
-    input : '../src/' + glibmm_module + '.hg',
+    input : join_paths('..', 'src', glibmm_module + '.hg'),
     command : [perl,
                '-I../tools/pm', '--', join_paths(meson.build_root(), 'tools', 'gmmproc'),
                '-I', join_paths(meson.source_root(), 'tools', 'm4'),
@@ -140,3 +129,4 @@ glibmm_library = shared_library(
   include_directories : glibmm_includes,
   dependencies : [glibdep, sigcppdep, gobjectdep, gmoduledep])
 
+glibmm_dep = declare_dependency(link_with : glibmm_library)
\ No newline at end of file
diff --git a/meson.build b/meson.build
index 57dd37c..51bcf43 100644
--- a/meson.build
+++ b/meson.build
@@ -9,16 +9,18 @@ project('glibmm', 'cpp',
   ],
 )
 
+glibdep = dependency('glib-2.0')
+gmoduledep = dependency('gmodule-2.0')
+gobjectdep = dependency('gobject-2.0')
+sigcppdep = dependency('sigc++-3.0')
+
+python = find_program('python')
+perl = find_program('perl')
+m4 = find_program('m4')
+
+wrap_output = join_paths(meson.source_root(), 'tools', 'wrap_output.py')
+
 conf = configuration_data()
-conf.set_quoted('PACKAGE_NAME', 'glibmm')
-conf.set('PACKAGE_VERSION', meson.project_version())
-conf.set_quoted('PACKAGE_DOCDIR', join_paths(get_option('prefix'), get_option('datadir'), 'doc/glibmm'))
-conf.set_quoted('PACKAGE_LIBDIR', join_paths(get_option('prefix'), get_option('libdir')))
-conf.set_quoted('PACKAGE_LOCALE_DIR', join_paths(get_option('prefix'), get_option('datadir'), 'locale'))
-conf.set_quoted('PACKAGE_LIBEXECDIR', join_paths(get_option('prefix'), get_option('libexecdir')))
-conf.set_quoted('PACKAGE_URL', 'https://bugzilla.gnome.org/enter_bug.cgi?product=glibmm')
-conf.set('GETTEXT_PACKAGE', 'PACKAGE_NAME')
-conf.set('LOCALEDIR', 'PACKAGE_LOCALE_DIR')
 
 conf.set('GLIBMM_API', '')
 conf.set('M4', 'm4')
@@ -28,11 +30,8 @@ configure_file(output : 'config.h',
 
 config_inc_dir = include_directories('.')
 
-global_cxx_args = [
-  '-Wno-unused-parameter'
-]
-
-add_project_arguments(global_cxx_args, language: 'cpp')
+add_project_arguments(language: 'cpp')
 
 subdir('tools')
 subdir('glib')
+subdir('gio')
\ No newline at end of file


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