1
0
Fork 0
gnome-session/meson.build
Daniel Baumann f9d3f51ece
Adding upstream version 48.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 19:58:09 +02:00

176 lines
4.6 KiB
Meson

project(
'gnome-session', 'c',
version: '48.0',
license: 'GPL2+',
default_options: 'buildtype=debugoptimized',
meson_version: '>= 0.60.0'
)
session_version = meson.project_version()
session_api_name = '@0@-@1@'.format(meson.project_name(), session_version.split('.')[0])
session_prefix = get_option('prefix')
session_bindir = join_paths(session_prefix, get_option('bindir'))
session_datadir = join_paths(session_prefix, get_option('datadir'))
session_libexecdir = join_paths(session_prefix, get_option('libexecdir'))
session_localedir = join_paths(session_prefix, get_option('localedir'))
session_sysconfdir = join_paths(session_prefix, get_option('sysconfdir'))
session_pkgdatadir = join_paths(session_datadir, meson.project_name())
cc = meson.get_compiler('c')
have_x11 = get_option('x11')
config_h = configuration_data()
# defines
set_defines = [
# package
['PACKAGE', meson.project_name()],
['PACKAGE_VERSION', session_version],
['VERSION', session_version],
# i18n
['GETTEXT_PACKAGE', session_api_name]
]
foreach define: set_defines
config_h.set_quoted(define[0], define[1])
endforeach
config_h.set('HAVE_X11', have_x11)
# compiler flags
common_flags = ['-DHAVE_CONFIG_H']
if get_option('deprecation_flags')
common_flags += [
'-DBONOBO_DISABLE_DEPRECATED',
'-DBONOBO_DISABLE_SINGLE_INCLUDES',
'-DBONOBO_UI_DISABLE_DEPRECATED',
'-DBONOBO_UI_DISABLE_SINGLE_INCLUDES',
'-DGNOME_DISABLE_DEPRECATED',
'-DGNOME_DISABLE_SINGLE_INCLUDES',
'-DLIBGLADE_DISABLE_DEPRECATED',
'-DLIBGLADE_DISABLE_SINGLE_INCLUDES',
'-DGNOME_VFS_DISABLE_DEPRECATED',
'-DGNOME_VFS_DISABLE_SINGLE_INCLUDES',
'-DWNCK_DISABLE_DEPRECATED',
'-DWNCK_DISABLE_SINGLE_INCLUDES',
'-DLIBSOUP_DISABLE_DEPRECATED',
'-DLIBSOUP_DISABLE_SINGLE_INCLUDES'
]
endif
compiler_flags = []
if get_option('debug')
test_cflags = [
'-Werror=format=2',
'-Werror=implicit-function-declaration',
'-Werror=init-self',
'-Werror=missing-include-dirs',
'-Werror=missing-prototypes',
'-Werror=pointer-arith',
'-Werror=return-type',
'-Wnested-externs',
'-Wstrict-prototypes'
]
compiler_flags += cc.get_supported_arguments(test_cflags)
endif
add_project_arguments(common_flags + compiler_flags, language: 'c')
glib_req_version = '>= 2.46.0'
gio_dep = dependency('gio-2.0', version: glib_req_version)
glib_dep = dependency('glib-2.0', version: glib_req_version)
gtk_dep = dependency('gtk+-3.0', version: '>= 3.22.0')
if have_x11
ice_dep = dependency('ice')
sm_dep = dependency('sm')
x11_dep = dependency('x11')
endif
session_deps = [
gio_dep,
glib_dep,
dependency('gnome-desktop-3.0', version: '>= 3.34.2'),
dependency('json-glib-1.0', version: '>= 0.10')
]
session_bin_deps = session_deps
if have_x11
session_bin_deps += [
dependency('xtrans'),
ice_dep,
sm_dep
]
endif
# Check for session selector GTK+ UI
enable_session_selector = get_option('session_selector')
session_bin_deps += dependency('gio-unix-2.0', version: glib_req_version)
# Check for systemd
systemd_userunitdir = get_option('systemduserunitdir')
if systemd_userunitdir == ''
systemd_dep = dependency('systemd', version: '>= 242', required: true)
systemd_userunitdir = systemd_dep.get_variable(pkgconfig: 'systemduserunitdir',
pkgconfig_define: ['prefix', session_prefix])
endif
libsystemd_dep = dependency('libsystemd', version: '>= 209', required: true)
session_bin_deps += libsystemd_dep
configure_file(
output: 'config.h',
configuration: config_h
)
gnome = import('gnome')
i18n = import('i18n')
pkg = import('pkgconfig')
po_dir = join_paths(meson.project_source_root(), 'po')
top_inc = include_directories('.')
subdir('gnome-session')
subdir('tools')
subdir('data')
subdir('doc')
subdir('po')
meson.add_install_script(
'meson_post_install.py',
[session_datadir, have_x11 ? 'true' : 'false'],
)
gnome.post_install(
glib_compile_schemas: true,
)
summary_options = {
'Debug mode': get_option('debug'),
'Use *_DISABLE_DEPRECATED': get_option('deprecation_flags'),
'Build Docbook': get_option('docbook'),
'Build manpages': get_option('man'),
'Systemd Units Directory': systemd_userunitdir,
'Session Selector Enabled': enable_session_selector,
}
summary_dirs = {
'prefix': get_option('prefix'),
'datadir': session_datadir,
'bindir': session_bindir,
'libexecdir': session_libexecdir,
'localedir': session_localedir,
'mandir': get_option('mandir'),
'sysconfdir': session_sysconfdir,
'pkgdatadir': session_pkgdatadir,
}
summary(summary_dirs, section: 'Directories')
summary(summary_options, section: 'Build Options')