srcs_weston = [ git_version_h, 'main.c', 'text-backend.c', 'weston-screenshooter.c', text_input_unstable_v1_server_protocol_h, text_input_unstable_v1_protocol_c, input_method_unstable_v1_server_protocol_h, input_method_unstable_v1_protocol_c, weston_screenshooter_server_protocol_h, weston_screenshooter_protocol_c, ] deps_weston = [ dep_libshared, dep_libweston_public, dep_libinput, dep_libevdev, dep_libdl, dep_threads, ] if get_option('xwayland') config_h.set('BUILD_XWAYLAND', '1') srcs_weston += 'xwayland.c' config_h.set_quoted('XSERVER_PATH', get_option('xwayland-path')) endif libexec_weston = shared_library( 'exec_weston', sources: srcs_weston, include_directories: common_inc, dependencies: deps_weston, install_dir: dir_module_weston, install: true, version: '0.0.0', soversion: 0 ) dep_libexec_weston = declare_dependency( link_with: libexec_weston, include_directories: [ include_directories('.'), public_inc ], dependencies: dep_libweston_public ) exe_weston = executable( 'weston', 'executable.c', include_directories: common_inc, dependencies: dep_libexec_weston, install_rpath: dir_module_weston, install: true ) install_headers('weston.h', subdir: 'weston') pkgconfig.generate( filebase: 'weston', name: 'Weston Plugin API', version: version_weston, description: 'Header files for Weston plugin development', requires_private: [ lib_weston ], variables: [ 'libexecdir=' + join_paths('${prefix}', get_option('libexecdir')), 'pkglibexecdir=${libexecdir}/weston' ], subdirs: 'weston' ) install_data( 'weston.desktop', install_dir: join_paths(dir_data, 'wayland-sessions') ) if get_option('screenshare') srcs_screenshare = [ 'screen-share.c', fullscreen_shell_unstable_v1_client_protocol_h, fullscreen_shell_unstable_v1_protocol_c, ] deps_screenshare = [ dep_libexec_weston, dep_libshared, dep_shell_utils, dep_libweston_public, dep_libweston_private_h, # XXX: https://gitlab.freedesktop.org/wayland/weston/issues/292 dep_wayland_client, ] plugin_screenshare = shared_library( 'screen-share', srcs_screenshare, include_directories: common_inc, dependencies: deps_screenshare, name_prefix: '', install: true, install_dir: dir_module_weston, install_rpath: '$ORIGIN' ) env_modmap += 'screen-share.so=@0@;'.format(plugin_screenshare.full_path()) endif if get_option('color-management-lcms') config_h.set('HAVE_LCMS', '1') srcs_lcms = [ 'cms-static.c', 'cms-helper.c', ] dep_lcms2 = dependency('lcms2', required: false) if not dep_lcms2.found() error('cms-static requires lcms2 which was not found. Or, you can use \'-Dcolor-management-lcms=false\'.') endif plugin_lcms = shared_library( 'cms-static', srcs_lcms, include_directories: common_inc, dependencies: [ dep_libexec_weston, dep_libweston_public, dep_lcms2 ], name_prefix: '', install: true, install_dir: dir_module_weston, install_rpath: '$ORIGIN' ) env_modmap += 'cms-static.so=@0@;'.format(plugin_lcms.full_path()) endif if get_option('color-management-colord') if not get_option('color-management-lcms') error('LCMS must be enabled to support colord. Or, you can use \'-Dcolor-management-colord=false\'.') endif srcs_colord = [ 'cms-colord.c', 'cms-helper.c', ] dep_colord = dependency('colord', version: '>= 0.1.27', required: false) if not dep_colord.found() error('cms-colord requires colord >= 0.1.27 which was not found. Or, you can use \'-Dcolor-management-colord=false\'.') endif plugin_colord_deps = [ dep_libweston_public, dep_colord, dep_lcms2 ] foreach depname : [ 'glib-2.0', 'gobject-2.0' ] dep = dependency(depname, required: false) if not dep.found() error('cms-colord requires \'@0@\' which was not found. If you rather not build this, set \'-Dcolor-management-colord=false\'.'.format(depname)) endif plugin_colord_deps += dep endforeach plugin_colord = shared_library( 'cms-colord', srcs_colord, include_directories: common_inc, dependencies: plugin_colord_deps, name_prefix: '', install: true, install_dir: dir_module_weston ) env_modmap += 'cms-colord.so=@0@;'.format(plugin_colord.full_path()) endif if get_option('systemd') dep_libsystemd = dependency('libsystemd', required: false) if not dep_libsystemd.found() error('systemd-notify requires libsystemd which was not found. Or, you can use \'-Dsystemd=false\'.') endif plugin_systemd_notify = shared_library( 'systemd-notify', 'systemd-notify.c', include_directories: common_inc, dependencies: [ dep_libweston_public, dep_libsystemd ], name_prefix: '', install: true, install_dir: dir_module_weston ) env_modmap += 'systemd-notify.so=@0@;'.format(plugin_systemd_notify.full_path()) endif weston_ini_config = configuration_data() weston_ini_config.set('bindir', dir_bin) weston_ini_config.set('libexecdir', dir_libexec) configure_file( input: '../weston.ini.in', output: 'weston.ini', configuration: weston_ini_config )