This patch also is broken (breaks building just vulkan drivers) patch incoming.
Quoting Dylan Baker (2017-10-11 10:41:17) > Rather than group dependencies in complex groups, use a flatter > structure with split dependencies to avoid checking for the same > dependencies twice. > > Signed-off-by: Dylan Baker <dylanx.c.ba...@intel.com> > --- > meson.build | 199 > ++++++++++++++++++++++----------------------- > src/loader/meson.build | 5 +- > src/vulkan/wsi/meson.build | 10 ++- > 3 files changed, 108 insertions(+), 106 deletions(-) > > diff --git a/meson.build b/meson.build > index 8e5feecd8c0..ff48ff59d09 100644 > --- a/meson.build > +++ b/meson.build > @@ -108,27 +108,6 @@ endif > # TODO: other OSes > with_dri_platform = 'drm' > > -# TODO: conditionalize libdrm requirement > -dep_libdrm = dependency('libdrm', version : '>= 2.4.75') > -pre_args += '-DHAVE_LIBDRM' > - > -with_dri2 = with_dri_platform == 'drm' and dep_libdrm.found() > -with_dri3 = get_option('dri3') > -if with_dri3 == 'auto' > - if host_machine.system() == 'linux' and with_dri2 > - with_dri3 = true > - else > - with_dri3 = false > - endif > -elif with_dri3 == 'yes' > - if not with_dri2 > - error('dri3 support requires libdrm') > - endif > - with_dri3 = true > -else > - with_dri3 = false > -endif > - > # TODO: there are more platforms required for non-vulkan drivers > with_platform_wayland = false > with_platform_x11 = false > @@ -179,6 +158,20 @@ if with_glx != 'disabled' > endif > endif > > +with_dri2 = with_dri and with_dri_platform == 'drm' > +with_dri3 = get_option('dri3') > +if with_dri3 == 'auto' > + if host_machine.system() == 'linux' and with_dri2 > + with_dri3 = true > + else > + with_dri3 = false > + endif > +elif with_dri3 == 'yes' > + with_dri3 = true > +else > + with_dri3 = false > +endif > + > with_glvnd = get_option('glvnd') > if with_glvnd and with_glx != 'dri' > message('glvnd requires dri based glx') > @@ -214,6 +207,44 @@ if with_dri or with_gallium > endif > endif > > +with_gallium_xvmc = false > +with_gallium_vdpau = false > +with_gallium_omx = false # this is bellagio > +with_gallium_va = false > +with_gallium_media = false > +dep_va = [] > +_drivers = get_option('gallium-media') > +if _drivers != '' > + _split = _drivers.split(',') > + with_gallium_xvmc = _split.contains('xvmc') > + with_gallium_vdpau = _split.contains('vdpau') > + with_gallium_omx = _split.contains('omx') > + with_gallium_va = _split.contains('va') > + with_gallium_media = (with_gallium_xvmc or with_gallium_vdpau or > + with_gallium_omx or with_gallium_va) > +endif > + > +if with_platform_x11 > + if with_any_vk or (with_glx == 'dri' and with_dri_platform == 'drm') > + pre_args += '-DHAVE_X11_PLATFORM' > + endif > + if with_glx == 'xlib' > + # TODO > + error('TODO') > + elif with_glx == 'gallium-xlib' > + # TODO > + error('TODO') > + else > + pre_args += '-DGLX_INDIRECT_RENDERING' > + if with_glx_direct > + pre_args += '-DGLX_DIRECT_RENDERING' > + endif > + if with_dri_platform == 'drm' > + pre_args += '-DGLX_USE_DRM' > + endif > + endif > +endif > + > prog_python2 = find_program('python2') > has_mako = run_command(prog_python2, '-c', 'import mako') > if has_mako.returncode() != 0 > @@ -483,10 +514,19 @@ else > dep_clock = cc.find_library('rt') > endif > > +# TODO: conditionalize libdrm requirement > +dep_libdrm = dependency('libdrm', version : '>= 2.4.75', > + required : with_dri2 or with_dri3) > +if dep_libdrm.found() > + pre_args += '-DHAVE_LIBDRM' > +endif > + > # TODO: some of these may be conditional > dep_zlib = dependency('zlib', version : '>= 1.2.3') > dep_thread = dependency('threads') > -pre_args += '-DHAVE_PTHREAD' > +if dep_thread.found() and host_machine.system() == 'linux' > + pre_args += '-DHAVE_PTHREAD' > +endif > dep_elf = dependency('libelf', required : false) > if not dep_elf.found() > dep_elf = cc.find_library('elf', required : with_amd_vk) # TODO: clover, > r600, radeonsi > @@ -495,27 +535,19 @@ dep_expat = dependency('expat') > # this only exists on linux so either this is linux and it will be found, or > # its not linux and and wont > dep_m = cc.find_library('m', required : false) > - > -dep_libdrm_amdgpu = [] > -if with_amd_vk > - dep_libdrm_amdgpu = dependency('libdrm_amdgpu', version : '>= 2.4.82') > -endif > +dep_libdrm_amdgpu = dependency('libdrm_amdgpu', version : '>= 2.4.82', > required : with_amd_vk) > > llvm_modules = ['bitwriter', 'engine', 'mcdisassembler', 'mcjit'] > if with_amd_vk > llvm_modules += ['amdgpu', 'bitreader', 'ipo'] > endif > dep_llvm = dependency( > - 'llvm', version : '>= 3.9.0', required : false, modules : llvm_modules, > + 'llvm', version : '>= 3.9.0', required : with_amd_vk, modules : > llvm_modules, > ) > -if not dep_llvm.found() > - if with_amd_vk > - error('Radv requires llvm.') > - endif > -else > +if dep_llvm.found() > _llvm_version = dep_llvm.version().split('.') > # Development versions of LLVM have an 'svn' suffix, we don't want that for > - # our version checks. > + # our version checks. This is fixed in 0.43.0 > _llvm_patch = _llvm_version[2] > if _llvm_patch.endswith('svn') > _llvm_patch = _llvm_patch.split('s')[0] > @@ -577,63 +609,47 @@ else > dep_wayland_server = [] > endif > > +dep_x11 = [] > +dep_xext = [] > +dep_xdamage = [] > +dep_xfixes = [] > +dep_x11_xcb = [] > +dep_xcb_glx = [] > dep_xcb_dri2 = [] > dep_xcb_dri3 = [] > dep_dri2proto = [] > dep_glproto = [] > -dep_x11 = [] > dep_xf86vm = [] > +dep_xcb_dri3 = [] > +dep_xcb_present = [] > +dep_xcb_sync = [] > +dep_xshmfence = [] > if with_platform_x11 > - if with_glx == 'xlib' > - # TODO > - error('TODO') > - elif with_glx == 'gallium-xlib' > - # TODO > - error('TODO') > - else > - pre_args += '-DGLX_INDIRECT_RENDERING' > - if with_glx_direct > - pre_args += '-DGLX_DIRECT_RENDERING' > - endif > - if with_dri_platform == 'drm' > - pre_args += '-DGLX_USE_DRM' > - dep_dri2proto = dependency('dri2proto', version : '>= 2.8') > - dep_x11 = [ > - dependency('x11'), > - dependency('xext'), > - dependency('xdamage', version : '>= 1.1'), > - dependency('xfixes'), > - dependency('x11-xcb'), > - dependency('xcb'), > - dependency('xcb-glx', version : '>= 1.8.1'), > - ] > - > - dep_xf86vm = dependency('xf86vm', required : false) > - endif > - # TODO: XF86VIDMODE > - endif > - if with_glx != 'disabled' > - dep_glproto = dependency('glproto', version : '>= 1.4.14') > + if with_glx == 'dri' and with_dri_platform == 'drm' > + dep_x11 = dependency('x11') > + dep_xext = dependency('xext') > + dep_xdamage = dependency('xdamage', version : '>= 1.1') > + dep_xfixes = dependency('xfixes') > + dep_x11_xcb = dependency('x11-xcb') > + dep_xcb = dependency('xcb') > + dep_xcb_glx = dependency('xcb-glx', version : '>= 1.8.1') > + dep_xf86vm = dependency('xf86vm', required : false) > endif > if with_any_vk or (with_glx == 'dri' and with_dri_platform == 'drm') > - dep_xcb_dri2 = [ > - dependency('x11-xcb'), > - dependency('xcb'), > - dependency('xcb-dri2', version : '>= 1.8'), > - dependency('xcb-xfixes'), > - ] > - pre_args += '-DHAVE_X11_PLATFORM' > + dep_xcb_dri2 = dependency('xcb-dri2', version : '>= 1.8') > + > if with_dri3 > pre_args += '-DHAVE_DRI3' > - dep_xcb_dri3 = [ > - dep_xcb_dri2, > - dependency('xcb-dri3'), > - dependency('xcb-present'), > - dependency('xcb-sync'), > - dependency('xshmfence', version : '>= 1.1'), > - ] > + dep_xcb_dri3 = dependency('xcb-dri3') > + dep_xcb_present = dependency('xcb-present') > + dep_xcb_sync = dependency('xcb-sync') > + dep_xshmfence = dependency('xshmfence', version : '>= 1.1') > endif > endif > + if with_glx != 'disabled' > + dep_dri2proto = dependency('dri2proto', version : '>= 2.8') > + dep_glproto = dependency('glproto', version : '>= 1.4.14') > + endif > endif > > # TODO: platforms for !vulkan > @@ -649,31 +665,6 @@ endif > # TODO: clover > > # TODO: egl sans x11 > - > -with_gallium_xvmc = false > -with_gallium_vdpau = false > -with_gallium_omx = false # this is bellagio > -with_gallium_va = false > -with_gallium_media = false > -dep_va = [] > -_drivers = get_option('gallium-media') > -if _drivers != '' > - _split = _drivers.split(',') > - with_gallium_xvmc = _split.contains('xvmc') > - with_gallium_vdpau = _split.contains('vdpau') > - with_gallium_omx = _split.contains('omx') > - with_gallium_va = _split.contains('va') > - with_gallium_media = (with_gallium_xvmc or with_gallium_vdpau or > - with_gallium_omx or with_gallium_va) > - if with_gallium_media > - dep_va = [ > - dependency('x11-xcb'), > - dependency('xcb'), > - dependency('xcb-dri2', version : '>= 1.8'), # FIXME: dedup version > - ] > - endif > -endif > - > # TODO: gallium tests > > # TODO: various libdirs > diff --git a/src/loader/meson.build b/src/loader/meson.build > index 425620372aa..2f97cdc83bf 100644 > --- a/src/loader/meson.build > +++ b/src/loader/meson.build > @@ -26,7 +26,10 @@ if with_platform_x11 and with_dri3 > ['loader_dri3_helper.c', 'loader_dri3_helper.h'], > c_args : c_vis_args, > include_directories : inc_include, > - dependencies : [dep_xcb_dri3, dep_libdrm], > + dependencies : [ > + dep_xshmfence, dep_xcb_present, dep_xcb_dri3, dep_xcb_sync, > dep_x11_xcb, > + dep_xext, dep_xdamage, dep_xcb_glx, dep_libdrm, > + ], > build_by_default : false, > ) > else > diff --git a/src/vulkan/wsi/meson.build b/src/vulkan/wsi/meson.build > index 517f50f2158..c42af8e4cde 100644 > --- a/src/vulkan/wsi/meson.build > +++ b/src/vulkan/wsi/meson.build > @@ -41,7 +41,15 @@ files_vulkan_wsi = files( > ) > if with_platform_x11 > vulkan_wsi_args += ['-DVK_USE_PLATFORM_XCB_KHR', > '-DVK_USE_PLATFORM_XLIB_KHR'] > - vulkan_wsi_deps += dep_xcb_dri3 > + vulkan_wsi_deps += [ > + dep_xcb, > + dep_x11_xcb, > + dep_xcb_dri2, > + dep_xcb_dri3, > + dep_xcb_present, > + dep_xcb_sync, > + dep_xshmfence, > + ] > files_vulkan_wsi += files( > 'wsi_common_x11.c', > 'wsi_common_x11.h', > -- > 2.14.2 >
signature.asc
Description: signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev