with_asm = get_option('asm')
with_osmesa = get_option('osmesa')
with_swr_arches = get_option('swr-arches').split(',')
+with_tools = get_option('tools').split(',')
+if with_tools.contains('all')
+ with_tools = ['freedreno', 'glsl', 'intel', 'nir', 'nouveau']
+endif
if get_option('texture-float')
pre_args += '-DTEXTURE_FLOAT_ENABLED'
message('WARNING: Floating-point texture enabled. Please consult docs/patents.txt and your lawyer before building mesa.')
else
error('Unknown architecture. Please pass -Ddri-drivers to set driver options. Patches gladly accepted to fix this.')
endif
- elif ['darwin', 'windows', 'cygwin'].contains(host_machine.system())
+ elif ['darwin', 'windows', 'cygwin', 'haiku'].contains(host_machine.system())
# only swrast would make sense here, but gallium swrast is a much better default
_drivers = ''
else
else
error('Unknown architecture. Please pass -Dgallium-drivers to set driver options. Patches gladly accepted to fix this.')
endif
- elif ['darwin', 'windows', 'cygwin'].contains(host_machine.system())
+ elif ['darwin', 'windows', 'cygwin', 'haiku'].contains(host_machine.system())
_drivers = 'swrast'
else
error('Unknown OS. Please pass -Dgallium-drivers to set driver options. Patches gladly accepted to fix this.')
else
error('Unknown architecture. Please pass -Dvulkan-drivers to set driver options. Patches gladly accepted to fix this.')
endif
- elif ['darwin', 'windows', 'cygwin'].contains(host_machine.system())
+ elif ['darwin', 'windows', 'cygwin', 'haiku'].contains(host_machine.system())
# No vulkan driver supports windows or macOS currently
_vulkan_drivers = ''
else
_platforms = 'x11,wayland,drm,surfaceless'
elif ['darwin', 'windows', 'cygwin'].contains(host_machine.system())
_platforms = 'x11,surfaceless'
+ elif ['haiku'].contains(host_machine.system())
+ _platforms = 'haiku'
else
error('Unknown OS. Please pass -Dplatforms to set platforms. Patches gladly accepted to fix this.')
endif
with_platform_x11 = _split.contains('x11')
with_platform_wayland = _split.contains('wayland')
with_platform_drm = _split.contains('drm')
+ with_platform_haiku = _split.contains('haiku')
with_platform_surfaceless = _split.contains('surfaceless')
egl_native_platform = _split[0]
endif
if with_glx == 'auto'
if with_dri
with_glx = 'dri'
+ elif with_platform_haiku
+ with_glx = 'disabled'
elif with_gallium
# Even when building just gallium drivers the user probably wants dri
with_glx = 'dri'
with_shared_glapi = false
endif
-with_gbm = get_option('gbm')
-if with_gbm == 'auto' and with_dri # TODO: or gallium
- with_gbm = system_has_kms_drm
-elif with_gbm == 'true'
- if not system_has_kms_drm
- error('GBM only supports DRM/KMS platforms')
- endif
- with_gbm = true
+_gbm = get_option('gbm')
+if _gbm == 'auto'
+ with_gbm = system_has_kms_drm and with_dri
else
- with_gbm = false
+ with_gbm = _gbm == 'true'
+endif
+if with_gbm and not system_has_kms_drm
+ error('GBM only supports DRM/KMS platforms')
endif
_egl = get_option('egl')
endif
with_dri2 = (with_dri or with_any_vk) and with_dri_platform == 'drm'
-with_dri3 = get_option('dri3')
-if with_dri3 == 'auto'
+_dri3 = get_option('dri3')
+if _dri3 == 'auto'
with_dri3 = system_has_kms_drm and with_dri2
else
- with_dri3 = with_dri3 == 'true'
+ with_dri3 = _dri3 == 'true'
endif
if with_any_vk and (with_platform_x11 and not with_dri3)
error('Vulkan drivers require dri3 for X11 support')
endif
if with_dri or with_gallium
- if with_glx == 'disabled' and not with_egl
+ if with_glx == 'disabled' and not with_egl and not with_platform_haiku
error('building dri or gallium drivers require at least one window system')
endif
endif
dep_xvmc = []
if with_gallium_xvmc
dep_xvmc = dependency('xvmc', version : '>= 1.0.6')
- dep_xvmc = declare_dependency(
- compile_args : run_command(prog_pkgconfig, ['xvmc', '--cflags']).stdout().split()
- )
endif
xvmc_drivers_path = get_option('xvmc-libs-path')
endif
endif
endif
-if with_gallium_omx
- dep_omx = declare_dependency(
- compile_args : run_command(prog_pkgconfig, ['libomxil-bellagio', '--cflags']).stdout().split()
- )
-endif
_va = get_option('gallium-va')
if not system_has_kms_drm
dep_va = []
if with_gallium_va
dep_va = dependency('libva', version : '>= 0.38.0')
- dep_va = declare_dependency(
+ dep_va_headers = declare_dependency(
compile_args : run_command(prog_pkgconfig, ['libva', '--cflags']).stdout().split()
)
endif
]
pre_args += '-DHAVE_ANDROID_PLATFORM'
endif
+if with_platform_haiku
+ pre_args += '-DHAVE_HAIKU_PLATFORM'
+endif
prog_python2 = find_program('python2')
has_mako = run_command(prog_python2, '-c', 'import mako')
dep_libdrm_etnaviv = []
dep_libdrm_freedreno = []
if with_amd_vk or with_gallium_radeonsi
- dep_libdrm_amdgpu = dependency('libdrm_amdgpu', version : '>= 2.4.89')
+ dep_libdrm_amdgpu = dependency('libdrm_amdgpu', version : '>= 2.4.90')
endif
if (with_gallium_radeonsi or with_dri_r100 or with_dri_r200 or
with_gallium_r300 or with_gallium_r600)
# TODO: optional modules
endif
-if with_amd_vk or with_gallium_radeonsi
+if with_amd_vk or with_gallium_radeonsi or with_gallium_swr
_llvm_version = '>= 4.0.0'
-elif with_gallium_opencl or with_gallium_swr or with_gallium_r600
+elif with_gallium_opencl or with_gallium_r600
_llvm_version = '>= 3.9.0'
else
_llvm_version = '>= 3.3.0'
pkg = import('pkgconfig')
+env_test = environment()
+env_test.set('NM', find_program('nm').path())
+
subdir('include')
subdir('bin')
subdir('src')