layout: Do not attempt to activate surfaces that doesn't have a valid app_id
[src/agl-compositor.git] / meson.build
index bc65c1c..bd4cb04 100644 (file)
@@ -41,6 +41,7 @@ foreach func: optional_libc_funcs
 endforeach
 
 dep_libsystemd = dependency('libsystemd', required: false)
+dep_libsmack = dependency('libsmack', required: false)
 dep_scanner = dependency('wayland-scanner', native: true)
 prog_scanner = find_program(dep_scanner.get_pkgconfig_variable('wayland_scanner'))
 dep_wp = dependency('wayland-protocols', version: '>= 1.18')
@@ -58,18 +59,40 @@ foreach depname : depnames
   if not dep.found()
     message('Remoting requires @0@ which was not found. '.format(depname))
   endif
-deps_remoting += dep
+  deps_remoting += dep
 endforeach
 
 
+# the transmitter plug-in requires waltham but we don't have a cflags or libs
+# for it so we add waltham depends here. Further more, the output is being
+# handled by remoting plug-in
+depnames_waltham = [
+  'waltham'
+]
+
+deps_waltham = []
+foreach depname : depnames_waltham
+  dep = dependency(depname, required: false)
+  if dep.found()
+    deps_waltham += dep
+  else
+    message('Waltham requires @0@ which was not found. '.format(depname))
+  endif
+endforeach
+
+deps_waltham += deps_remoting
+
 agl_shell_xml = files('protocol/agl-shell.xml')
 agl_shell_desktop_xml = files('protocol/agl-shell-desktop.xml')
+agl_screenshooter = files('protocol/agl-screenshooter.xml')
 xdg_shell_xml = join_paths(dir_wp_base, 'stable', 'xdg-shell', 'xdg-shell.xml')
 
 protocols = [
   { 'name': 'agl-shell', 'source': 'internal' },
   { 'name': 'agl-shell-desktop', 'source': 'internal' },
+  { 'name': 'agl-screenshooter', 'source': 'internal' },
   { 'name': 'xdg-shell', 'source': 'wp-stable' },
+  { 'name': 'xdg-output', 'source': 'unstable', 'version': 'v1' },
 ]
 
 foreach proto: protocols
@@ -138,17 +161,30 @@ srcs_agl_compositor = [
        'src/desktop.c',
        'src/layout.c',
        'src/policy.c',
-       'src/policy-default.c',
        'src/shell.c',
+       'src/screenshooter.c',
+       'src/input.c',
        'shared/option-parser.c',
        'shared/os-compatibility.c',
        agl_shell_server_protocol_h,
        agl_shell_desktop_server_protocol_h,
+       agl_screenshooter_server_protocol_h,
        agl_shell_protocol_c,
        agl_shell_desktop_protocol_c,
+       agl_screenshooter_protocol_c,
        xdg_shell_protocol_c,
 ]
 
+policy_to_install = get_option('policy-default')
+if policy_to_install == 'auto' or policy_to_install == 'allow-all'
+  srcs_agl_compositor += 'src/policy-default.c'
+  message('Installing allow all policy')
+elif policy_to_install == 'deny-all'
+  srcs_agl_compositor += 'src/policy-deny.c'
+  message('Installing deny all policy')
+endif
+
+
 # From meson documentation:
 # In order to look for headers in a specific directory you can use args :
 # '-I/extra/include/dir, but this should only be used in exceptional cases for
@@ -180,6 +216,16 @@ if deps_remoting.length() == depnames.length()
   message('Found remoting depends, enabling remoting')
 endif
 
+if deps_waltham.length() == depnames_waltham.length() + depnames.length()
+  config_h.set('HAVE_WALTHAM', 1)
+  message('Found waltham depends, enabling waltham')
+endif
+
+if dep_libsmack.found()
+  config_h.set('HAVE_SMACK', 1)
+  deps_libweston += dep_libsmack
+endif
+
 configure_file(output: 'config.h', configuration: config_h)
 
 exe_agl_compositor = executable(
@@ -205,3 +251,6 @@ install_data(
         [ agl_shell_xml, agl_shell_desktop_xml ],
         install_dir: join_paths(dir_data, dir_data_agl_compositor)
 )
+
+common_inc = [ include_directories('src'), include_directories('.') ]
+subdir('clients')