meson.build revision 7ec681f3
101e04c3fSmrg# Copyright © 2017 Intel Corporation 201e04c3fSmrg 301e04c3fSmrg# Permission is hereby granted, free of charge, to any person obtaining a copy 401e04c3fSmrg# of this software and associated documentation files (the "Software"), to deal 501e04c3fSmrg# in the Software without restriction, including without limitation the rights 601e04c3fSmrg# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 701e04c3fSmrg# copies of the Software, and to permit persons to whom the Software is 801e04c3fSmrg# furnished to do so, subject to the following conditions: 901e04c3fSmrg 1001e04c3fSmrg# The above copyright notice and this permission notice shall be included in 1101e04c3fSmrg# all copies or substantial portions of the Software. 1201e04c3fSmrg 1301e04c3fSmrg# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1401e04c3fSmrg# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1501e04c3fSmrg# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 1601e04c3fSmrg# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1701e04c3fSmrg# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 1801e04c3fSmrg# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 1901e04c3fSmrg# SOFTWARE. 2001e04c3fSmrg 2101e04c3fSmrglibaub = static_library( 2201e04c3fSmrg 'aub', 2301e04c3fSmrg files('aub_read.c', 'aub_mem.c'), 247ec681f3Smrg include_directories : [inc_include, inc_src, inc_intel], 257ec681f3Smrg dependencies : idep_mesautil, 267ec681f3Smrg link_with : [libintel_common, libintel_dev], 277ec681f3Smrg c_args : [no_override_init_args], 287ec681f3Smrg gnu_symbol_visibility : 'hidden', 2901e04c3fSmrg install : false 3001e04c3fSmrg) 3101e04c3fSmrg 3201e04c3fSmrgaubinator = executable( 3301e04c3fSmrg 'aubinator', 3401e04c3fSmrg files('aubinator.c'), 357ec681f3Smrg dependencies : [idep_mesautil, dep_expat, dep_zlib, dep_dl, dep_thread, dep_m], 367ec681f3Smrg include_directories : [inc_include, inc_src, inc_intel], 377ec681f3Smrg link_with : [libintel_common, libintel_compiler, libintel_dev, libaub], 387ec681f3Smrg c_args : [no_override_init_args], 397ec681f3Smrg gnu_symbol_visibility : 'hidden', 4001e04c3fSmrg install : true 4101e04c3fSmrg) 4201e04c3fSmrg 4301e04c3fSmrgaubinator_error_decode = executable( 4401e04c3fSmrg 'aubinator_error_decode', 4501e04c3fSmrg files('aubinator_error_decode.c'), 467ec681f3Smrg dependencies : [idep_mesautil, dep_zlib, dep_thread], 477ec681f3Smrg include_directories : [inc_include, inc_src, inc_intel], 487ec681f3Smrg link_with : [libintel_common, libintel_compiler, libintel_dev], 497ec681f3Smrg c_args : [no_override_init_args], 507ec681f3Smrg gnu_symbol_visibility : 'hidden', 5101e04c3fSmrg install : true 5201e04c3fSmrg) 5301e04c3fSmrg 5401e04c3fSmrgi965_disasm = executable( 5501e04c3fSmrg 'i965_disasm', 5601e04c3fSmrg files('i965_disasm.c'), 577ec681f3Smrg dependencies : [idep_mesautil, dep_thread], 587ec681f3Smrg include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_intel], 597ec681f3Smrg link_with : [libintel_common, libintel_compiler, libintel_dev], 607ec681f3Smrg c_args : [no_override_init_args], 617ec681f3Smrg gnu_symbol_visibility : 'hidden', 6201e04c3fSmrg install : true 6301e04c3fSmrg) 6401e04c3fSmrg 6501e04c3fSmrgerror2aub = executable( 6601e04c3fSmrg 'intel_error2aub', 6701e04c3fSmrg files('aub_write.h', 'aub_write.c', 'error2aub.c'), 6801e04c3fSmrg dependencies : [dep_zlib, dep_dl, dep_thread, dep_m], 697ec681f3Smrg include_directories : [inc_include, inc_src, inc_intel], 7001e04c3fSmrg link_with : [libintel_dev], 717ec681f3Smrg c_args : [no_override_init_args], 727ec681f3Smrg gnu_symbol_visibility : 'hidden', 7301e04c3fSmrg install : true 7401e04c3fSmrg) 7501e04c3fSmrg 7601e04c3fSmrgsanitize_data = configuration_data() 7701e04c3fSmrgsanitize_data.set( 7801e04c3fSmrg 'install_libexecdir', 7901e04c3fSmrg join_paths(get_option('prefix'), get_option('libexecdir')) 8001e04c3fSmrg) 817ec681f3Smrgsanitize_data.set( 827ec681f3Smrg 'install_libdir', 837ec681f3Smrg join_paths(get_option('prefix'), get_option('libdir')) 847ec681f3Smrg) 8501e04c3fSmrgconfigure_file( 869f464c52Smaya input : 'intel_sanitize_gpu.in', 879f464c52Smaya output : '@BASENAME@', 889f464c52Smaya install_dir : get_option('bindir'), 899f464c52Smaya install : true, 909f464c52Smaya configuration : sanitize_data 9101e04c3fSmrg) 9201e04c3fSmrg 9301e04c3fSmrglibintel_sanitize_gpu = shared_library( 9401e04c3fSmrg 'intel_sanitize_gpu', 9501e04c3fSmrg files('intel_sanitize_gpu.c'), 967ec681f3Smrg dependencies : [idep_mesautil, dep_dl, dep_thread], 977ec681f3Smrg include_directories : [inc_include, inc_src, inc_intel], 987ec681f3Smrg link_with : libintel_common, 997ec681f3Smrg c_args : [no_override_init_args, c_sse2_args], 1007ec681f3Smrg gnu_symbol_visibility : 'hidden', 1019f464c52Smaya install_dir : get_option('libexecdir'), 1029f464c52Smaya install : true 10301e04c3fSmrg) 10401e04c3fSmrg 10501e04c3fSmrgconfigure_file( 10601e04c3fSmrg input : 'intel_dump_gpu.in', 10701e04c3fSmrg output : '@BASENAME@', 1089f464c52Smaya install_dir : get_option('bindir'), 1099f464c52Smaya configuration : sanitize_data, 1109f464c52Smaya install : true 11101e04c3fSmrg) 11201e04c3fSmrg 11301e04c3fSmrglibintel_dump_gpu = shared_library( 11401e04c3fSmrg 'intel_dump_gpu', 1159f464c52Smaya files( 1167ec681f3Smrg 'intel_context.h', 'gfx8_context.h', 'gfx10_context.h', 'intel_aub.h', 1179f464c52Smaya 'aub_write.h', 'aub_write.c', 'intel_dump_gpu.c', 1189f464c52Smaya ), 1197ec681f3Smrg dependencies : [dep_dl, idep_mesautil], 1207ec681f3Smrg include_directories : [inc_include, inc_src, inc_intel], 12101e04c3fSmrg link_with : libintel_dev, 1227ec681f3Smrg c_args : [no_override_init_args], 1237ec681f3Smrg gnu_symbol_visibility : 'hidden', 1249f464c52Smaya install_dir : get_option('libexecdir'), 1259f464c52Smaya install : true 12601e04c3fSmrg) 12701e04c3fSmrg 1287ec681f3Smrgif with_tools.contains('drm-shim') 1297ec681f3Smrg configure_file( 1307ec681f3Smrg input : 'intel_stub_gpu.in', 1317ec681f3Smrg output : '@BASENAME@', 1327ec681f3Smrg install_dir : get_option('bindir'), 1337ec681f3Smrg configuration : sanitize_data, 1347ec681f3Smrg install : true 1357ec681f3Smrg ) 1367ec681f3Smrg 1377ec681f3Smrg libintel_stub_gpu = shared_library( 1387ec681f3Smrg ['intel_noop_drm_shim'], 1397ec681f3Smrg 'intel_noop_drm_shim.c', 1407ec681f3Smrg include_directories: [inc_include, inc_src, inc_intel], 1417ec681f3Smrg link_with: libintel_dev, 1427ec681f3Smrg dependencies: [dep_libdrm, dep_drm_shim, idep_mesautil, idep_libintel_common], 1437ec681f3Smrg gnu_symbol_visibility : 'hidden', 1447ec681f3Smrg install : true, 1457ec681f3Smrg ) 1467ec681f3Smrgendif 1477ec681f3Smrg 14801e04c3fSmrgif with_tools.contains('intel-ui') 14901e04c3fSmrg subdir('imgui') 15001e04c3fSmrg 15101e04c3fSmrg aubinator_viewer = executable( 15201e04c3fSmrg 'aubinator_viewer', 15301e04c3fSmrg files('aubinator_viewer.cpp', 'aubinator_viewer_decoder.cpp'), 1547ec681f3Smrg dependencies : [idep_mesautil, dep_zlib, dep_dl, dep_thread, dep_m, libintel_imgui_gtk_dep], 1557ec681f3Smrg include_directories : [inc_include, inc_src, inc_intel], 1567ec681f3Smrg link_with : [libintel_common, libintel_compiler, libintel_dev, libaub], 1577ec681f3Smrg c_args : [no_override_init_args], 1587ec681f3Smrg gnu_symbol_visibility : 'hidden', 1599f464c52Smaya cpp_args : ['-fpermissive', '-Wno-parentheses', '-Wno-class-memaccess'], 16001e04c3fSmrg install : true 16101e04c3fSmrg ) 16201e04c3fSmrgendif 1637ec681f3Smrg 1647ec681f3Smrgbison_command = [] 1657ec681f3Smrgif yacc_is_bison 1667ec681f3Smrg bison_command = [ 1677ec681f3Smrg prog_bison, '@INPUT@', '--defines=@OUTPUT1@', 1687ec681f3Smrg '--output=@OUTPUT0@' 1697ec681f3Smrg ] 1707ec681f3Smrgelse 1717ec681f3Smrg bison_command = [ 1727ec681f3Smrg prog_bison, '-H', '@OUTPUT1@', 1737ec681f3Smrg '-o', '@OUTPUT0@', '@INPUT@' 1747ec681f3Smrg ] 1757ec681f3Smrgendif 1767ec681f3Smrg 1777ec681f3Smrgi965_gram_tab = custom_target( 1787ec681f3Smrg 'i965_gram.tab.[ch]', 1797ec681f3Smrg input : 'i965_gram.y', 1807ec681f3Smrg output : ['i965_gram.tab.c', 'i965_gram.tab.h'], 1817ec681f3Smrg command : bison_command 1827ec681f3Smrg) 1837ec681f3Smrg 1847ec681f3Smrgi965_lex_yy_c = custom_target( 1857ec681f3Smrg 'i965_lex.yy.c', 1867ec681f3Smrg input : 'i965_lex.l', 1877ec681f3Smrg output : 'i965_lex.yy.c', 1887ec681f3Smrg command : [prog_flex, '-o', '@OUTPUT@', '@INPUT@'] 1897ec681f3Smrg) 1907ec681f3Smrg 1917ec681f3Smrgi965_asm = executable( 1927ec681f3Smrg 'i965_asm', 1937ec681f3Smrg ['i965_asm.c', i965_gram_tab[0], i965_gram_tab[1], i965_lex_yy_c], 1947ec681f3Smrg dependencies : [idep_mesautil, dep_thread], 1957ec681f3Smrg include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_intel], 1967ec681f3Smrg link_with : [libintel_common, libintel_compiler, libintel_dev], 1977ec681f3Smrg c_args : [no_override_init_args], 1987ec681f3Smrg gnu_symbol_visibility : 'hidden', 1997ec681f3Smrg install : true 2007ec681f3Smrg) 2017ec681f3Smrg 2027ec681f3Smrgasm_testcases = [ 2037ec681f3Smrg ['brw', 'gfx4'], 2047ec681f3Smrg ['g4x', 'gfx4.5'], 2057ec681f3Smrg ['ilk', 'gfx5'], 2067ec681f3Smrg ['snb', 'gfx6'], 2077ec681f3Smrg ['ivb', 'gfx7'], 2087ec681f3Smrg ['hsw', 'gfx7.5'], 2097ec681f3Smrg ['bdw', 'gfx8'], 2107ec681f3Smrg ['skl', 'gfx9'], 2117ec681f3Smrg ['icl', 'gfx11'], 2127ec681f3Smrg] 2137ec681f3Smrg 2147ec681f3Smrgtest_runner = find_program('tests/run-test.py') 2157ec681f3Smrgforeach testcase : asm_testcases 2167ec681f3Smrg _gen_name = testcase[0] 2177ec681f3Smrg _gen_num = testcase[1] 2187ec681f3Smrg _gen_folder = join_paths(meson.current_source_dir(), 'tests', _gen_num) 2197ec681f3Smrg test( 2207ec681f3Smrg 'i965_asm_' + _gen_num, test_runner, 2217ec681f3Smrg args : [ 2227ec681f3Smrg '--i965_asm', i965_asm, 2237ec681f3Smrg '--gen_name', _gen_name, 2247ec681f3Smrg '--gen_folder', _gen_folder, 2257ec681f3Smrg ], 2267ec681f3Smrg suite : 'intel', 2277ec681f3Smrg ) 2287ec681f3Smrgendforeach 229