1# Copyright © 2017 Dylan Baker 2 3# Permission is hereby granted, free of charge, to any person obtaining a copy 4# of this software and associated documentation files (the "Software"), to deal 5# in the Software without restriction, including without limitation the rights 6# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7# copies of the Software, and to permit persons to whom the Software is 8# furnished to do so, subject to the following conditions: 9 10# The above copyright notice and this permission notice shall be included in 11# all copies or substantial portions of the Software. 12 13# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19# SOFTWARE. 20 21files_libgallium = files( 22 'cso_cache/cso_cache.c', 23 'cso_cache/cso_cache.h', 24 'cso_cache/cso_context.c', 25 'cso_cache/cso_context.h', 26 'cso_cache/cso_hash.c', 27 'cso_cache/cso_hash.h', 28 'draw/draw_cliptest_tmp.h', 29 'draw/draw_context.c', 30 'draw/draw_context.h', 31 'draw/draw_decompose_tmp.h', 32 'draw/draw_fs.c', 33 'draw/draw_fs.h', 34 'draw/draw_gs.c', 35 'draw/draw_gs.h', 36 'draw/draw_gs_tmp.h', 37 'draw/draw_pipe_aaline.c', 38 'draw/draw_pipe_aapoint.c', 39 'draw/draw_pipe.c', 40 'draw/draw_pipe.h', 41 'draw/draw_pipe_clip.c', 42 'draw/draw_pipe_cull.c', 43 'draw/draw_pipe_flatshade.c', 44 'draw/draw_pipe_offset.c', 45 'draw/draw_pipe_pstipple.c', 46 'draw/draw_pipe_stipple.c', 47 'draw/draw_pipe_twoside.c', 48 'draw/draw_pipe_unfilled.c', 49 'draw/draw_pipe_util.c', 50 'draw/draw_pipe_validate.c', 51 'draw/draw_pipe_vbuf.c', 52 'draw/draw_pipe_wide_line.c', 53 'draw/draw_pipe_wide_point.c', 54 'draw/draw_prim_assembler.c', 55 'draw/draw_prim_assembler.h', 56 'draw/draw_prim_assembler_tmp.h', 57 'draw/draw_private.h', 58 'draw/draw_pt.c', 59 'draw/draw_pt_decompose.h', 60 'draw/draw_pt_emit.c', 61 'draw/draw_pt_fetch.c', 62 'draw/draw_pt_fetch_emit.c', 63 'draw/draw_pt_fetch_shade_emit.c', 64 'draw/draw_pt_fetch_shade_pipeline.c', 65 'draw/draw_pt.h', 66 'draw/draw_pt_post_vs.c', 67 'draw/draw_pt_so_emit.c', 68 'draw/draw_pt_util.c', 69 'draw/draw_pt_vsplit.c', 70 'draw/draw_pt_vsplit_tmp.h', 71 'draw/draw_so_emit_tmp.h', 72 'draw/draw_split_tmp.h', 73 'draw/draw_vbuf.h', 74 'draw/draw_vertex.c', 75 'draw/draw_vertex.h', 76 'draw/draw_vs.c', 77 'draw/draw_vs_exec.c', 78 'draw/draw_vs.h', 79 'draw/draw_vs_variant.c', 80 'driver_ddebug/dd_context.c', 81 'driver_ddebug/dd_draw.c', 82 'driver_ddebug/dd_pipe.h', 83 'driver_ddebug/dd_public.h', 84 'driver_ddebug/dd_screen.c', 85 'driver_ddebug/dd_util.h', 86 'driver_noop/noop_pipe.c', 87 'driver_noop/noop_public.h', 88 'driver_noop/noop_state.c', 89 'driver_rbug/rbug_context.c', 90 'driver_rbug/rbug_context.h', 91 'driver_rbug/rbug_core.c', 92 'driver_rbug/rbug_objects.c', 93 'driver_rbug/rbug_objects.h', 94 'driver_rbug/rbug_public.h', 95 'driver_rbug/rbug_screen.c', 96 'driver_rbug/rbug_screen.h', 97 'driver_trace/tr_context.c', 98 'driver_trace/tr_context.h', 99 'driver_trace/tr_dump.c', 100 'driver_trace/tr_dump_defines.h', 101 'driver_trace/tr_dump.h', 102 'driver_trace/tr_dump_state.c', 103 'driver_trace/tr_dump_state.h', 104 'driver_trace/tr_public.h', 105 'driver_trace/tr_screen.c', 106 'driver_trace/tr_screen.h', 107 'driver_trace/tr_texture.c', 108 'driver_trace/tr_texture.h', 109 'hud/font.c', 110 'hud/font.h', 111 'hud/hud_context.c', 112 'hud/hud_context.h', 113 'hud/hud_cpu.c', 114 'hud/hud_nic.c', 115 'hud/hud_cpufreq.c', 116 'hud/hud_diskstat.c', 117 'hud/hud_sensors_temp.c', 118 'hud/hud_driver_query.c', 119 'hud/hud_fps.c', 120 'hud/hud_private.h', 121 'indices/u_indices.h', 122 'indices/u_indices_priv.h', 123 'indices/u_primconvert.c', 124 'indices/u_primconvert.h', 125 'os/os_mman.h', 126 'os/os_process.c', 127 'os/os_process.h', 128 'os/os_thread.h', 129 'pipebuffer/pb_buffer_fenced.c', 130 'pipebuffer/pb_buffer_fenced.h', 131 'pipebuffer/pb_buffer.h', 132 'pipebuffer/pb_bufmgr_cache.c', 133 'pipebuffer/pb_bufmgr_debug.c', 134 'pipebuffer/pb_bufmgr.h', 135 'pipebuffer/pb_bufmgr_mm.c', 136 'pipebuffer/pb_bufmgr_slab.c', 137 'pipebuffer/pb_cache.c', 138 'pipebuffer/pb_cache.h', 139 'pipebuffer/pb_slab.c', 140 'pipebuffer/pb_slab.h', 141 'pipebuffer/pb_validate.c', 142 'pipebuffer/pb_validate.h', 143 'postprocess/filters.h', 144 'postprocess/postprocess.h', 145 'postprocess/pp_celshade.c', 146 'postprocess/pp_celshade.h', 147 'postprocess/pp_colors.c', 148 'postprocess/pp_colors.h', 149 'postprocess/pp_filters.h', 150 'postprocess/pp_init.c', 151 'postprocess/pp_mlaa_areamap.h', 152 'postprocess/pp_mlaa.c', 153 'postprocess/pp_mlaa.h', 154 'postprocess/pp_private.h', 155 'postprocess/pp_program.c', 156 'postprocess/pp_run.c', 157 'rbug/rbug_connection.c', 158 'rbug/rbug_connection.h', 159 'rbug/rbug_context.c', 160 'rbug/rbug_context.h', 161 'rbug/rbug_core.c', 162 'rbug/rbug_core.h', 163 'rbug/rbug_demarshal.c', 164 'rbug/rbug.h', 165 'rbug/rbug_internal.h', 166 'rbug/rbug_proto.h', 167 'rbug/rbug_shader.c', 168 'rbug/rbug_shader.h', 169 'rbug/rbug_texture.c', 170 'rbug/rbug_texture.h', 171 'rtasm/rtasm_cpu.c', 172 'rtasm/rtasm_cpu.h', 173 'rtasm/rtasm_execmem.c', 174 'rtasm/rtasm_execmem.h', 175 'rtasm/rtasm_x86sse.c', 176 'rtasm/rtasm_x86sse.h', 177 'tgsi/tgsi_aa_point.c', 178 'tgsi/tgsi_aa_point.h', 179 'tgsi/tgsi_build.c', 180 'tgsi/tgsi_build.h', 181 'tgsi/tgsi_dump.c', 182 'tgsi/tgsi_dump.h', 183 'tgsi/tgsi_exec.c', 184 'tgsi/tgsi_exec.h', 185 'tgsi/tgsi_emulate.c', 186 'tgsi/tgsi_emulate.h', 187 'tgsi/tgsi_from_mesa.c', 188 'tgsi/tgsi_from_mesa.h', 189 'tgsi/tgsi_info.c', 190 'tgsi/tgsi_info.h', 191 'tgsi/tgsi_info_opcodes.h', 192 'tgsi/tgsi_iterate.c', 193 'tgsi/tgsi_iterate.h', 194 'tgsi/tgsi_lowering.c', 195 'tgsi/tgsi_lowering.h', 196 'tgsi/tgsi_opcode_tmp.h', 197 'tgsi/tgsi_parse.c', 198 'tgsi/tgsi_parse.h', 199 'tgsi/tgsi_point_sprite.c', 200 'tgsi/tgsi_point_sprite.h', 201 'tgsi/tgsi_sanity.c', 202 'tgsi/tgsi_sanity.h', 203 'tgsi/tgsi_scan.c', 204 'tgsi/tgsi_scan.h', 205 'tgsi/tgsi_strings.c', 206 'tgsi/tgsi_strings.h', 207 'tgsi/tgsi_text.c', 208 'tgsi/tgsi_text.h', 209 'tgsi/tgsi_transform.c', 210 'tgsi/tgsi_transform.h', 211 'tgsi/tgsi_two_side.c', 212 'tgsi/tgsi_two_side.h', 213 'tgsi/tgsi_ureg.c', 214 'tgsi/tgsi_ureg.h', 215 'tgsi/tgsi_util.c', 216 'tgsi/tgsi_util.h', 217 'translate/translate.c', 218 'translate/translate.h', 219 'translate/translate_cache.c', 220 'translate/translate_cache.h', 221 'translate/translate_generic.c', 222 'translate/translate_sse.c', 223 'util/dbghelp.h', 224 'util/u_async_debug.h', 225 'util/u_async_debug.c', 226 'util/u_bitcast.h', 227 'util/u_bitmask.c', 228 'util/u_bitmask.h', 229 'util/u_blend.h', 230 'util/u_blit.c', 231 'util/u_blit.h', 232 'util/u_blitter.c', 233 'util/u_blitter.h', 234 'util/u_box.h', 235 'util/u_cache.c', 236 'util/u_cache.h', 237 'util/u_compute.c', 238 'util/u_compute.h', 239 'util/u_debug_gallium.h', 240 'util/u_debug_gallium.c', 241 'util/u_debug_describe.c', 242 'util/u_debug_describe.h', 243 'util/u_debug_flush.c', 244 'util/u_debug_flush.h', 245 'util/u_debug_image.c', 246 'util/u_debug_image.h', 247 'util/u_debug_memory.c', 248 'util/u_debug_refcnt.c', 249 'util/u_debug_refcnt.h', 250 'util/u_debug_stack.c', 251 'util/u_debug_stack.h', 252 'util/u_debug_symbol.c', 253 'util/u_debug_symbol.h', 254 'util/u_dirty_flags.h', 255 'util/u_dirty_surfaces.h', 256 'util/u_dl.c', 257 'util/u_dl.h', 258 'util/u_draw.c', 259 'util/u_draw.h', 260 'util/u_draw_quad.c', 261 'util/u_draw_quad.h', 262 'util/u_dual_blend.h', 263 'util/u_dump_defines.c', 264 'util/u_dump.h', 265 'util/u_dump_state.c', 266 'util/u_fifo.h', 267 'util/u_format.c', 268 'util/u_format.h', 269 'util/u_format_bptc.c', 270 'util/u_format_bptc.h', 271 'util/u_format_etc.c', 272 'util/u_format_etc.h', 273 'util/u_format_latc.c', 274 'util/u_format_latc.h', 275 'util/u_format_other.c', 276 'util/u_format_other.h', 277 'util/u_format_rgtc.c', 278 'util/u_format_rgtc.h', 279 'util/u_format_s3tc.c', 280 'util/u_format_s3tc.h', 281 'util/u_format_tests.c', 282 'util/u_format_tests.h', 283 'util/u_format_yuv.c', 284 'util/u_format_yuv.h', 285 'util/u_format_zs.c', 286 'util/u_format_zs.h', 287 'util/u_framebuffer.c', 288 'util/u_framebuffer.h', 289 'util/u_gen_mipmap.c', 290 'util/u_gen_mipmap.h', 291 'util/u_half.h', 292 'util/u_handle_table.c', 293 'util/u_handle_table.h', 294 'util/u_hash_table.c', 295 'util/u_hash_table.h', 296 'util/u_helpers.c', 297 'util/u_helpers.h', 298 'util/u_idalloc.c', 299 'util/u_idalloc.h', 300 'util/u_index_modify.c', 301 'util/u_index_modify.h', 302 'util/u_inlines.h', 303 'util/u_linear.c', 304 'util/u_linear.h', 305 'util/u_log.c', 306 'util/u_log.h', 307 'util/u_mm.c', 308 'util/u_mm.h', 309 'util/u_network.c', 310 'util/u_network.h', 311 'util/u_pack_color.h', 312 'util/u_pointer.h', 313 'util/u_prim.h', 314 'util/u_prim.c', 315 'util/u_prim_restart.c', 316 'util/u_prim_restart.h', 317 'util/u_pstipple.c', 318 'util/u_pstipple.h', 319 'util/u_pwr8.h', 320 'util/u_range.h', 321 'util/u_rect.h', 322 'util/u_resource.c', 323 'util/u_resource.h', 324 'util/u_ringbuffer.c', 325 'util/u_ringbuffer.h', 326 'util/u_sampler.c', 327 'util/u_sampler.h', 328 'util/u_screen.c', 329 'util/u_screen.h', 330 'util/u_simple_shaders.c', 331 'util/u_simple_shaders.h', 332 'util/u_split_prim.h', 333 'util/u_sse.h', 334 'util/u_suballoc.c', 335 'util/u_suballoc.h', 336 'util/u_surface.c', 337 'util/u_surface.h', 338 'util/u_surfaces.c', 339 'util/u_surfaces.h', 340 'util/u_tests.c', 341 'util/u_tests.h', 342 'util/u_texture.c', 343 'util/u_texture.h', 344 'util/u_tile.c', 345 'util/u_tile.h', 346 'util/u_transfer.c', 347 'util/u_transfer.h', 348 'util/u_transfer_helper.c', 349 'util/u_transfer_helper.h', 350 'util/u_threaded_context.c', 351 'util/u_threaded_context.h', 352 'util/u_threaded_context_calls.h', 353 'util/u_upload_mgr.c', 354 'util/u_upload_mgr.h', 355 'util/u_vbuf.c', 356 'util/u_vbuf.h', 357 'util/u_video.h', 358 'util/u_viewport.h', 359 'nir/tgsi_to_nir.c', 360 'nir/tgsi_to_nir.h', 361) 362 363if dep_libdrm.found() 364 files_libgallium += files( 365 'renderonly/renderonly.c', 366 'renderonly/renderonly.h', 367 ) 368endif 369 370if with_llvm 371 files_libgallium += files( 372 'gallivm/lp_bld_arit.c', 373 'gallivm/lp_bld_arit.h', 374 'gallivm/lp_bld_arit_overflow.c', 375 'gallivm/lp_bld_arit_overflow.h', 376 'gallivm/lp_bld_assert.c', 377 'gallivm/lp_bld_assert.h', 378 'gallivm/lp_bld_bitarit.c', 379 'gallivm/lp_bld_bitarit.h', 380 'gallivm/lp_bld_const.c', 381 'gallivm/lp_bld_const.h', 382 'gallivm/lp_bld_conv.c', 383 'gallivm/lp_bld_conv.h', 384 'gallivm/lp_bld_debug.cpp', 385 'gallivm/lp_bld_debug.h', 386 'gallivm/lp_bld_flow.c', 387 'gallivm/lp_bld_flow.h', 388 'gallivm/lp_bld_format_aos_array.c', 389 'gallivm/lp_bld_format_aos.c', 390 'gallivm/lp_bld_format_float.c', 391 'gallivm/lp_bld_format_s3tc.c', 392 'gallivm/lp_bld_format.c', 393 'gallivm/lp_bld_format.h', 394 'gallivm/lp_bld_format_soa.c', 395 'gallivm/lp_bld_format_srgb.c', 396 'gallivm/lp_bld_format_yuv.c', 397 'gallivm/lp_bld_gather.c', 398 'gallivm/lp_bld_gather.h', 399 'gallivm/lp_bld.h', 400 'gallivm/lp_bld_init.c', 401 'gallivm/lp_bld_init.h', 402 'gallivm/lp_bld_intr.c', 403 'gallivm/lp_bld_intr.h', 404 'gallivm/lp_bld_limits.h', 405 'gallivm/lp_bld_logic.c', 406 'gallivm/lp_bld_logic.h', 407 'gallivm/lp_bld_misc.cpp', 408 'gallivm/lp_bld_misc.h', 409 'gallivm/lp_bld_pack.c', 410 'gallivm/lp_bld_pack.h', 411 'gallivm/lp_bld_printf.c', 412 'gallivm/lp_bld_printf.h', 413 'gallivm/lp_bld_quad.c', 414 'gallivm/lp_bld_quad.h', 415 'gallivm/lp_bld_sample_aos.c', 416 'gallivm/lp_bld_sample_aos.h', 417 'gallivm/lp_bld_sample.c', 418 'gallivm/lp_bld_sample.h', 419 'gallivm/lp_bld_sample_soa.c', 420 'gallivm/lp_bld_struct.c', 421 'gallivm/lp_bld_struct.h', 422 'gallivm/lp_bld_swizzle.c', 423 'gallivm/lp_bld_swizzle.h', 424 'gallivm/lp_bld_tgsi_action.c', 425 'gallivm/lp_bld_tgsi_action.h', 426 'gallivm/lp_bld_tgsi_aos.c', 427 'gallivm/lp_bld_tgsi.c', 428 'gallivm/lp_bld_tgsi.h', 429 'gallivm/lp_bld_tgsi_info.c', 430 'gallivm/lp_bld_tgsi_soa.c', 431 'gallivm/lp_bld_type.c', 432 'gallivm/lp_bld_type.h', 433 'draw/draw_llvm.c', 434 'draw/draw_llvm.h', 435 'draw/draw_llvm_sample.c', 436 'draw/draw_pt_fetch_shade_pipeline_llvm.c', 437 'draw/draw_vs_llvm.c', 438 ) 439endif 440 441files_libgalliumvl = files( 442 'vl/vl_bicubic_filter.c', 443 'vl/vl_bicubic_filter.h', 444 'vl/vl_compositor.c', 445 'vl/vl_compositor.h', 446 'vl/vl_compositor_gfx.c', 447 'vl/vl_compositor_gfx.h', 448 'vl/vl_compositor_cs.c', 449 'vl/vl_compositor_cs.h', 450 'vl/vl_csc.c', 451 'vl/vl_csc.h', 452 'vl/vl_decoder.c', 453 'vl/vl_decoder.h', 454 'vl/vl_defines.h', 455 'vl/vl_deint_filter.c', 456 'vl/vl_deint_filter.h', 457 'vl/vl_idct.c', 458 'vl/vl_idct.h', 459 'vl/vl_matrix_filter.c', 460 'vl/vl_matrix_filter.h', 461 'vl/vl_mc.c', 462 'vl/vl_mc.h', 463 'vl/vl_median_filter.c', 464 'vl/vl_median_filter.h', 465 'vl/vl_mpeg12_bitstream.c', 466 'vl/vl_mpeg12_bitstream.h', 467 'vl/vl_mpeg12_decoder.c', 468 'vl/vl_mpeg12_decoder.h', 469 'vl/vl_rbsp.h', 470 'vl/vl_types.h', 471 'vl/vl_vertex_buffers.c', 472 'vl/vl_vertex_buffers.h', 473 'vl/vl_video_buffer.c', 474 'vl/vl_video_buffer.h', 475 'vl/vl_vlc.h', 476 'vl/vl_zscan.c', 477 'vl/vl_zscan.h', 478 'vl/vl_probs_table.h', 479) 480 481vlwinsys_deps = [] 482files_libgalliumvlwinsys = files('vl/vl_winsys.h') 483if with_dri2 and with_platform_x11 484 files_libgalliumvlwinsys += files('vl/vl_winsys_dri.c') 485 if with_dri3 486 vlwinsys_deps += [ 487 dep_xcb_sync, dep_xcb_present, dep_xshmfence, dep_xcb_xfixes, 488 dep_xcb_dri3, 489 ] 490 files_libgalliumvlwinsys += files('vl/vl_winsys_dri3.c') 491 endif 492endif 493if with_platform_drm 494 files_libgalliumvlwinsys += files('vl/vl_winsys_drm.c') 495endif 496 497u_indices_gen_c = custom_target( 498 'u_indices_gen.c', 499 input : 'indices/u_indices_gen.py', 500 output : 'u_indices_gen.c', 501 command : [prog_python, '@INPUT@'], 502 capture : true, 503) 504 505u_unfilled_gen_c = custom_target( 506 'u_unfilled_gen.c', 507 input : 'indices/u_unfilled_gen.py', 508 output : 'u_unfilled_gen.c', 509 command : [prog_python, '@INPUT@'], 510 capture : true, 511) 512 513u_format_table_c = custom_target( 514 'u_format_table.c', 515 input : ['util/u_format_table.py', 'util/u_format.csv'], 516 output : 'u_format_table.c', 517 command : [prog_python, '@INPUT@'], 518 depend_files : files('util/u_format_pack.py', 'util/u_format_parse.py'), 519 capture : true, 520) 521 522libgallium = static_library( 523 'gallium', 524 [files_libgallium, u_indices_gen_c, u_unfilled_gen_c, u_format_table_c], 525 include_directories : [ 526 inc_loader, inc_gallium, inc_src, inc_include, include_directories('util') 527 ], 528 c_args : [c_vis_args, c_msvc_compat_args], 529 cpp_args : [cpp_vis_args, cpp_msvc_compat_args], 530 dependencies : [ 531 dep_libdrm, dep_llvm, dep_unwind, dep_dl, dep_m, dep_thread, dep_lmsensors, 532 idep_nir_headers, 533 ], 534 build_by_default : false, 535 link_with: [ 536 libglsl 537 ] 538) 539 540libgalliumvl_stub = static_library( 541 'galliumvl_stub', 542 'vl/vl_stubs.c', 543 c_args : [c_vis_args, c_msvc_compat_args], 544 cpp_args : [cpp_vis_args, cpp_msvc_compat_args], 545 include_directories: [inc_gallium, inc_include, inc_src], 546 build_by_default : false, 547) 548 549libgalliumvl = static_library( 550 'galliumvl', 551 files_libgalliumvl, 552 c_args : [c_vis_args, c_msvc_compat_args], 553 cpp_args : [cpp_vis_args, cpp_msvc_compat_args], 554 include_directories : [inc_gallium, inc_include, inc_src], 555 build_by_default : false, 556) 557 558# XXX: The dependencies here may be off... 559libgalliumvlwinsys = static_library( 560 'galliumvlwinsys', 561 files_libgalliumvlwinsys, 562 include_directories : [inc_gallium, inc_include, inc_loader, inc_src], 563 dependencies : [dep_libdrm, vlwinsys_deps], 564 build_by_default : false, 565) 566