1*61046927SAndroid Build Coastguard Worker 2*61046927SAndroid Build Coastguard Worker 3*61046927SAndroid Build Coastguard Workerlibvulkan_lvp = shared_library( 4*61046927SAndroid Build Coastguard Worker 'vulkan_lvp', 5*61046927SAndroid Build Coastguard Worker [ 'lavapipe_target.c' ], 6*61046927SAndroid Build Coastguard Worker vs_module_defs : vulkan_api_def, 7*61046927SAndroid Build Coastguard Worker include_directories : [ inc_src, inc_util, inc_include, inc_gallium, inc_gallium_aux, inc_gallium_winsys, inc_gallium_drivers ], 8*61046927SAndroid Build Coastguard Worker link_whole : [ liblavapipe_st ], 9*61046927SAndroid Build Coastguard Worker link_with : [libpipe_loader_static, libgallium, libwsw, libswdri, libws_null, libswkmsdri ], 10*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 11*61046927SAndroid Build Coastguard Worker link_args : [ld_args_bsymbolic, ld_args_gc_sections], 12*61046927SAndroid Build Coastguard Worker # On Apple systems, "weak" is actually "weak_import", which is slightly different. 13*61046927SAndroid Build Coastguard Worker # The linker still expects a definition for weak symbols at build time, just not at runtime. 14*61046927SAndroid Build Coastguard Worker # We have to forcibly ignore undefined symbols, which unfortunately applies to all symbols. 15*61046927SAndroid Build Coastguard Worker override_options : ['b_lundef=@0@'.format(host_machine.system() == 'darwin' ? 'false' : get_option('b_lundef').to_string())], 16*61046927SAndroid Build Coastguard Worker dependencies : [driver_llvmpipe, idep_mesautil], 17*61046927SAndroid Build Coastguard Worker name_prefix : host_machine.system() == 'windows' ? '' : [], 18*61046927SAndroid Build Coastguard Worker install : true, 19*61046927SAndroid Build Coastguard Worker) 20*61046927SAndroid Build Coastguard Worker 21*61046927SAndroid Build Coastguard Workerif host_machine.system() == 'windows' 22*61046927SAndroid Build Coastguard Worker icd_lib_path = import('fs').relative_to(get_option('bindir'), with_vulkan_icd_dir) 23*61046927SAndroid Build Coastguard Worker icd_file_name = 'vulkan_lvp.dll' 24*61046927SAndroid Build Coastguard Workerelse 25*61046927SAndroid Build Coastguard Worker icd_lib_path = join_paths(get_option('prefix'), get_option('libdir')) 26*61046927SAndroid Build Coastguard Worker icd_file_name = 'libvulkan_lvp.@0@'.format(host_machine.system() == 'darwin' ? 'dylib' : 'so') 27*61046927SAndroid Build Coastguard Workerendif 28*61046927SAndroid Build Coastguard Worker 29*61046927SAndroid Build Coastguard Workericd_command = [ 30*61046927SAndroid Build Coastguard Worker prog_python, '@INPUT0@', 31*61046927SAndroid Build Coastguard Worker '--api-version', '1.3', '--xml', '@INPUT1@', 32*61046927SAndroid Build Coastguard Worker '--lib-path', join_paths(icd_lib_path, icd_file_name), 33*61046927SAndroid Build Coastguard Worker '--out', '@OUTPUT@', 34*61046927SAndroid Build Coastguard Worker] 35*61046927SAndroid Build Coastguard Workerif host_machine.system() == 'windows' 36*61046927SAndroid Build Coastguard Worker icd_command += '--use-backslash' 37*61046927SAndroid Build Coastguard Workerendif 38*61046927SAndroid Build Coastguard Worker 39*61046927SAndroid Build Coastguard Workerlvp_icd = custom_target( 40*61046927SAndroid Build Coastguard Worker 'lvp_icd', 41*61046927SAndroid Build Coastguard Worker input : [vk_icd_gen, vk_api_xml], 42*61046927SAndroid Build Coastguard Worker output : 'lvp_icd.@[email protected]'.format(host_machine.cpu()), 43*61046927SAndroid Build Coastguard Worker command : icd_command, 44*61046927SAndroid Build Coastguard Worker build_by_default : true, 45*61046927SAndroid Build Coastguard Worker install_dir : with_vulkan_icd_dir, 46*61046927SAndroid Build Coastguard Worker install_tag : 'runtime', 47*61046927SAndroid Build Coastguard Worker install : true, 48*61046927SAndroid Build Coastguard Worker) 49*61046927SAndroid Build Coastguard Worker 50*61046927SAndroid Build Coastguard Worker_dev_icdname = 'lvp_devenv_icd.@[email protected]'.format(host_machine.cpu()) 51*61046927SAndroid Build Coastguard Worker_dev_icd = custom_target( 52*61046927SAndroid Build Coastguard Worker 'lvp_devenv_icd', 53*61046927SAndroid Build Coastguard Worker input : [vk_icd_gen, vk_api_xml], 54*61046927SAndroid Build Coastguard Worker output : _dev_icdname, 55*61046927SAndroid Build Coastguard Worker command : [ 56*61046927SAndroid Build Coastguard Worker prog_python, '@INPUT0@', 57*61046927SAndroid Build Coastguard Worker '--api-version', '1.1', '--xml', '@INPUT1@', 58*61046927SAndroid Build Coastguard Worker '--lib-path', meson.current_build_dir() / icd_file_name, 59*61046927SAndroid Build Coastguard Worker '--out', '@OUTPUT@', 60*61046927SAndroid Build Coastguard Worker ], 61*61046927SAndroid Build Coastguard Worker build_by_default : true, 62*61046927SAndroid Build Coastguard Worker) 63*61046927SAndroid Build Coastguard Worker 64*61046927SAndroid Build Coastguard Workerdevenv.append('VK_DRIVER_FILES', _dev_icd.full_path()) 65*61046927SAndroid Build Coastguard Worker# Deprecated: replaced by VK_DRIVER_FILES above 66*61046927SAndroid Build Coastguard Workerdevenv.append('VK_ICD_FILENAMES', _dev_icd.full_path()) 67