176 lines
4.6 KiB
Meson
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')
|