[glibmm/mkolny/meson-build] Add meson files for giomm
- From: Marcin Kolny <mkolny src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glibmm/mkolny/meson-build] Add meson files for giomm
- Date: Sun, 30 Jul 2017 16:17:54 +0000 (UTC)
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]