[vala/wip/meson: 6/7] WIP



commit c104fa19dba1d6b4ae87fcb09c318d0b0fcc7b20
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Wed Aug 9 15:18:46 2017 +0200

    WIP

 ccode/meson.build                       |    7 +-
 codegen/meson.build                     |    4 +-
 compiler/meson.build                    |    7 +-
 config.h.meson                          |    3 +
 doc/meson.build                         |    8 ++-
 gee/meson.build                         |   16 ++-
 gobject-introspection/meson.build       |    6 +-
 libvaladoc/meson.build                  |  170 +++++++++++++++++++++++++++++++
 libvaladoc/valadoc.deps.in              |    2 +-
 meson.build                             |   69 ++++++++++---
 vala/meson.build                        |   17 ++--
 valadoc/doclets/devhelp/meson.build     |   12 ++
 valadoc/doclets/gtkdoc/meson.build      |   17 +++
 valadoc/doclets/html/meson.build        |   12 ++
 valadoc/doclets/meson.build             |    4 +
 valadoc/icons/meson.build               |   35 +++++++
 valadoc/meson.build                     |   23 ++++
 vapigen/meson.build                     |   22 ++--
 vapigen/vala-gen-introspect/meson.build |    3 +
 19 files changed, 387 insertions(+), 50 deletions(-)
---
diff --git a/ccode/meson.build b/ccode/meson.build
index 3b4e547..cf753f7 100644
--- a/ccode/meson.build
+++ b/ccode/meson.build
@@ -57,12 +57,11 @@ valaccode_sources = [
 valaccode_lib = static_library(
        'valaccode',
        valaccode_sources,
-       dependencies: [glib, gobject, valagee, valacore],
+       dependencies: [gobject_dep, valagee_dep],
        install: false,
-       include_directories: include_directories('.', '..'),
-       vala_args: ['--use-header', '--pkg=config', '--vapidir=' + join_paths(meson.source_root(), 'vapi')],
+       vala_args: ['--use-header'],
        vala_header: 'valaccode.h',
        vala_vapi: 'valaccode.vapi',
 )
 
-valaccode = declare_dependency(link_with: [valaccode_lib], include_directories: include_directories('.'))
+valaccode_dep = declare_dependency(link_with: [valaccode_lib], dependencies: [valagee_dep], 
include_directories: include_directories('.'))
diff --git a/codegen/meson.build b/codegen/meson.build
index 48385db..433f3ce 100644
--- a/codegen/meson.build
+++ b/codegen/meson.build
@@ -32,11 +32,11 @@ valacodegen_sources = [
 valacodegen_lib = static_library(
        'valacodegen',
        valacodegen_sources,
-       dependencies: [glib, gobject, valagee, valaccode, valacore],
+       dependencies: [gobject_dep, valacore_dep, valaccode_dep],
        install: false,
        vala_args: ['--use-header'],
        vala_header: 'valacodegen.h',
        vala_vapi: 'valacodegen.vapi',
 )
 
-valacodegen = declare_dependency(link_with: [valacodegen_lib], include_directories: include_directories('.'))
+valacodegen_dep = declare_dependency(link_with: [valacodegen_lib], dependencies : [valacore_dep, 
valaccode_dep], include_directories: include_directories('.'))
diff --git a/compiler/meson.build b/compiler/meson.build
index 84f51b0..ac7ab28 100644
--- a/compiler/meson.build
+++ b/compiler/meson.build
@@ -7,8 +7,9 @@ valac_name = 'valac@0@'.format(vala_version_suffix)
 executable(
        valac_name,
        valac_sources,
-       dependencies: [glib, gobject, valacore, valagee, valaccode, valacodegen],
+       dependencies: [glib_dep, valacodegen_dep],
        install: true,
-       include_directories: include_directories('.', '..'),
-       vala_args: ['--pkg=config', '--vapidir=' + join_paths(meson.source_root(), 'vapi')]
 )
+
+# https://github.com/mesonbuild/meson/issues/1602
+meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@; ln -fs @1@ 
valac'.format(join_paths(get_option('prefix'), get_option('bindir')), valac_name))
diff --git a/config.h.meson b/config.h.meson
index f98435e..2c8f864 100644
--- a/config.h.meson
+++ b/config.h.meson
@@ -26,3 +26,6 @@
 
 /* Version number of package */
 #mesondefine VERSION
+
+/* API-Version of package */
+#mesondefine API_VERSION
diff --git a/doc/meson.build b/doc/meson.build
index 14e9e6a..9d68b25 100644
--- a/doc/meson.build
+++ b/doc/meson.build
@@ -1 +1,7 @@
-install_man(['vala-gen-introspect.1', 'valac.1', 'vapigen.1'])
+install_man(['vala-gen-introspect.1', 'valac.1', 'valadoc.1', 'vapigen.1'])
+
+# https://github.com/mesonbuild/meson/issues/1602
+meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@/man1; ln -fs vala-gen-introspect.1.gz 
@1@'.format(join_paths(get_option('prefix'), get_option('mandir')), 'vala-gen-introspect@0  1 
gz'.format(vala_version_suffix)))
+meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@/man1; ln -fs valac.1.gz 
@1@'.format(join_paths(get_option('prefix'), get_option('mandir')), 'valac@0  1 
gz'.format(vala_version_suffix)))
+meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@/man1; ln -fs valadoc.1.gz 
@1@'.format(join_paths(get_option('prefix'), get_option('mandir')), 'valadoc@0  1 
gz'.format(vala_version_suffix)))
+meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@/man1; ln -fs vapigen.1.gz 
@1@'.format(join_paths(get_option('prefix'), get_option('mandir')), 'vapigen@0  1 
gz'.format(vala_version_suffix)))
diff --git a/gee/meson.build b/gee/meson.build
index 5379a5b..7fb7ba8 100644
--- a/gee/meson.build
+++ b/gee/meson.build
@@ -8,19 +8,23 @@ valagee_sources = [
        'list.vala',
        'mapiterator.vala',
        'map.vala',
-       'set.vala'
+       'set.vala',
+       'timsort.vala'
 ]
 
 valagee_lib = static_library(
        'valagee',
        valagee_sources,
-       dependencies: [glib, gobject],
-       install: false,
+       dependencies: [gobject_dep],
+       install: [ false, true, false ],
+       install_dir: [
+               false,
+               join_paths (get_option('includedir'), 'vala@0@'.format (vala_version_suffix)),
+               false
+       ],
        vala_args: ['--use-header'],
        vala_header: 'valagee.h',
        vala_vapi: 'valagee.vapi',
 )
 
-valagee = declare_dependency(link_with: [valagee_lib], include_directories: include_directories('.'))
-
-install_headers('valagee.h', subdir: 'vala@0@'.format(vala_version_suffix))
+valagee_dep = declare_dependency(link_with: [valagee_lib], include_directories: include_directories('.', 
'..'))
diff --git a/gobject-introspection/meson.build b/gobject-introspection/meson.build
index b25becb..8c3ffc0 100644
--- a/gobject-introspection/meson.build
+++ b/gobject-introspection/meson.build
@@ -7,9 +7,9 @@ gidl_sources = [
 
 gidl_lib = static_library('gidl',
        gidl_sources,
-       dependencies: [glib, gobject, gmodule])
+       dependencies: [gobject_dep, gmodule_dep])
 
-gidl = declare_dependency(link_with: gidl_lib, include_directories: include_directories('.'))
+gidl_dep = declare_dependency(link_with: [gidl_lib], include_directories: include_directories('.'))
 
 
 flex = find_program('flex')
@@ -39,4 +39,4 @@ executable(gen_introspect_name,
        gen_introspect_sources,
        install: true,
        install_dir: join_paths(get_option('libdir'), 'vala@0@'.format(vala_version_suffix)),
-       dependencies: [glib, gobject, gmodule, gidl])
+       dependencies: [gobject_dep, gmodule_dep, gidl_dep])
diff --git a/libvaladoc/meson.build b/libvaladoc/meson.build
new file mode 100644
index 0000000..5364727
--- /dev/null
+++ b/libvaladoc/meson.build
@@ -0,0 +1,170 @@
+libvaladoc_sources = [
+       'doclet.vala',
+       'errorreporter.vala',
+       'filehelper.vala',
+       'moduleloader.vala',
+       'settings.vala',
+       'markupwriter.vala',
+       'gtkdocmarkupwriter.vala',
+       'devhelp-markupwriter.vala',
+       'ctyperesolver.vala',
+       'markupsourcelocation.vala',
+       'markuptokentype.vala',
+       'markupreader.vala',
+       'gtkdocrenderer.vala',
+       'documentation/commentscanner.vala',
+       'documentation/documentation.vala',
+       'documentation/documentationparser.vala',
+       'documentation/wiki.vala',
+       'documentation/wikiscanner.vala',
+       'documentation/gtkdoccommentparser.vala',
+       'documentation/gtkdoccommentscanner.vala',
+       'documentation/gtkdocmarkdownparser.vala',
+       'documentation/gtkdocmarkdownscanner.vala',
+       'documentation/importerhelper.vala',
+       'documentation/girmetadata.vala',
+       'importer/documentationimporter.vala',
+       'importer/valadocdocumentationimporter.vala',
+       'importer/valadocdocumentationimporterscanner.vala',
+       'importer/girdocumentationimporter.vala',
+       'importer/internalidregistrar.vala',
+       'api/symbolaccessibility.vala',
+       'api/sourcecomment.vala',
+       'api/girsourcecomment.vala',
+       'api/attributeargument.vala',
+       'api/attribute.vala',
+       'api/array.vala',
+       'api/callable.vala',
+       'api/childsymbolregistrar.vala',
+       'api/class.vala',
+       'api/constant.vala',
+       'api/delegate.vala',
+       'api/enum.vala',
+       'api/enumvalue.vala',
+       'api/errorcode.vala',
+       'api/errordomain.vala',
+       'api/field.vala',
+       'api/formalparameter.vala',
+       'api/formalparametertype.vala',
+       'api/interface.vala',
+       'api/item.vala',
+       'api/member.vala',
+       'api/method.vala',
+       'api/methodbindingtype.vala',
+       'api/namespace.vala',
+       'api/node.vala',
+       'api/nodetype.vala',
+       'api/ownership.vala',
+       'api/package.vala',
+       'api/pointer.vala',
+       'api/property.vala',
+       'api/propertyaccessor.vala',
+       'api/propertyaccessortype.vala',
+       'api/propertybindingtype.vala',
+       'api/signal.vala',
+       'api/signaturebuilder.vala',
+       'api/sourcefile.vala',
+       'api/struct.vala',
+       'api/symbol.vala',
+       'api/tree.vala',
+       'api/typeparameter.vala',
+       'api/typereference.vala',
+       'api/typesymbol.vala',
+       'api/browsable.vala',
+       'api/visitor.vala',
+       'api/driver.vala',
+       'content/block.vala',
+       'content/blockcontent.vala',
+       'content/comment.vala',
+       'content/contentfactory.vala',
+       'content/contentelement.vala',
+       'content/contentrenderer.vala',
+       'content/contentvisitor.vala',
+       'content/embedded.vala',
+       'content/headline.vala',
+       'content/inline.vala',
+       'content/inlinetaglet.vala',
+       'content/inlinecontent.vala',
+       'content/wikilink.vala',
+       'content/link.vala',
+       'content/list.vala',
+       'content/listitem.vala',
+       'content/page.vala',
+       'content/paragraph.vala',
+       'content/warning.vala',
+       'content/note.vala',
+       'content/resourcelocator.vala',
+       'content/run.vala',
+       'content/sourcecode.vala',
+       'content/styleattributes.vala',
+       'content/symbollink.vala',
+       'content/table.vala',
+       'content/tablecell.vala',
+       'content/tablerow.vala',
+       'content/taglet.vala',
+       'content/text.vala',
+       'charts/chart.vala',
+       'charts/chartfactory.vala',
+       'charts/hierarchychart.vala',
+       'charts/simplechartfactory.vala',
+       'parser/manyrule.vala',
+       'parser/oneofrule.vala',
+       'parser/optionalrule.vala',
+       'parser/parser.vala',
+       'parser/parsercallback.vala',
+       'parser/rule.vala',
+       'parser/scanner.vala',
+       'parser/sequencerule.vala',
+       'parser/sourcelocation.vala',
+       'parser/stubrule.vala',
+       'parser/token.vala',
+       'parser/tokentype.vala',
+       'taglets/tagletdeprecated.vala',
+       'taglets/tagletinheritdoc.vala',
+       'taglets/tagletinit.vala',
+       'taglets/tagletlink.vala',
+       'taglets/tagletparam.vala',
+       'taglets/tagletreturn.vala',
+       'taglets/tagletsee.vala',
+       'taglets/tagletsince.vala',
+       'taglets/tagletthrows.vala',
+       'highlighter/scanner.vala',
+       'highlighter/codescanner.vala',
+       'highlighter/xmlscanner.vala',
+       'highlighter/codetoken.vala',
+       'highlighter/highlighter.vala',
+       'html/basicdoclet.vala',
+       'html/htmlchartfactory.vala',
+       'html/linkhelper.vala',
+       'html/cssclassresolver.vala',
+       'html/htmlmarkupwriter.vala',
+       'html/htmlrenderer.vala'
+]
+
+libvaladoc_lib = shared_library(
+       'valadoc@0@'.format(vala_version_suffix),
+       libvaladoc_sources,
+       dependencies: [gmodule_dep, valagee_dep, libgvc_dep],
+       soversion: '0.0.0',
+       install: true,
+       install_dir: [
+               true,
+               join_paths (get_option('includedir'), 'valadoc@0@'.format (vala_version_suffix)),
+               true
+       ],
+       c_args: ['-DPACKAGE_ICONDIR="@0@"'.format(join_paths(get_option('datadir'), 'valadoc', 'icons'))],
+       vala_args: ['--use-header'],
+       vala_header: 'valadoc.h',
+       vala_vapi: 'valadoc@0@.vapi'.format(vala_version_suffix),
+)
+
+libvaladoc_dep = declare_dependency(link_with: [libvaladoc_lib], dependencies: [gmodule_dep, valagee_dep, 
libgvc_dep], include_directories: include_directories('.'))
+
+configure_file(input: 'valadoc.deps.in', output: 'valadoc@0@.deps'.format(vala_version_suffix), 
configuration: conf)
+
+configure_file(
+       input: 'valadoc.pc.in',
+       output: 'valadoc@0@.pc'.format(vala_version_suffix),
+       configuration: pkgconf,
+       install_dir: pkg_install_dir
+)
diff --git a/libvaladoc/valadoc.deps.in b/libvaladoc/valadoc.deps.in
index 024e034..a478ae8 100644
--- a/libvaladoc/valadoc.deps.in
+++ b/libvaladoc/valadoc.deps.in
@@ -1,3 +1,3 @@
 gmodule-2.0
 libgvc
-libvala@PACKAGE_SUFFIX@
+libvala@PACKAGE_SUFFIX_UNQUOTED@
diff --git a/meson.build b/meson.build
index e3fb542..6c6d845 100644
--- a/meson.build
+++ b/meson.build
@@ -1,7 +1,19 @@
-project('Vala', 'c', 'vala', version: '0.37.0', meson_version: '0.40.1')
+project('Vala',
+       'c', 'vala',
+       version: '0.37.2',
+       meson_version: '>= 0.41.2',
+       license: 'LGPL2.1'
+)
+
+vala_version_required = '0.16.1'
+vala = meson.get_compiler('vala')
+if not vala.version().version_compare('>= @0@'.format(vala_version_required))
+       error('Valac >= @0@ required!'.format(vala_version_required))
+endif
 
 vala_version = meson.project_version()
-vala_version_suffix = '-0.38'
+vala_api_version = '0.38'
+vala_version_suffix = '-@0@'.format(vala_api_version)
 
 
 conf = configuration_data()
@@ -11,10 +23,12 @@ conf.set_quoted('PACKAGE_DATADIR', join_paths(get_option('prefix'), get_option('
 conf.set('PACKAGE_NAME', '"vala"')
 conf.set('PACKAGE_STRING', '"vala @0@"'.format(vala_version))
 conf.set('PACKAGE_SUFFIX', '"@0@"'.format(vala_version_suffix))
+conf.set('PACKAGE_SUFFIX_UNQUOTED', '@0@'.format(vala_version_suffix))
 conf.set('PACKAGE_TARNAME', '"vala"')
 conf.set('PACKAGE_URL', '"https://wiki.gnome.org/Projects/Vala";')
 conf.set_quoted('PACKAGE_VERSION', vala_version)
 conf.set_quoted('VERSION', vala_version)
+conf.set_quoted('API_VERSION', vala_api_version)
 conf.set_quoted('BUILD_VERSION', vala_version)
 configure_file(input: 'config.h.meson', output: 'config.h', configuration: conf)
 configure_file(input: 'version.h.meson', output: 'version.h', configuration: conf)
@@ -39,21 +53,49 @@ configure_file(
        install_dir: pkg_install_dir
 )
 
+add_project_arguments([
+               '--disable-version-header',
+               '--hide-internal',
+               '--vapidir', join_paths(meson.source_root(), 'vapi'),
+               '--pkg', 'config',
+       ],
+       language: 'vala'
+)
 
-add_global_arguments(['-Wno-deprecated-declarations',
-       '-Wno-discarded-qualifiers',
-       '-Wno-incompatible-pointer-types',
-       '-Wno-unused'], language: 'c')
-add_global_arguments(['--disable-version-header',
-       '--hide-internal'], language: 'vala')
-
+add_project_arguments([
+               '-Wno-discarded-qualifiers',
+               '-Wno-incompatible-pointer-types',
+               '-Wno-unused',
+               '-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40',
+               '-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_40',
+       ],
+       language: 'c',
+)
 
 glib_version_required = '2.40.0'
+libgvc_version_required = '2.16'
 
-glib = dependency('glib-2.0', version: '>= @0@'.format(glib_version_required))
-gobject = dependency('gobject-2.0', version: '>= @0@'.format(glib_version_required))
-gmodule = dependency('gmodule-2.0', version: '>= @0@'.format(glib_version_required))
+glib_dep = dependency('glib-2.0', version: '>= @0@'.format(glib_version_required))
+gobject_dep = dependency('gobject-2.0', version: '>= @0@'.format(glib_version_required))
+gmodule_dep = dependency('gmodule-2.0', version: '>= @0@'.format(glib_version_required))
+libgvc_dep = dependency('libgvc', version: '>= @0@'.format(libgvc_version_required))
 
+# Check for CGraph support of libgvc
+cc = meson.get_compiler('c')
+if cc.run('#include <gvc.h>
+               int main(void) {
+               #ifdef WITH_CGRAPH
+                       return 0;
+               #else
+                       return -1;
+               #endif
+               }',
+               dependencies: libgvc_dep).returncode() == 0
+       add_project_arguments(
+               '-D', 'WITH_CGRAPH',
+               language: 'vala'
+       )
+endif
 
 subdir('gobject-introspection')
 subdir('gee')
@@ -62,7 +104,8 @@ subdir('ccode')
 subdir('codegen')
 subdir('compiler')
 subdir('vapigen')
+subdir('libvaladoc')
+subdir('valadoc')
 subdir('doc')
 
 install_data('vala.m4', install_dir: 'share/aclocal')
-#add_install_script('unversioned-install.sh')
diff --git a/vala/meson.build b/vala/meson.build
index 82d639a..f801c24 100644
--- a/vala/meson.build
+++ b/vala/meson.build
@@ -153,16 +153,19 @@ valacore_sources = [
 valacore_lib = shared_library(
        'vala@0@'.format(vala_version_suffix),
        valacore_sources,
-       dependencies: [glib, gobject, gmodule, valagee],
+       dependencies: [gobject_dep, gmodule_dep, valagee_dep],
        soversion: '0.0.0',
        install: true,
-       include_directories: include_directories('.', '..'),
-       vala_args: ['--use-header', '--pkg=config', '--vapidir=' + join_paths(meson.source_root(), 'vapi')],
+       vala_args: ['--use-header'],
        vala_header: 'vala.h',
-       #vala_vapi: 'vala.vapi',
+       vala_vapi: 'vala@0@.vapi'.format (vala_version_suffix),
+       install_dir: [
+               true,
+               join_paths (get_option('includedir'), 'vala@0@'.format (vala_version_suffix)),
+               true
+       ],
 )
 
-valacore = declare_dependency(link_with: [valacore_lib],
-       include_directories: include_directories('.', '..'))
+# TODO Prepend valagee.vapi to vala-*.vapi
 
-install_headers('vala.h', subdir: 'vala@0@'.format(vala_version_suffix))
+valacore_dep = declare_dependency(link_with: [valacore_lib], dependencies: [valagee_dep], 
include_directories: include_directories('.', '..'))
diff --git a/valadoc/doclets/devhelp/meson.build b/valadoc/doclets/devhelp/meson.build
new file mode 100644
index 0000000..f21e196
--- /dev/null
+++ b/valadoc/doclets/devhelp/meson.build
@@ -0,0 +1,12 @@
+doclet_devhelp_sources = [
+       'doclet.vala'
+]
+
+shared_module(
+       'doclet',
+       doclet_devhelp_sources,
+       dependencies: [gobject_dep, libvaladoc_dep],
+       install: true,
+       install_dir: join_paths(get_option('libdir'), 'valadoc', 'doclets', 'devhelp'),
+       c_args: ['-DPACKAGE_ICONDIR="@0@"'.format(join_paths(get_option('datadir'), 'valadoc', 'icons'))],
+)
diff --git a/valadoc/doclets/gtkdoc/meson.build b/valadoc/doclets/gtkdoc/meson.build
new file mode 100644
index 0000000..ac46b6a
--- /dev/null
+++ b/valadoc/doclets/gtkdoc/meson.build
@@ -0,0 +1,17 @@
+doclet_gtkdoc_sources = [
+       'commentconverter.vala',
+       'dbus.vala',
+       'doclet.vala',
+       'gcomment.vala',
+       'generator.vala',
+       'utils.vala'
+]
+
+shared_module(
+       'doclet',
+       doclet_gtkdoc_sources,
+       dependencies: [gobject_dep, libvaladoc_dep],
+       install: true,
+       install_dir: join_paths (get_option('libdir'), 'valadoc', 'doclets', 'gtkdoc'),
+       c_args: ['-DPACKAGE_ICONDIR="@0@"'.format(join_paths(get_option('datadir'), 'valadoc', 'icons'))],
+)
diff --git a/valadoc/doclets/html/meson.build b/valadoc/doclets/html/meson.build
new file mode 100644
index 0000000..09235f3
--- /dev/null
+++ b/valadoc/doclets/html/meson.build
@@ -0,0 +1,12 @@
+doclet_html_sources = [
+       'doclet.vala'
+]
+
+shared_module(
+       'doclet',
+       doclet_html_sources,
+       dependencies: [gobject_dep, libvaladoc_dep],
+       install: true,
+       install_dir: join_paths (get_option('libdir'), 'valadoc', 'doclets', 'html'),
+       c_args: ['-DPACKAGE_ICONDIR="@0@"'.format(join_paths(get_option('datadir'), 'valadoc', 'icons'))],
+)
diff --git a/valadoc/doclets/meson.build b/valadoc/doclets/meson.build
new file mode 100644
index 0000000..b517bf4
--- /dev/null
+++ b/valadoc/doclets/meson.build
@@ -0,0 +1,4 @@
+# FIXME clashing shared_module targetnames
+#subdir('devhelp')
+#subdir('gtkdoc')
+subdir('html')
diff --git a/valadoc/icons/meson.build b/valadoc/icons/meson.build
new file mode 100644
index 0000000..194f957
--- /dev/null
+++ b/valadoc/icons/meson.build
@@ -0,0 +1,35 @@
+install_data([
+               'abstractclass.png',
+               'abstractmethod.png',
+               'abstractproperty.png',
+               'class.png',
+               'coll_close.png',
+               'coll_open.png',
+               'constant.png',
+               'constructor.png',
+               'delegate.png',
+               'devhelpstyle.css',
+               'enum.png',
+               'enumvalue.png',
+               'errorcode.png',
+               'errordomain.png',
+               'field.png',
+               'interface.png',
+               'method.png',
+               'namespace.png',
+               'package.png',
+               'packages.png',
+               'property.png',
+               'scripts.js',
+               'signal.png',
+               'staticmethod.png',
+               'struct.png',
+               'style.css',
+               'tip.png',
+               'virtualmethod.png',
+               'virtualproperty.png',
+               'warning.png',
+               'wikistyle.css',
+       ],
+       install_dir: join_paths('share', 'valadoc', 'icons'),
+)
diff --git a/valadoc/meson.build b/valadoc/meson.build
new file mode 100644
index 0000000..a502669
--- /dev/null
+++ b/valadoc/meson.build
@@ -0,0 +1,23 @@
+valadoc_sources = [
+       'driver.vala',
+       'girwriter.vala',
+       'initializerbuilder.vala',
+       'symbolresolver.vala',
+       'treebuilder.vala',
+       'valadoc.vala'
+]
+
+valadoc_name = 'valadoc@0@'.format(vala_version_suffix)
+
+executable(
+       valadoc_name,
+       valadoc_sources,
+       dependencies: [gobject_dep, valacodegen_dep, libvaladoc_dep],
+       install: true,
+)
+
+# https://github.com/mesonbuild/meson/issues/1602
+meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@; ln -fs @1@ 
valadoc'.format(join_paths(get_option('prefix'), get_option('bindir')), valadoc_name))
+
+subdir('doclets')
+subdir('icons')
diff --git a/vapigen/meson.build b/vapigen/meson.build
index 66b8365..c1a9602 100644
--- a/vapigen/meson.build
+++ b/vapigen/meson.build
@@ -8,15 +8,14 @@ vapigen_name = 'vapigen@0@'.format(vala_version_suffix)
 executable(
        vapigen_name,
        vapigen_sources,
-       dependencies: [glib, gobject, valagee, valacore, gidl],
+       dependencies: [glib_dep, valagee_dep, valacore_dep, gidl_dep],
        install: true,
-       include_directories: include_directories('..'),
-       vala_args: [
-               '--pkg=config', '--vapidir=' + join_paths(meson.source_root(), 'vapi'),
-               '--pkg=gidl', '--vapidir=' + join_paths(meson.source_root(), 'gobject-introspection')
-       ]
+       vala_args: ['--pkg', 'gidl', '--vapidir', join_paths(meson.source_root(), 'gobject-introspection')],
 )
 
+# https://github.com/mesonbuild/meson/issues/1602
+meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@; ln -fs @1@ 
vapigen'.format(join_paths(get_option('prefix'), get_option('bindir')), vapigen_name))
+
 vapicheck_sources = [
        'valavapicheck.vala'
 ]
@@ -26,11 +25,14 @@ vapicheck_name = 'vapicheck@0@'.format(vala_version_suffix)
 executable(
        vapicheck_name,
        vapicheck_sources,
-       dependencies: [glib, gobject, valagee, valacore, gidl],
+       dependencies: [glib_dep, valagee_dep, valacore_dep, gidl_dep],
        install: true,
-       vala_args: ['--pkg=gidl', '--vapidir=' + join_paths(meson.source_root(), 'gobject-introspection')]
+       vala_args: ['--pkg', 'gidl', '--vapidir', join_paths(meson.source_root(), 'gobject-introspection')],
 )
 
+# https://github.com/mesonbuild/meson/issues/1602
+meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@; ln -fs @1@ 
vapicheck'.format(join_paths(get_option('prefix'), get_option('bindir')), vapicheck_name))
+
 configure_file(
        input: 'vapigen.pc.in',
        output: 'vapigen@0@.pc'.format(vala_version_suffix),
@@ -38,7 +40,7 @@ configure_file(
        install_dir: pkg_install_dir
 )
 
-install_data('vapigen.m4', install_dir: 'share/aclocal')
-install_data('Makefile.vapigen', install_dir: 'share/vala')
+install_data('vapigen.m4', install_dir: join_paths('share', 'aclocal'))
+install_data('Makefile.vapigen', install_dir: join_paths('share', 'vala'))
 
 subdir('vala-gen-introspect')
diff --git a/vapigen/vala-gen-introspect/meson.build b/vapigen/vala-gen-introspect/meson.build
index 6cb1582..045de47 100644
--- a/vapigen/vala-gen-introspect/meson.build
+++ b/vapigen/vala-gen-introspect/meson.build
@@ -4,3 +4,6 @@ configure_file(
        configuration: pkgconf,
        install_dir: join_paths(get_option('prefix'), get_option('bindir'))
 )
+
+# https://github.com/mesonbuild/meson/issues/1602
+meson.add_install_script('sh', '-c', 'cd $DESTDIR@0@; ln -fs @1@ 
vala-gen-introspect'.format(join_paths(get_option('prefix'), get_option('bindir')), 
'vala-gen-introspect@0@'.format(vala_version_suffix)))


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