summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorentin Noël <corentin@elementary.io>2018-12-18 10:14:55 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2022-02-21 13:53:59 +0100
commit2a7ef1c60d0a1b9d9251e3118f3af53ec935fad5 (patch)
treeb25cea519a6eb19d0e2d9ab7a5cd3ca3d5f7687e
parentab19a43592bb96ec8812058ea33a5b856b475bf4 (diff)
downloadlibgee-wip/tintou/meson.tar.gz
Use Meson build systemwip/tintou/meson
-rw-r--r--benchmark/meson.build15
-rw-r--r--doc/meson.build23
-rw-r--r--gee/meson.build115
-rw-r--r--meson.build32
-rw-r--r--meson_options.txt3
-rw-r--r--tests/meson.build49
-rw-r--r--utils/meson.build5
7 files changed, 242 insertions, 0 deletions
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..872bff0
--- /dev/null
+++ b/gee/meson.build
@@ -0,0 +1,115 @@
+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],
+)
+
+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..2cc15a2
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,32 @@
+project('libgee', 'c', 'vala', version: '0.20.5')
+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([
+ '--hide-internal',
+ '--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('.')
+)