diff options
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 118 |
1 files changed, 28 insertions, 90 deletions
diff --git a/meson.build b/meson.build index 655eb52d..8458a66c 100644 --- a/meson.build +++ b/meson.build @@ -3,7 +3,7 @@ project( 'c', version: '0.0.1', license: 'MIT', - meson_version: '>=0.44.0', + meson_version: '>=0.47.0', default_options: [ 'c_std=c11', 'warning_level=2', @@ -18,15 +18,7 @@ so_version = ['0', '0', '0'] add_project_arguments('-Wno-unused-parameter', language: 'c') add_project_arguments( - '-DWLR_SRC_DIR="@0@"'.format(meson.source_root()), - language: 'c', -) -add_project_arguments( - '-I@0@'.format(meson.build_root()), - language: 'c', -) -add_project_link_arguments( - '-Wl,-rpath,@0@'.format(meson.build_root()), + '-DWLR_SRC_DIR="@0@"'.format(meson.current_source_dir()), language: 'c', ) add_project_arguments( @@ -36,7 +28,7 @@ add_project_arguments( conf_data = configuration_data() -wlr_inc = include_directories('include') +wlr_inc = include_directories('.', 'include') cc = meson.get_compiler('c') @@ -62,90 +54,37 @@ libinput = dependency('libinput', version: '>=1.7.0') xkbcommon = dependency('xkbcommon') udev = dependency('libudev') pixman = dependency('pixman-1') -libcap = dependency('libcap', required: get_option('enable-libcap') == 'true') -systemd = dependency('libsystemd', required: get_option('enable-systemd') == 'true') -elogind = dependency('libelogind', required: get_option('enable-elogind') == 'true') +libcap = dependency('libcap', required: get_option('libcap')) +logind = dependency('lib' + get_option('logind-provider'), required: get_option('logind')) math = cc.find_library('m', required: false) -exclude_headers = [] wlr_parts = [] wlr_deps = [] -if libcap.found() and get_option('enable-libcap') != 'false' +if libcap.found() conf_data.set('WLR_HAS_LIBCAP', true) wlr_deps += libcap endif -if systemd.found() and get_option('enable-systemd') != 'false' - conf_data.set('WLR_HAS_SYSTEMD', true) - wlr_deps += systemd -endif - -if elogind.found() and get_option('enable-elogind') != 'false' - conf_data.set('WLR_HAS_ELOGIND', true) -endif - -if get_option('enable-x11_backend') or get_option('enable-xwayland') - xcb = dependency('xcb') - xcb_composite = dependency('xcb-composite') - xcb_xfixes = dependency('xcb-xfixes') - xcb_image = dependency('xcb-image') - xcb_render = dependency('xcb-render') - x11_xcb = dependency('x11-xcb') - - xcb_icccm = dependency('xcb-icccm', required: false) - xcb_xkb = dependency('xcb-xkb', required: false) - xcb_errors = dependency('xcb-errors', required: get_option('enable-xcb_errors') == 'true') - - if xcb_icccm.found() - conf_data.set('WLR_HAS_XCB_ICCCM', true) - endif - - if xcb_xkb.found() - conf_data.set('WLR_HAS_XCB_XKB', true) - endif - - if xcb_errors.found() and get_option('enable-xcb_errors') != 'false' - conf_data.set('WLR_HAS_XCB_ERRORS', true) - endif - - wlr_deps += [ - xcb, - xcb_composite, - x11_xcb, - ] -else - add_project_arguments('-DMESA_EGL_NO_X11_HEADERS', language: 'c') -endif - -if get_option('enable-x11_backend') - conf_data.set('WLR_HAS_X11_BACKEND', true) -endif - -if get_option('enable-xwayland') - subdir('xwayland') - wlr_parts += [lib_wlr_xwayland] - conf_data.set('WLR_HAS_XWAYLAND', true) -else - exclude_headers += 'xwayland.h' +if logind.found() + conf_data.set('WLR_HAS_' + get_option('logind-provider').to_upper(), true) + wlr_deps += logind endif if cc.has_header_symbol('fcntl.h', 'posix_fallocate', prefix: '#define _POSIX_C_SOURCE 200112L') conf_data.set('WLR_HAS_POSIX_FALLOCATE', true) endif -includedir = get_option('includedir') -exclude_headers += 'meson.build' -install_subdir('include/wlr', install_dir: includedir, exclude_files: exclude_headers) - - -subdir('include') subdir('protocol') subdir('render') + subdir('backend') subdir('types') subdir('util') subdir('xcursor') +subdir('xwayland') + +subdir('include') wlr_parts += [ lib_wl_protos, @@ -182,6 +121,7 @@ lib_wlr = library( include_directories: wlr_inc, install: true, link_args : symbols_flag, + link_depends: symbols_file, ) wlroots = declare_dependency( @@ -190,7 +130,6 @@ wlroots = declare_dependency( include_directories: wlr_inc, ) - summary = [ '', '----------------', @@ -208,14 +147,8 @@ summary = [ ] message('\n'.join(summary)) - -if get_option('enable-rootston') - subdir('rootston') -endif - -if get_option('enable-examples') - subdir('examples') -endif +subdir('examples') +subdir('rootston') pkgconfig = import('pkgconfig') pkgconfig.generate( @@ -230,26 +163,31 @@ git = find_program('git', required: false) if git.found() all_files = run_command( git, - ['--git-dir=@0@/.git'.format(meson.current_source_dir()), - 'ls-files', - ':/*.[ch]']) + '--git-dir=@0@/.git'.format(meson.current_source_dir()), + 'ls-files', + ':/*.[ch]', + ) all_files = files(all_files.stdout().split()) etags = find_program('etags', required: false) if etags.found() and all_files.length() > 0 - custom_target('etags', + custom_target( + 'etags', build_by_default: true, input: all_files, output: 'TAGS', - command: [etags.path(), '-o', 'TAGS'] + all_files) + command: [etags, '-o', '@OUTPUT@', '@INPUT@'], + ) endif ctags = find_program('ctags', required: false) if ctags.found() and all_files.length() > 0 - custom_target('ctags', + custom_target( + 'ctags', build_by_default: true, input: all_files, output: 'tags', - command: [ctags.path(), '-f', 'tags'] + all_files) + command: [ctags, '-f', '@OUTPUT@', '@INPUT@'], + ) endif endif |