[libgee/wip/tintou/meson] Use Meson build system



commit adce4b4ca69a9d4fbdb254f1509d81e7f9cc0e07
Author: Corentin Noël <corentin elementary io>
Date:   Tue Dec 18 10:14:55 2018 +0100

    Use Meson build system

 benchmark/meson.build |  15 +++++++
 doc/meson.build       |  23 ++++++++++
 gee/meson.build       | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++
 meson.build           |  31 +++++++++++++
 meson_options.txt     |   3 ++
 tests/meson.build     |  49 +++++++++++++++++++++
 utils/meson.build     |   5 +++
 7 files changed, 244 insertions(+)
---
diff --git a/benchmark/meson.build b/benchmark/meson.build
new file mode 100644
index 0000000..5fd12d3
--- /dev/null
+++ b/benchmark/meson.build
@@ -0,0 +1,15 @@
+benchmark_exec = executable(
+    'benchmarks',
+    'benchmark.vala',
+    'benchmarksorts.vala',
+    dependencies : [gee_internal_dep, m_dep],
+    build_by_default: false,
+)
+
+benchmark(
+    'gee',
+    benchmark_exec,
+    args: [
+        '--run-sort',
+    ],
+)
diff --git a/doc/meson.build b/doc/meson.build
new file mode 100644
index 0000000..c19940c
--- /dev/null
+++ b/doc/meson.build
@@ -0,0 +1,23 @@
+valadoc = find_program('valadoc')
+custom_target(
+    'documentation',
+    command: [
+        valadoc,
+        '--directory='+meson.current_build_dir(),
+        '--basedir='+meson.source_root(),
+        '--wiki='+meson.current_source_dir(),
+        '--vapidir='+join_paths(meson.source_root(), 'utils'),
+        '--package-name='+gee_name,
+        '--package-version='+meson.project_version(),
+        '--pkg=geeutils',
+        '--pkg=glib-2.0',
+        '--pkg=gio-2.0',
+        '--pkg=gobject-2.0',
+        '--use-svg-images',
+        '--importdir='+join_paths(glib_dep.get_pkgconfig_variable('prefix'), get_option('datadir'), 
'gtk-doc', 'html'),
+        '--force',
+        '@INPUT@'
+    ],
+    output: 'index.html',
+    input: gee_files,
+)
diff --git a/gee/meson.build b/gee/meson.build
new file mode 100644
index 0000000..b5e7dfc
--- /dev/null
+++ b/gee/meson.build
@@ -0,0 +1,118 @@
+gee_files = files(
+    'abstractbidirlist.vala',
+    'abstractbidirsortedmap.vala',
+    'abstractbidirsortedset.vala',
+    'abstractcollection.vala',
+    'abstractlist.vala',
+    'abstractmap.vala',
+    'abstractmultimap.vala',
+    'abstractmultiset.vala',
+    'abstractqueue.vala',
+    'abstractset.vala',
+    'abstractsortedmap.vala',
+    'abstractsortedset.vala',
+    'arraylist.vala',
+    'arrayqueue.vala',
+    'assemblyinfo.vala',
+    'bidiriterator.vala',
+    'bidirlistiterator.vala',
+    'bidirlist.vala',
+    'bidirmapiterator.vala',
+    'bidirsortedmap.vala',
+    'bidirsortedset.vala',
+    'collection.vala',
+    'comparable.vala',
+    'concurrentlist.vala',
+    'concurrentset.vala',
+    'deque.vala',
+    'functions.vala',
+    'future.vala',
+    'hashable.vala',
+    'hashmap.vala',
+    'hashmultimap.vala',
+    'hashmultiset.vala',
+    'hashset.vala',
+    'hazardpointer.vala',
+    'iterable.vala',
+    'iterator.vala',
+    'lazy.vala',
+    'lightmapfuture.vala',
+    'linkedlist.vala',
+    'listiterator.vala',
+    'list.vala',
+    'mapiterator.vala',
+    'map.vala',
+    'multimap.vala',
+    'multiset.vala',
+    'priorityqueue.vala',
+    'promise.vala',
+    'queue.vala',
+    'readonlybidirlist.vala',
+    'readonlybidirsortedmap.vala',
+    'readonlybidirsortedset.vala',
+    'readonlycollection.vala',
+    'readonlylist.vala',
+    'readonlymap.vala',
+    'readonlymultimap.vala',
+    'readonlymultiset.vala',
+    'readonlyset.vala',
+    'readonlysortedmap.vala',
+    'readonlysortedset.vala',
+    'set.vala',
+    'sortedmap.vala',
+    'sortedset.vala',
+    'streamiterator.vala',
+    'task.vala',
+    'teeiterator.vala',
+    'timsort.vala',
+    'traversable.vala',
+    'treemap.vala',
+    'treemultimap.vala',
+    'treemultiset.vala',
+    'treeset.vala',
+    'unfolditerator.vala',
+    'unrolledlinkedlist.vala',
+)
+
+gee_name = 'gee-'+api_version
+gee_gir = 'Gee-'+api_version+'.gir'
+gee_typelib = 'Gee-'+api_version+'.typelib'
+gee_deps = [glib_dep, gobject_dep, gio_dep]
+
+gee_lib = library(
+    gee_name,
+    gee_files,
+    soversion: meson.project_version().split('.')[0],
+    version: meson.project_version(),
+    vala_header: 'gee.h',
+    vala_vapi: gee_name+'.vapi',
+    vala_gir: gee_gir,
+    dependencies: [gee_deps, geeutils_dep],
+    install: true,
+    install_dir: [true, join_paths(get_option('includedir'), gee_name), true, true],
+    vala_args: [
+        '--hide-internal',
+    ],
+)
+
+g_ir_compiler = find_program('g-ir-compiler')
+custom_target(
+    gee_name + 'typelib',
+    command: [g_ir_compiler, '--output', '@OUTPUT@', join_paths(meson.current_build_dir(), gee_gir)],
+    output: gee_typelib,
+    depends: gee_lib,
+    install: true,
+    install_dir: join_paths(get_option('libdir'), 'girepository-1.0')
+)
+
+gee_dep = declare_dependency(
+    link_with: gee_lib,
+    dependencies: gee_deps,
+    include_directories: include_directories('.')
+)
+
+gee_internal_dep = declare_dependency(
+    sources: gee_files,
+    dependencies: [gee_deps, geeutils_dep],
+    include_directories: include_directories('.')
+)
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..4b2e03a
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,31 @@
+project('libgee', 'c', 'vala', version: '0.20.1')
+api_version = '0.8'
+
+glib_minimal_version = '2.36'
+glib_dep = dependency('glib-2.0', version: '>='+glib_minimal_version)
+gobject_dep = dependency('gobject-2.0', version: '>='+glib_minimal_version)
+gio_dep = dependency('gio-2.0', version: '>='+glib_minimal_version)
+m_dep = meson.get_compiler('c').find_library('m', required : false)
+posix_dep = meson.get_compiler('vala').find_library('posix')
+
+add_project_arguments([
+        '--target-glib='+glib_minimal_version,
+    ],
+    language: 'vala'
+)
+
+if get_option('internal-asserts')
+    add_project_arguments('--define=DISABLE_INTERNAL_ASSERTS', language: 'vala')
+endif
+
+if get_option('consistency-check')
+    add_project_arguments('--define=CONSISTENCY_CHECKS', language: 'vala')
+endif
+
+subdir('utils')
+subdir('gee')
+subdir('benchmark')
+subdir('tests')
+if get_option('documentation')
+    subdir('doc')
+endif
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 0000000..7551754
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1,3 @@
+option('documentation', type : 'boolean', value : false, description : 'Documentation generation')
+option('internal-asserts', type : 'boolean', value : true, description : 'Use internal asserts')
+option('consistency-check', type : 'boolean', value : false, description : 'Do some (very) expensive 
consistency checks: It might affect the asymptotic performance')
diff --git a/tests/meson.build b/tests/meson.build
new file mode 100644
index 0000000..a13d014
--- /dev/null
+++ b/tests/meson.build
@@ -0,0 +1,49 @@
+tests_exec = executable(
+    'benchmarks',
+    'testarraylist.vala',
+    'testarrayqueue.vala',
+    'testbidirlist.vala',
+    'testbidirsortedset.vala',
+    'testbidirsortedmap.vala',
+    'testcase.vala',
+    'testcollection.vala',
+    'testconcurrentlist.vala',
+    'testconcurrentset.vala',
+    'testdata.vala',
+    'testdeque.vala',
+    'testfunctions.vala',
+    'testhashmap.vala',
+    'testhashmultimap.vala',
+    'testhashmultiset.vala',
+    'testhashset.vala',
+    'testlinkedlist.vala',
+    'testlinkedlistasdeque.vala',
+    'testlist.vala',
+    'testmain.vala',
+    'testmap.vala',
+    'testmultimap.vala',
+    'testmultiset.vala',
+    'testpriorityqueue.vala',
+    'testqueue.vala',
+    'testreadonlybidirlist.vala',
+    'testreadonlycollection.vala',
+    'testreadonlylist.vala',
+    'testreadonlymap.vala',
+    'testreadonlyset.vala',
+    'testset.vala',
+    'testsortedset.vala',
+    'testsortedmap.vala',
+    'testtreemap.vala',
+    'testtreemultimap.vala',
+    'testtreemultiset.vala',
+    'testtreeset.vala',
+    'testunrolledlinkedlist.vala',
+    'testunrolledlinkedlistasdeque.vala',
+    dependencies : [gee_dep, posix_dep],
+    build_by_default: false,
+)
+
+test(
+    'tests',
+    tests_exec
+)
diff --git a/utils/meson.build b/utils/meson.build
new file mode 100644
index 0000000..1f4fbb9
--- /dev/null
+++ b/utils/meson.build
@@ -0,0 +1,5 @@
+geeutils_vapi = meson.get_compiler('vala').find_library('geeutils', dirs: meson.current_source_dir())
+geeutils_dep = declare_dependency(
+    dependencies: geeutils_vapi,
+    include_directories: include_directories('.')
+)


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