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
2101e04c3fSmrgfiles_etnaviv = files(
2201e04c3fSmrg  'hw/cmdstream.xml.h',
2301e04c3fSmrg  'hw/common.xml.h',
2401e04c3fSmrg  'hw/common_3d.xml.h',
2501e04c3fSmrg  'hw/isa.xml.h',
2601e04c3fSmrg  'hw/state_3d.xml.h',
2701e04c3fSmrg  'hw/state_blt.xml.h',
2801e04c3fSmrg  'hw/state.xml.h',
2901e04c3fSmrg  'hw/texdesc_3d.xml.h',
3001e04c3fSmrg  'etnaviv_asm.c',
3101e04c3fSmrg  'etnaviv_asm.h',
3201e04c3fSmrg  'etnaviv_blend.c',
3301e04c3fSmrg  'etnaviv_blend.h',
3401e04c3fSmrg  'etnaviv_blt.c',
3501e04c3fSmrg  'etnaviv_blt.h',
3601e04c3fSmrg  'etnaviv_clear_blit.c',
3701e04c3fSmrg  'etnaviv_clear_blit.h',
3801e04c3fSmrg  'etnaviv_compiler.c',
3901e04c3fSmrg  'etnaviv_compiler.h',
407ec681f3Smrg  'etnaviv_compiler_nir.c',
417ec681f3Smrg  'etnaviv_compiler_nir_emit.c',
427ec681f3Smrg  'etnaviv_compiler_nir_liveness.c',
437ec681f3Smrg  'etnaviv_compiler_nir_ra.c',
447ec681f3Smrg  'etnaviv_compiler_tgsi.c',
4501e04c3fSmrg  'etnaviv_context.c',
4601e04c3fSmrg  'etnaviv_context.h',
4701e04c3fSmrg  'etnaviv_debug.h',
4801e04c3fSmrg  'etnaviv_disasm.c',
4901e04c3fSmrg  'etnaviv_disasm.h',
507ec681f3Smrg  'etnaviv_disk_cache.c',
517ec681f3Smrg  'etnaviv_disk_cache.h',
5201e04c3fSmrg  'etnaviv_emit.c',
5301e04c3fSmrg  'etnaviv_emit.h',
549f464c52Smaya  'etnaviv_etc2.c',
559f464c52Smaya  'etnaviv_etc2.h',
5601e04c3fSmrg  'etnaviv_fence.c',
5701e04c3fSmrg  'etnaviv_fence.h',
5801e04c3fSmrg  'etnaviv_format.c',
5901e04c3fSmrg  'etnaviv_format.h',
6001e04c3fSmrg  'etnaviv_internal.h',
617ec681f3Smrg  'etnaviv_nir_lower_ubo_to_uniform.c',
627ec681f3Smrg  'etnaviv_nir.c',
637ec681f3Smrg  'etnaviv_nir.h',
647ec681f3Smrg  'etnaviv_perfmon.c',
657ec681f3Smrg  'etnaviv_perfmon.h',
6601e04c3fSmrg  'etnaviv_query.c',
6701e04c3fSmrg  'etnaviv_query.h',
687ec681f3Smrg  'etnaviv_query_acc_occlusion.c',
697ec681f3Smrg  'etnaviv_query_acc_perfmon.c',
707ec681f3Smrg  'etnaviv_query_acc.c',
717ec681f3Smrg  'etnaviv_query_acc.h',
7201e04c3fSmrg  'etnaviv_query_sw.c',
7301e04c3fSmrg  'etnaviv_query_sw.h',
7401e04c3fSmrg  'etnaviv_rasterizer.c',
7501e04c3fSmrg  'etnaviv_rasterizer.h',
7601e04c3fSmrg  'etnaviv_resource.c',
7701e04c3fSmrg  'etnaviv_resource.h',
7801e04c3fSmrg  'etnaviv_rs.c',
7901e04c3fSmrg  'etnaviv_rs.h',
8001e04c3fSmrg  'etnaviv_screen.c',
8101e04c3fSmrg  'etnaviv_screen.h',
8201e04c3fSmrg  'etnaviv_shader.c',
8301e04c3fSmrg  'etnaviv_shader.h',
8401e04c3fSmrg  'etnaviv_state.c',
8501e04c3fSmrg  'etnaviv_state.h',
8601e04c3fSmrg  'etnaviv_surface.c',
8701e04c3fSmrg  'etnaviv_surface.h',
8801e04c3fSmrg  'etnaviv_texture.c',
8901e04c3fSmrg  'etnaviv_texture.h',
907ec681f3Smrg  'etnaviv_texture_desc.c',
917ec681f3Smrg  'etnaviv_texture_desc.h',
9201e04c3fSmrg  'etnaviv_texture_state.c',
9301e04c3fSmrg  'etnaviv_texture_state.h',
9401e04c3fSmrg  'etnaviv_tiling.c',
9501e04c3fSmrg  'etnaviv_tiling.h',
9601e04c3fSmrg  'etnaviv_transfer.c',
9701e04c3fSmrg  'etnaviv_transfer.h',
9801e04c3fSmrg  'etnaviv_translate.h',
9901e04c3fSmrg  'etnaviv_uniforms.c',
10001e04c3fSmrg  'etnaviv_uniforms.h',
10101e04c3fSmrg  'etnaviv_util.h',
10201e04c3fSmrg  'etnaviv_zsa.c',
10301e04c3fSmrg  'etnaviv_zsa.h',
10401e04c3fSmrg)
10501e04c3fSmrg
10601e04c3fSmrglibetnaviv = static_library(
10701e04c3fSmrg  'etnaviv',
10801e04c3fSmrg  files_etnaviv,
1097ec681f3Smrg  gnu_symbol_visibility : 'hidden',
1107ec681f3Smrg  include_directories : [
1117ec681f3Smrg    inc_include, inc_src, inc_gallium, inc_gallium_aux, inc_etnaviv,
1127ec681f3Smrg  ],
1137ec681f3Smrg  link_with: libetnaviv_drm,
1147ec681f3Smrg  dependencies : [dep_libdrm, idep_nir_headers, idep_mesautil],
11501e04c3fSmrg)
11601e04c3fSmrg
11701e04c3fSmrgetnaviv_compiler = executable(
11801e04c3fSmrg  'etnaviv_compiler',
11901e04c3fSmrg  'etnaviv_compiler_cmdline.c',
1207ec681f3Smrg  include_directories : [
1217ec681f3Smrg    inc_include, inc_src, inc_gallium, inc_gallium_aux, inc_etnaviv,
1227ec681f3Smrg  ],
1237ec681f3Smrg  link_with : [libgallium, libetnaviv, libetnaviv_drm],
1249f464c52Smaya  build_by_default : with_tools.contains('etnaviv'),
1259f464c52Smaya  install : with_tools.contains('etnaviv'),
1267ec681f3Smrg  dependencies : [idep_mesautil, dep_libdrm],
12701e04c3fSmrg)
12801e04c3fSmrg
12901e04c3fSmrgdriver_etnaviv = declare_dependency(
13001e04c3fSmrg  compile_args : '-DGALLIUM_ETNAVIV',
13101e04c3fSmrg  link_with : [libetnaviv, libetnavivdrm],
1327ec681f3Smrg  dependencies : idep_nir,
13301e04c3fSmrg)
1347ec681f3Smrg
1357ec681f3Smrgif with_tests
1367ec681f3Smrg  test(
1377ec681f3Smrg    'lower_ubo',
1387ec681f3Smrg    executable(
1397ec681f3Smrg      'nir_lower_ubo_test',
1407ec681f3Smrg      files('tests/lower_ubo_tests.cpp'),
1417ec681f3Smrg      cpp_args : [cpp_msvc_compat_args],
1427ec681f3Smrg      gnu_symbol_visibility : 'hidden',
1437ec681f3Smrg      include_directories : [inc_include, inc_src, inc_gallium],
1447ec681f3Smrg      link_with : [libetnaviv],
1457ec681f3Smrg      dependencies : [idep_gtest, idep_nir],
1467ec681f3Smrg    ),
1477ec681f3Smrg    suite : ['compiler', 'etnaviv'],
1487ec681f3Smrg  )
1497ec681f3Smrgendif
150