meson.build revision b8e80941
1# Copyright © 2017 Intel Corporation 2# Copyright © 2018 Alyssa Rosenzweig 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 22files_panfrost = files( 23 'pan_public.h', 24 'pan_screen.c', 25 'pan_screen.h', 26 'pan_resource.c', 27 'pan_resource.h', 28 29 'midgard/midgard_compile.c', 30 'midgard/cppwrap.cpp', 31 'midgard/disassemble.c', 32 33 'bifrost/disassemble.c', 34 35 'pan_context.c', 36 'pan_job.c', 37 'pan_trace.c', 38 'pan_drm.c', 39 'pan_allocate.c', 40 'pan_assemble.c', 41 'pan_format.c', 42 'pan_swizzle.c', 43 'pan_blending.c', 44 'pan_blend_shaders.c', 45 'pan_wallpaper.c', 46 'pan_pretty_print.c', 47 'pan_fragment.c', 48 'pan_sfbd.c', 49 'pan_mfbd.c' 50) 51 52inc_panfrost = [ 53 inc_common, 54 inc_gallium, 55 inc_gallium_aux, 56 inc_include, 57 inc_src, 58 include_directories('include'), 59 include_directories('midgard'), 60 include_directories('bifrost'), 61] 62 63compile_args_panfrost = [ 64 '-DGALLIUM_PANFROST', 65 '-Wno-pointer-arith' 66] 67 68midgard_nir_algebraic_c = custom_target( 69 'midgard_nir_algebraic.c', 70 input : 'midgard/midgard_nir_algebraic.py', 71 output : 'midgard_nir_algebraic.c', 72 command : [ 73 prog_python, '@INPUT@', 74 '-p', join_paths(meson.source_root(), 'src/compiler/nir/'), 75 ], 76 capture : true, 77 depend_files : nir_algebraic_py, 78) 79 80libpanfrost = static_library( 81 'panfrost', 82 [files_panfrost, midgard_nir_algebraic_c], 83 dependencies: [ 84 dep_thread, 85 dep_libdrm, 86 idep_nir 87 ], 88 include_directories : inc_panfrost, 89 c_args : [c_vis_args, c_msvc_compat_args, compile_args_panfrost], 90) 91 92driver_panfrost = declare_dependency( 93 compile_args : compile_args_panfrost, 94 link_with : [libpanfrost, libpanfrostwinsys], 95) 96 97files_midgard = files( 98 'midgard/midgard_compile.c', 99 'midgard/cppwrap.cpp', 100 'midgard/disassemble.c', 101 'midgard/cmdline.c', 102) 103 104files_bifrost = files( 105 'bifrost/disassemble.c', 106 'bifrost/cmdline.c', 107) 108 109midgard_compiler = executable( 110 'midgard_compiler', 111 [files_midgard, midgard_nir_algebraic_c], 112 include_directories : inc_panfrost, 113 dependencies : [ 114 dep_thread, 115 idep_nir 116 ], 117 link_with : [ 118 libgallium, 119 libglsl_standalone, 120 libmesa_util 121 ], 122 build_by_default : true 123) 124 125bifrost_compiler = executable( 126 'bifrost_compiler', 127 [files_bifrost], 128 include_directories : [ 129 inc_common, 130 inc_src, 131 inc_include, 132 inc_gallium, 133 inc_gallium_aux, 134 include_directories('bifrost') 135 ], 136 dependencies : [ 137 dep_thread, 138 idep_nir 139 ], 140 link_with : [ 141 libgallium, 142 libglsl_standalone, 143 libmesa_util 144 ], 145 build_by_default : true 146) 147 148files_pandecode = files( 149 'pandecode/cmdline.c', 150 'pandecode/decode.c', 151 152 'pan_pretty_print.c', 153 154 'midgard/disassemble.c' 155) 156 157pandecode = executable( 158 'pandecode', 159 files_pandecode, 160 include_directories : inc_panfrost, 161 dependencies : [ 162 dep_thread, 163 ], 164 link_with : [ 165 libmesa_util 166 ], 167 build_by_default : true 168) 169