Files
squeekboard/meson.build

118 lines
2.9 KiB
Meson

project(
'squeekboard',
'c', 'rust',
version: '1.44.0-alpha0',
license: 'GPLv3',
meson_version: '>=1.0.0',
default_options: [
'warning_level=1',
'buildtype=debugoptimized',
'c_std=gnu11'
]
)
add_project_arguments(
[
'-Werror=implicit-function-declaration',
'-Werror=implicit-fallthrough=3',
'-Werror=maybe-uninitialized',
'-Werror=missing-field-initializers',
'-Werror=incompatible-pointer-types',
'-Werror=int-conversion',
'-Werror=redundant-decls',
'-Werror=parentheses',
'-Wformat-nonliteral',
'-Wformat-security',
'-Wformat',
'-Winit-self',
'-Wmaybe-uninitialized',
'-Wold-style-definition',
'-Wredundant-decls',
'-Wstrict-prototypes',
'-Wunused',
],
language: 'c'
)
i18n = import('i18n')
if get_option('buildtype').startswith('debug')
add_project_arguments('-DDEBUG=1', language : 'c')
endif
if get_option('strict')
add_project_arguments(
[
'-Werror',
],
language: 'c'
)
endif
if get_option('buildtype') != 'plain'
add_project_arguments('-fstack-protector-strong', language: 'c')
endif
if get_option('buildtype') == 'release'
cargo_build_flags = ['--release'] # for artifacts
else
cargo_build_flags = []
endif
prefix = get_option('prefix')
bindir = join_paths(prefix, get_option('bindir'))
datadir = join_paths(prefix, get_option('datadir'))
localedir = join_paths(prefix, get_option('localedir'))
desktopdir = join_paths(datadir, 'applications')
pkgdatadir = join_paths(datadir, meson.project_name())
if get_option('depdatadir') == ''
depdatadir = datadir
else
depdatadir = get_option('depdatadir')
endif
dbusdir = join_paths(depdatadir, 'dbus-1/interfaces')
schemasdir = datadir / 'glib-2.0' / 'schemas'
conf_data = configuration_data()
conf_data.set_quoted('GETTEXT_PACKAGE', 'squeekboard')
conf_data.set_quoted('LOCALEDIR', localedir)
summary = [
'',
'------------------',
'squeekboard @0@'.format(meson.project_version()),
'',
'------------------',
''
]
message('\n'.join(summary))
# 'rust-analyzer' does not work correctly, when the paths in 'Cargo.toml' have '@path@' in them.
cp = find_program('cp')
sed = find_program('sed')
copy_cargo_toml = run_command('cp', 'Cargo.toml', 'meson_Cargo.toml.in', check: true)
prepare_cargo_toml = run_command('sed', '-i', 's/path = "/path = "@path@\//', 'meson_Cargo.toml.in', check: true)
path_data = configuration_data()
path_data.set('path', meson.project_source_root())
cargo_toml = configure_file(
input: 'meson_Cargo.toml.in',
output: 'Cargo.toml',
configuration: path_data,
)
cargo_build_flags += ['--features', 'zbus_v1_5,clap_v4']
dep_cargo = find_program('cargo')
cargo_script = find_program('cargo.sh')
cargo_build = find_program('cargo_build.py')
subdir('data')
subdir('po')
subdir('protocols')
subdir('src')
subdir('tools')
subdir('tests')
gnome.post_install(
glib_compile_schemas: true,
)