diff options
author | Marius Vlad <marius.vlad@collabora.com> | 2021-05-05 22:14:07 +0300 |
---|---|---|
committer | Marius Vlad <marius.vlad@collabora.com> | 2021-05-11 17:59:53 +0300 |
commit | 5bdedb16112fa0faaf16f64ef440f451e9f787e4 (patch) | |
tree | 2b1b434834ad9de4cba1e9862bd9027df151f419 /meson.build | |
parent | a5a6cd6e1fac356ee9d5cbb4d37c0ca6d6eb7265 (diff) |
Initial commitmarlin_12.93.0marlin_12.92.0marlin_12.91.0marlin_12.90.1marlin_12.90.0marlin/12.93.0marlin/12.92.0marlin/12.91.0marlin/12.90.1marlin/12.90.0lamprey_11.92.0lamprey_11.91.0lamprey/11.92.0lamprey/11.91.0koi_11.0.5koi_11.0.4koi_11.0.3koi/11.0.5koi/11.0.4koi/11.0.312.93.012.92.012.91.012.90.112.90.011.92.011.91.011.0.511.0.411.0.3sandbox/mvlad/init
Bug-AGL: SPEC-3817
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Change-Id: Ie7e2168737f668a5c558b0fad3e58fe42f81e62e
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..f03bd47 --- /dev/null +++ b/meson.build @@ -0,0 +1,126 @@ +project('agl-shell-activator', + 'c', + version: '0.0.1', + default_options: [ + 'warning_level=3', + 'c_std=gnu99', + ], + meson_version: '>= 0.50', + license: 'MIT/Expat', +) + +pkgconfig = import('pkgconfig') +cc = meson.get_compiler('c') + +add_project_arguments( + cc.get_supported_arguments([ + '-Wno-unused-parameter', + '-Wno-pedantic', + '-Wextra', + '-Werror' + ]), + language: 'c' +) + +add_project_arguments([ + '-DPACKAGE_STRING="agl-shell-activator @0@"'.format(meson.project_version()), + '-D_GNU_SOURCE', + '-D_ALL_SOURCE', + ], + language: 'c' +) + +optional_libc_funcs = [ 'memfd_create', 'strchrnul' ] +foreach func: optional_libc_funcs + if cc.has_function(func) + add_project_arguments('-DHAVE_@0@=1'.format(func.to_upper()), language: 'c') + endif +endforeach + +env_modmap = '' + +libwayland_dep = dependency('wayland-client') +agl_compositor_dep = dependency('agl-compositor-0.0.19-protocols') + +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') +dir_wp_base = dep_wp.get_pkgconfig_variable('pkgdatadir') +dir_agl_compositor_base = agl_compositor_dep.get_pkgconfig_variable('pkgdatadir') + +protocols = [ + { 'name': 'agl-shell-desktop', 'source': 'agl-compositor' }, +] + +foreach proto: protocols + proto_name = proto['name'] + if proto['source'] == 'internal' + base_file = proto_name + xml_path = join_paths('protocol', '@0@.xml'.format(base_file)) + elif proto['source'] == 'wp-stable' + base_file = proto_name + xml_path = join_paths(dir_wp_base, 'stable', proto_name, '@0@.xml'.format(base_file)) + elif proto['source'] == 'agl-compositor' + base_file = proto_name + xml_path = join_paths(dir_agl_compositor_base, '@0@.xml'.format(base_file)) + else + base_file = '@0@-unstable-@1@'.format(proto_name, proto['version']) + xml_path = join_paths(dir_wp_base, 'unstable', proto_name, '@0@.xml'.format(base_file)) + endif + + foreach output_type: [ 'client-header', 'server-header', 'private-code' ] + if output_type == 'client-header' + output_file = '@0@-client-protocol.h'.format(base_file) + elif output_type == 'server-header' + output_file = '@0@-server-protocol.h'.format(base_file) + else + output_file = '@0@-protocol.c'.format(base_file) + if dep_scanner.version().version_compare('< 1.14.91') + output_type = 'code' + endif + endif + + var_name = output_file.underscorify() + target = custom_target( + '@0@ @1@'.format(base_file, output_type), + command: [ prog_scanner, output_type, '@INPUT@', '@OUTPUT@' ], + input: xml_path, + output: output_file, + ) + + set_variable(var_name, target) + endforeach +endforeach + +prefix_path = get_option('prefix') +binplugin_dir = join_paths(prefix_path, get_option('bindir')) +common_inc = include_directories('include') + +deps_agl_activator = [ + libwayland_dep, +] + +srcs_agl_activator = [ + 'src/main.c', + agl_shell_desktop_client_protocol_h, + agl_shell_desktop_protocol_c, +] + +exe_wth_receiver = executable( + 'agl-shell-activator', + srcs_agl_activator, + include_directories: common_inc, + dependencies: deps_agl_activator, + install_rpath: binplugin_dir, + install: true +) + +cp = find_program('cp') +script_target = custom_target('install_script', + command: [ cp, '@INPUT@', '@OUTPUT@' ], + output : 'agl-activator', + input : 'script/agl-activator', + install : true, + install_dir: binplugin_dir, +) + |