diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-08-23 21:00:58 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2018-08-23 21:00:58 -0400 |
commit | 9c886f20b97b6ab1ac85b849f1fe7f16eb199ff0 (patch) | |
tree | 7376c651ff0c75daf64bbc086858239a1d51f50b /meson.build | |
parent | dea311992eb4ff3e343c3cf5b0603034223d2a42 (diff) |
Revert "Merge pull request #1194 from ascent12/meson_feature"
This breaks wlroots when used as a meson subproject.
This reverts commit dea311992eb4ff3e343c3cf5b0603034223d2a42, reversing
changes made to 6db9c4b74667c1d917d720f5e96985a2461569fb.
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 118 |
1 files changed, 90 insertions, 28 deletions
diff --git a/meson.build b/meson.build index 8458a66c..655eb52d 100644 --- a/meson.build +++ b/meson.build @@ -3,7 +3,7 @@ project( 'c', version: '0.0.1', license: 'MIT', - meson_version: '>=0.47.0', + meson_version: '>=0.44.0', default_options: [ 'c_std=c11', 'warning_level=2', @@ -18,7 +18,15 @@ so_version = ['0', '0', '0'] add_project_arguments('-Wno-unused-parameter', language: 'c') add_project_arguments( - '-DWLR_SRC_DIR="@0@"'.format(meson.current_source_dir()), + '-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()), language: 'c', ) add_project_arguments( @@ -28,7 +36,7 @@ add_project_arguments( conf_data = configuration_data() -wlr_inc = include_directories('.', 'include') +wlr_inc = include_directories('include') cc = meson.get_compiler('c') @@ -54,37 +62,90 @@ libinput = dependency('libinput', version: '>=1.7.0') xkbcommon = dependency('xkbcommon') udev = dependency('libudev') pixman = dependency('pixman-1') -libcap = dependency('libcap', required: get_option('libcap')) -logind = dependency('lib' + get_option('logind-provider'), required: get_option('logind')) +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') math = cc.find_library('m', required: false) +exclude_headers = [] wlr_parts = [] wlr_deps = [] -if libcap.found() +if libcap.found() and get_option('enable-libcap') != 'false' conf_data.set('WLR_HAS_LIBCAP', true) wlr_deps += libcap endif -if logind.found() - conf_data.set('WLR_HAS_' + get_option('logind-provider').to_upper(), true) - wlr_deps += logind +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' 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, @@ -121,7 +182,6 @@ lib_wlr = library( include_directories: wlr_inc, install: true, link_args : symbols_flag, - link_depends: symbols_file, ) wlroots = declare_dependency( @@ -130,6 +190,7 @@ wlroots = declare_dependency( include_directories: wlr_inc, ) + summary = [ '', '----------------', @@ -147,8 +208,14 @@ summary = [ ] message('\n'.join(summary)) -subdir('examples') -subdir('rootston') + +if get_option('enable-rootston') + subdir('rootston') +endif + +if get_option('enable-examples') + subdir('examples') +endif pkgconfig = import('pkgconfig') pkgconfig.generate( @@ -163,31 +230,26 @@ 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, '-o', '@OUTPUT@', '@INPUT@'], - ) + command: [etags.path(), '-o', 'TAGS'] + all_files) 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, '-f', '@OUTPUT@', '@INPUT@'], - ) + command: [ctags.path(), '-f', 'tags'] + all_files) endif endif |