1# Copyright © 2018 Rob Clark 2# Copyright © 2019 Collabora 3 4# Permission is hereby granted, free of charge, to any person obtaining a copy 5# of this software and associated documentation files (the "Software"), to deal 6# in the Software without restriction, including without limitation the rights 7# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8# copies of the Software, and to permit persons to whom the Software is 9# furnished to do so, subject to the following conditions: 10 11# The above copyright notice and this permission notice shall be included in 12# all copies or substantial portions of the Software. 13 14# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 20# SOFTWARE. 21 22dep_iokit = dependency('IOKit', required : false) 23 24libasahi_lib_files = files( 25 'agx_device.c', 26 'agx_formats.c', 27 'pool.c', 28 'tiling.c', 29) 30 31libasahi_decode_files = files( 32 'decode.c', 33) 34 35agx_pack = custom_target( 36 'agx_pack.h', 37 input : ['gen_pack.py', 'cmdbuf.xml'], 38 output : 'agx_pack.h', 39 command : [prog_python, '@INPUT@'], 40 capture : true, 41) 42 43idep_agx_pack = declare_dependency( 44 sources : [agx_pack], 45 include_directories : include_directories('.'), 46) 47 48libasahi_lib = static_library( 49 'asahi_lib', 50 [libasahi_lib_files, agx_pack], 51 include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_asahi], 52 c_args : [no_override_init_args], 53 gnu_symbol_visibility : 'hidden', 54 dependencies: [dep_libdrm, idep_nir, dep_iokit], 55 build_by_default : false, 56) 57 58libasahi_decode = static_library( 59 'asahi_decode', 60 [libasahi_decode_files, agx_pack], 61 include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_asahi], 62 dependencies : idep_mesautil, 63 c_args : [no_override_init_args], 64 gnu_symbol_visibility : 'hidden', 65 build_by_default : false, 66) 67 68if with_tests 69 test( 70 'libasahi_tests', 71 executable( 72 'libasahi_tests', 73 files( 74 'tests/test-lod-clamps.cpp', 75 ), 76 c_args : [c_msvc_compat_args, no_override_init_args], 77 gnu_symbol_visibility : 'hidden', 78 include_directories : [inc_include, inc_src, inc_mesa], 79 dependencies: [idep_gtest, idep_agx_pack], 80 link_with : [], 81 ), 82 suite : ['asahi'], 83 protocol : gtest_test_protocol, 84 ) 85endif 86 87if dep_iokit.found() 88 libasahi_wrap = shared_library( 89 'wrap', 90 'wrap.c', 91 include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_asahi], 92 dependencies : [idep_mesautil, dep_iokit], 93 c_args : [no_override_init_args, '-Wno-missing-prototypes'], 94 gnu_symbol_visibility : 'hidden', 95 build_by_default : with_tools.contains('asahi'), 96 link_with: libasahi_decode, 97 ) 98endif 99