2017-05-25 00:16:27 +00:00
|
|
|
project('gnome-shell', 'c',
|
2017-10-17 15:47:51 +00:00
|
|
|
version: '3.27.1',
|
2017-08-15 19:46:27 +00:00
|
|
|
meson_version: '>= 0.42.0',
|
2017-05-25 00:16:27 +00:00
|
|
|
license: 'GPLv2+'
|
|
|
|
)
|
|
|
|
|
|
|
|
# We depend on a specific version of the libmutter API. The mutter variants of
|
|
|
|
# the Cogl and Clutter libraries also use this API version.
|
2017-08-01 15:40:52 +00:00
|
|
|
mutter_api_version = '1'
|
2017-05-25 00:16:27 +00:00
|
|
|
|
|
|
|
clutter_pc = 'mutter-clutter-' + mutter_api_version
|
|
|
|
cogl_pc = 'mutter-cogl-' + mutter_api_version
|
|
|
|
cogl_pango_pc = 'mutter-cogl-pango-' + mutter_api_version
|
|
|
|
libmutter_pc = 'libmutter-' + mutter_api_version
|
|
|
|
|
|
|
|
croco_req = '>= 0.6.8'
|
|
|
|
ecal_req = '>= 3.5.3'
|
|
|
|
eds_req = '>= 3.17.2'
|
|
|
|
gcr_req = '>= 3.7.5'
|
|
|
|
gdesktop_req = '>= 3.7.90'
|
|
|
|
gio_req = '>= 2.53.0'
|
|
|
|
gi_req = '>= 1.49.1'
|
|
|
|
gjs_req = '>= 1.47.0'
|
|
|
|
gtk_req = '>= 3.15.0'
|
|
|
|
json_glib_req = '>= 0.13.2'
|
2017-09-12 15:11:28 +00:00
|
|
|
mutter_req = '>= 3.26.0'
|
2017-05-25 00:16:27 +00:00
|
|
|
polkit_req = '>= 0.100'
|
|
|
|
schemas_req = '>= 3.21.3'
|
|
|
|
startup_req = '>= 0.11'
|
|
|
|
|
|
|
|
bt_req = '>= 3.9.0'
|
|
|
|
gst_req = '>= 0.11.92'
|
|
|
|
nm_req = '>= 0.9.8'
|
|
|
|
secret_req = '>= 0.18'
|
|
|
|
|
|
|
|
gnome = import('gnome')
|
|
|
|
i18n = import('i18n')
|
|
|
|
|
|
|
|
prefix = get_option('prefix')
|
|
|
|
|
|
|
|
bindir = join_paths(prefix, get_option('bindir'))
|
|
|
|
datadir = join_paths(prefix, get_option('datadir'))
|
|
|
|
libdir = join_paths(prefix, get_option('libdir'))
|
|
|
|
libexecdir = join_paths(prefix, get_option('libexecdir'))
|
|
|
|
mandir = join_paths(prefix, get_option('mandir'))
|
|
|
|
|
|
|
|
pkgdatadir = join_paths(datadir, meson.project_name())
|
|
|
|
pkglibdir = join_paths(libdir, meson.project_name())
|
|
|
|
|
|
|
|
convertdir = join_paths(datadir, 'GConf', 'gsettings')
|
|
|
|
desktopdir = join_paths(datadir, 'applications')
|
|
|
|
ifacedir = join_paths(datadir, 'dbus-1', 'interfaces')
|
|
|
|
localedir = join_paths(datadir, 'locale')
|
|
|
|
mozplugindir = join_paths(libdir, 'mozilla', 'plugins')
|
2017-07-19 23:43:38 +00:00
|
|
|
portaldir = join_paths(datadir, 'xdg-desktop-portal', 'portals')
|
2017-05-25 00:16:27 +00:00
|
|
|
schemadir = join_paths(datadir, 'glib-2.0', 'schemas')
|
|
|
|
servicedir = join_paths(datadir, 'dbus-1', 'services')
|
|
|
|
|
|
|
|
plugindir = get_variable('BROWSER_PLUGIN_DIR', mozplugindir)
|
|
|
|
|
|
|
|
keybindings_dep = dependency('gnome-keybindings', required: false)
|
|
|
|
if keybindings_dep.found()
|
|
|
|
keysdir = keybindings_dep.get_pkgconfig_variable('keysdir')
|
|
|
|
else
|
|
|
|
keysdir = join_paths(datadir, 'gnome-control-center', 'keybindings')
|
|
|
|
endif
|
|
|
|
|
|
|
|
atk_bridge_dep = dependency('atk-bridge-2.0')
|
|
|
|
canberra_dep = dependency('libcanberra')
|
|
|
|
canberra_gtk_dep = dependency('libcanberra-gtk3')
|
|
|
|
ecal_dep = dependency('libecal-1.2', version: ecal_req)
|
|
|
|
eds_dep = dependency('libedataserver-1.2', version: eds_req)
|
|
|
|
gcr_dep = dependency('gcr-base-3', version: gcr_req)
|
|
|
|
gdk_x11_dep = dependency('gdk-x11-3.0')
|
|
|
|
gdk_pixbuf_dep = dependency('gdk-pixbuf-2.0')
|
|
|
|
gi_dep = dependency('gobject-introspection-1.0', version: gi_req)
|
|
|
|
gio_dep = dependency('gio-2.0', version: gio_req)
|
|
|
|
gio_unix_dep = dependency('gio-unix-2.0', version: gio_req)
|
|
|
|
gjs_dep = dependency('gjs-1.0', version: gjs_req)
|
|
|
|
gtk_dep = dependency('gtk+-3.0', version: gtk_req)
|
|
|
|
libxml_dep = dependency('libxml-2.0')
|
|
|
|
croco_dep = dependency('libcroco-0.6', version: croco_req)
|
|
|
|
clutter_dep = dependency(clutter_pc, version: mutter_req)
|
|
|
|
cogl_dep = dependency(cogl_pc, version: mutter_req)
|
|
|
|
cogl_pango_dep = dependency(cogl_pango_pc, version: mutter_req)
|
|
|
|
mutter_dep = dependency(libmutter_pc, version: mutter_req)
|
|
|
|
polkit_dep = dependency('polkit-agent-1', version: polkit_req)
|
|
|
|
soup_dep = dependency('libsoup-2.4')
|
|
|
|
startup_dep = dependency('libstartup-notification-1.0', version: startup_req)
|
|
|
|
x11_dep = dependency('x11')
|
|
|
|
schemas_dep = dependency('gsettings-desktop-schemas', version: schemas_req)
|
|
|
|
|
|
|
|
bt_dep = dependency('gnome-bluetooth-1.0', version: bt_req, required: false)
|
|
|
|
gst_dep = dependency('gstreamer-1.0', version: gst_req, required: false)
|
|
|
|
gst_base_dep = dependency('gstreamer-base-1.0', required: false)
|
|
|
|
|
|
|
|
recorder_deps = []
|
|
|
|
enable_recorder = gst_dep.found() and gst_base_dep.found()
|
|
|
|
if enable_recorder
|
|
|
|
recorder_deps += [gst_dep, gst_base_dep, gtk_dep, x11_dep]
|
|
|
|
endif
|
|
|
|
|
|
|
|
nm_deps = []
|
2017-11-25 06:15:39 +00:00
|
|
|
if get_option('networkmanager')
|
2017-10-31 10:38:20 +00:00
|
|
|
nm_deps += dependency('libnm', version: nm_req)
|
2017-11-25 06:15:39 +00:00
|
|
|
nm_deps += dependency('libsecret-1', version: secret_req)
|
2017-05-25 00:16:27 +00:00
|
|
|
|
|
|
|
have_networkmanager = true
|
|
|
|
else
|
|
|
|
have_networkmanager = false
|
|
|
|
endif
|
|
|
|
|
2017-12-11 17:37:45 +00:00
|
|
|
networkmanager_dep = dependency('NetworkManager', required: false)
|
|
|
|
if (networkmanager_dep.found())
|
|
|
|
nm_prefix = networkmanager_dep.get_pkgconfig_variable('prefix')
|
|
|
|
else
|
|
|
|
nm_prefix = prefix
|
|
|
|
endif
|
|
|
|
|
2017-11-25 06:15:39 +00:00
|
|
|
if get_option('systemd')
|
|
|
|
systemd_dep = dependency('libsystemd')
|
2017-05-25 00:16:27 +00:00
|
|
|
have_systemd = systemd_dep.found()
|
|
|
|
else
|
|
|
|
systemd_dep = []
|
|
|
|
have_systemd = false
|
|
|
|
endif
|
|
|
|
|
2017-11-25 06:10:26 +00:00
|
|
|
if get_option('browser_plugin')
|
2017-05-25 00:16:27 +00:00
|
|
|
json_glib_dep = dependency('json-glib-1.0', version: json_glib_req)
|
|
|
|
|
|
|
|
subdir('browser-plugin')
|
|
|
|
endif
|
|
|
|
|
2017-11-25 06:10:26 +00:00
|
|
|
if get_option('man')
|
2017-05-25 00:16:27 +00:00
|
|
|
xsltproc = find_program('xsltproc')
|
|
|
|
|
|
|
|
subdir('man')
|
|
|
|
endif
|
|
|
|
|
|
|
|
mutter_typelibdir = mutter_dep.get_pkgconfig_variable('typelibdir')
|
|
|
|
python = find_program('python3')
|
|
|
|
sassc = find_program('sassc', required: false)
|
|
|
|
|
|
|
|
cc = meson.get_compiler('c')
|
|
|
|
|
|
|
|
m_dep = cc.find_library('m', required: false)
|
|
|
|
|
|
|
|
cdata = configuration_data()
|
|
|
|
cdata.set_quoted('GETTEXT_PACKAGE', meson.project_name())
|
|
|
|
cdata.set_quoted('VERSION', meson.project_version())
|
|
|
|
cdata.set_quoted('PACKAGE_VERSION', meson.project_version())
|
|
|
|
|
|
|
|
cdata.set('HAVE_NETWORKMANAGER', have_networkmanager)
|
|
|
|
cdata.set('HAVE_SYSTEMD', have_systemd)
|
|
|
|
|
|
|
|
cdata.set('HAVE_FDWALK', cc.has_function('fdwalk'))
|
|
|
|
cdata.set('HAVE_MALLINFO', cc.has_function('mallinfo'))
|
|
|
|
cdata.set('HAVE_SYS_RESOURCE_H', cc.has_header('sys/resource.h'))
|
|
|
|
cdata.set('HAVE__NL_TIME_FIRST_WEEKDAY',
|
|
|
|
cc.has_header_symbol('langinfo.h', '_NL_TIME_FIRST_WEEKDAY')
|
|
|
|
)
|
|
|
|
|
|
|
|
config_h = configure_file(
|
|
|
|
input: 'config.h.meson',
|
|
|
|
output: 'config.h',
|
|
|
|
configuration: cdata
|
|
|
|
)
|
|
|
|
|
|
|
|
conf_inc = include_directories('.')
|
|
|
|
|
|
|
|
libgvc = subproject('gvc',
|
|
|
|
default_options: [
|
|
|
|
'package-name=' + meson.project_name(),
|
|
|
|
'package-version=' + meson.project_version(),
|
|
|
|
'pkgdatadir=' + pkgdatadir,
|
|
|
|
'pkglibdir=' + pkglibdir,
|
|
|
|
'static=false',
|
|
|
|
'with-introspection=true'
|
|
|
|
]
|
|
|
|
)
|
|
|
|
libgvc_gir = libgvc.get_variable('libgvc_gir')
|
|
|
|
|
|
|
|
subdir('js')
|
|
|
|
subdir('src')
|
|
|
|
subdir('po')
|
|
|
|
subdir('data')
|
|
|
|
subdir('tests')
|
|
|
|
|
2017-11-25 06:10:26 +00:00
|
|
|
if get_option('gtk_doc')
|
2017-05-25 00:16:27 +00:00
|
|
|
subdir('docs/reference')
|
|
|
|
endif
|