geary/subprojects/vala-unit/meson.build
Niels De Graef b419857f0b vala-unit: meson: Bump minimal meson version to 1.7
Basically a follow-up of commit b06da3175, but for the vala-unit
subproject.
2026-01-29 00:20:38 +01:00

152 lines
3.5 KiB
Meson

project(
'vala-unit',
[ 'vala', 'c' ],
version: '2.0',
license: 'LGPL2.1+',
meson_version: '>= 1.7',
)
enable_install = get_option('install')
enable_valadoc = get_option('valadoc')
add_project_arguments(
[
'--abi-stability',
'--enable-checking',
'--enable-experimental-non-null',
'--fatal-warnings',
'--nostdpkg'
],
language: 'vala'
)
target_vala = '0.56'
target_glib = '2.74'
if not meson.get_compiler('vala').version().version_compare('>=' + target_vala)
error('Vala does not meet minimum required version: ' + target_vala)
endif
gee = dependency('gee-0.8')
gio = dependency('gio-2.0')
glib = dependency('glib-2.0', version: '>=' + target_glib)
gobject = dependency('gobject-2.0')
g_ir_compiler = find_program('g-ir-compiler')
if enable_valadoc
valadoc = find_program('valadoc')
endif
dependencies = [
gee,
gio,
glib,
gobject
]
lib_sources = files(
'src/async-result-waiter.vala',
'src/collection-assertions.vala',
'src/expected-call.vala',
'src/mock-object.vala',
'src/test-adaptor.vala',
'src/test-assertions.vala',
'src/test-case.vala',
)
test_sources = files(
'test/collection-assertions.vala',
'test/test-assertions.vala',
'test/test-driver.vala',
)
package_name = 'ValaUnit'
package_version = '2.0'
package_full = '@0@-@1@'.format(package_name, package_version)
package_vapi = '@0@-@1@'.format(meson.project_name(), package_version)
package_gir = package_full + '.gir'
vala_unit_lib = library(
meson.project_name(),
lib_sources,
dependencies: dependencies,
# Ensure we always get debug symbols.
override_options : [
'debug=true',
'strip=false',
],
vala_vapi: package_vapi + '.vapi',
vala_gir: package_gir,
install: enable_install,
install_dir: [true, true, true, true]
)
vala_unit_dep = declare_dependency(
link_with : vala_unit_lib,
include_directories: include_directories('.')
)
custom_target(
meson.project_name() + '-typelib',
command: [
g_ir_compiler,
'--output', '@OUTPUT@',
meson.current_build_dir() / package_gir,
],
output: [package_full + '.typelib'],
depends: vala_unit_lib,
install: enable_install,
install_dir: get_option('libdir') / 'girepository-1.0'
)
if enable_valadoc
# Hopefully Meson will get baked-in valadoc support, so we don't have
# to do this any more. https://github.com/mesonbuild/meson/issues/894
valadoc_dep_args = []
foreach dep : dependencies
valadoc_dep_args += '--pkg'
valadoc_dep_args += dep.name()
endforeach
docs = custom_target(
'valadoc',
build_by_default: true,
depends: [vala_unit_lib],
input: lib_sources,
output: 'valadoc',
command: [
valadoc,
'--verbose',
'--force',
'--fatal-warnings',
'--package-name=@0@'.format(package_vapi),
'--package-version=@0@'.format(meson.project_version()),
'-b', meson.current_source_dir(),
'-o', '@OUTPUT@',
'@INPUT@',
] + valadoc_dep_args
)
if enable_install
install_subdir(
meson.current_build_dir() / 'valadoc',
install_dir: get_option('datadir') / 'doc' / 'vala-unit' / 'valadoc'
)
endif
endif
test_driver = executable(
'test-driver',
test_sources,
dependencies: dependencies + [ vala_unit_dep ],
# Always do a plain debug build to avoid compiler optimsations that
# might render testing invalid, and to ensure we get debug symbols.
# Ensure we always get debug symbols.
override_options : [
'debug=true',
'optimization=0',
'strip=false',
],
)
test('tests', test_driver)