summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDylan Baker <[email protected]>2017-12-12 12:22:56 -0800
committerDylan Baker <[email protected]>2018-01-11 15:40:02 -0800
commit2083a14179eb04d22feebc5751a1a145828d07cf (patch)
tree0fa3d2d540621d00faa6daf0c132aa5127f2dab0
parent60856a7b4982aaaa4f22a002878d5d78cd63e272 (diff)
meson: Use dependencies for nir
This creates two new internal dependencies, idep_nir_headers and idep_nir. The former encapsulates the generation of nir_opcodes.h and nir_builder_opcodes.h and adding src/compiler/nir as an include path. This ensures that any target that needs nir headers will have the includes and that the generated headers will be generated before the target is build. The second, idep_nir, includes the first and additionally links to libnir. This is intended to make it easier to avoid race conditions in the build when using nir, since the number of consumers for libnir and it's headers are quite high. Acked-by: Eric Engestrom <[email protected]> Signed-off-by: Dylan Baker <[email protected]>
-rw-r--r--src/amd/common/meson.build5
-rw-r--r--src/amd/vulkan/meson.build6
-rw-r--r--src/broadcom/compiler/meson.build4
-rw-r--r--src/compiler/glsl/meson.build3
-rw-r--r--src/compiler/meson.build4
-rw-r--r--src/compiler/nir/meson.build18
-rw-r--r--src/gallium/auxiliary/meson.build8
-rw-r--r--src/gallium/drivers/freedreno/meson.build8
-rw-r--r--src/gallium/drivers/radeonsi/meson.build6
-rw-r--r--src/gallium/drivers/vc4/meson.build7
-rw-r--r--src/gallium/drivers/vc5/meson.build7
-rw-r--r--src/gallium/targets/xa/meson.build2
-rw-r--r--src/intel/blorp/meson.build3
-rw-r--r--src/intel/compiler/meson.build12
-rw-r--r--src/intel/vulkan/meson.build12
-rw-r--r--src/mesa/drivers/dri/i965/meson.build10
-rw-r--r--src/mesa/drivers/dri/meson.build4
-rw-r--r--src/mesa/meson.build3
18 files changed, 72 insertions, 50 deletions
diff --git a/src/amd/common/meson.build b/src/amd/common/meson.build
index 43a633a493a..22c13b955fa 100644
--- a/src/amd/common/meson.build
+++ b/src/amd/common/meson.build
@@ -52,12 +52,13 @@ amd_common_files = files(
libamd_common = static_library(
'amd_common',
- [amd_common_files, sid_tables_h, nir_opcodes_h],
+ [amd_common_files, sid_tables_h],
include_directories : [
- inc_common, inc_compiler, inc_nir, inc_mesa, inc_mapi, inc_amd,
+ inc_common, inc_compiler, inc_mesa, inc_mapi, inc_amd,
],
dependencies : [
dep_llvm, dep_thread, dep_elf, dep_libdrm_amdgpu, dep_valgrind,
+ idep_nir_headers,
],
c_args : [c_vis_args],
cpp_args : [cpp_vis_args],
diff --git a/src/amd/vulkan/meson.build b/src/amd/vulkan/meson.build
index 054ee5e282b..74f6399ed7f 100644
--- a/src/amd/vulkan/meson.build
+++ b/src/amd/vulkan/meson.build
@@ -114,19 +114,19 @@ endif
libvulkan_radeon = shared_library(
'vulkan_radeon',
- [libradv_files, radv_entrypoints, radv_extensions_c, nir_opcodes_h,
- vk_format_table_c],
+ [libradv_files, radv_entrypoints, radv_extensions_c, vk_format_table_c],
include_directories : [
inc_common, inc_amd, inc_amd_common, inc_compiler, inc_vulkan_util,
inc_vulkan_wsi,
],
link_with : [
- libamd_common, libamdgpu_addrlib, libvulkan_util, libvulkan_wsi, libnir,
+ libamd_common, libamdgpu_addrlib, libvulkan_util, libvulkan_wsi,
libmesa_util,
],
dependencies : [
dep_llvm, dep_libdrm_amdgpu, dep_thread, dep_elf, dep_dl, dep_m,
dep_valgrind,
+ idep_nir,
],
c_args : [c_vis_args, no_override_init_args, radv_flags],
link_args : [ld_args_bsymbolic, ld_args_gc_sections],
diff --git a/src/broadcom/compiler/meson.build b/src/broadcom/compiler/meson.build
index fd4d05fdbb7..8f2ee7542c0 100644
--- a/src/broadcom/compiler/meson.build
+++ b/src/broadcom/compiler/meson.build
@@ -36,10 +36,10 @@ libbroadcom_compiler_files = files(
)
libbroadcom_compiler = static_library(
- ['broadcom_compiler', v3d_xml_pack, nir_opcodes_h, nir_builder_opcodes_h],
+ ['broadcom_compiler', v3d_xml_pack],
libbroadcom_compiler_files,
include_directories : [inc_common, inc_broadcom],
c_args : [c_vis_args, no_override_init_args],
- dependencies : [dep_libdrm, dep_valgrind],
+ dependencies : [dep_libdrm, dep_valgrind, idep_nir_headers],
build_by_default : false,
)
diff --git a/src/compiler/glsl/meson.build b/src/compiler/glsl/meson.build
index 2a6bddf4a84..b0c0de810a6 100644
--- a/src/compiler/glsl/meson.build
+++ b/src/compiler/glsl/meson.build
@@ -205,8 +205,9 @@ libglsl = static_library(
ir_expression_operation_strings_h, ir_expression_operation_constant_h],
c_args : [c_vis_args, c_msvc_compat_args, no_override_init_args],
cpp_args : [cpp_vis_args, cpp_msvc_compat_args],
- link_with : [libnir, libglcpp],
+ link_with : libglcpp,
include_directories : [inc_common, inc_compiler, inc_nir],
+ dependencies : idep_nir,
build_by_default : false,
)
diff --git a/src/compiler/meson.build b/src/compiler/meson.build
index 783be11c926..d86bdde61d8 100644
--- a/src/compiler/meson.build
+++ b/src/compiler/meson.build
@@ -58,9 +58,9 @@ subdir('nir')
spirv2nir = executable(
'spirv2nir',
[files('spirv/spirv2nir.c'), dummy_cpp],
- dependencies : [dep_m, dep_thread],
+ dependencies : [dep_m, dep_thread, idep_nir],
include_directories : [inc_common, inc_nir, include_directories('spirv')],
- link_with : [libnir, libmesa_util],
+ link_with : libmesa_util,
c_args : [c_vis_args, c_msvc_compat_args, no_override_init_args],
build_by_default : false,
)
diff --git a/src/compiler/nir/meson.build b/src/compiler/nir/meson.build
index 54cef67e9e0..b5f27ad667b 100644
--- a/src/compiler/nir/meson.build
+++ b/src/compiler/nir/meson.build
@@ -205,6 +205,18 @@ libnir = static_library(
build_by_default : false,
)
+# Headers-only dependency
+idep_nir_headers = declare_dependency(
+ sources : [nir_opcodes_h, nir_builder_opcodes_h],
+ include_directories : include_directories('.'),
+)
+
+# Also link with nir
+idep_nir = declare_dependency(
+ dependencies : idep_nir_headers,
+ link_with : libnir,
+)
+
nir_algebraic_py = files('nir_algebraic.py')
if with_tests
@@ -212,11 +224,11 @@ if with_tests
'nir_control_flow',
executable(
'nir_control_flow_test',
- [files('tests/control_flow_tests.cpp'), nir_opcodes_h],
+ files('tests/control_flow_tests.cpp'),
c_args : [c_vis_args, c_msvc_compat_args, no_override_init_args],
include_directories : [inc_common],
- dependencies : [dep_thread, idep_gtest],
- link_with : [libmesa_util, libnir],
+ dependencies : [dep_thread, idep_gtest, idep_nir],
+ link_with : libmesa_util,
)
)
endif
diff --git a/src/gallium/auxiliary/meson.build b/src/gallium/auxiliary/meson.build
index 584cbe4509c..acef71bb3a8 100644
--- a/src/gallium/auxiliary/meson.build
+++ b/src/gallium/auxiliary/meson.build
@@ -490,14 +490,16 @@ u_format_table_c = custom_target(
libgallium = static_library(
'gallium',
- [files_libgallium, u_indices_gen_c, u_unfilled_gen_c, u_format_table_c,
- nir_opcodes_h, nir_builder_opcodes_h],
+ [files_libgallium, u_indices_gen_c, u_unfilled_gen_c, u_format_table_c],
include_directories : [
inc_loader, inc_gallium, inc_src, inc_include, include_directories('util')
],
c_args : [c_vis_args, c_msvc_compat_args],
cpp_args : [cpp_vis_args, cpp_msvc_compat_args],
- dependencies : [dep_libdrm, dep_llvm, dep_unwind, dep_dl, dep_m, dep_thread],
+ dependencies : [
+ dep_libdrm, dep_llvm, dep_unwind, dep_dl, dep_m, dep_thread,
+ idep_nir_headers,
+ ],
build_by_default : false,
)
diff --git a/src/gallium/drivers/freedreno/meson.build b/src/gallium/drivers/freedreno/meson.build
index af288ced1a8..23c85cfa71b 100644
--- a/src/gallium/drivers/freedreno/meson.build
+++ b/src/gallium/drivers/freedreno/meson.build
@@ -203,7 +203,7 @@ files_libfreedreno = files(
)
freedreno_includes = [
- inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_nir,
+ inc_src, inc_include, inc_gallium, inc_gallium_aux,
include_directories('ir3')
]
@@ -219,11 +219,11 @@ endif
libfreedreno = static_library(
'freedreno',
- [files_libfreedreno, ir3_nir_trig_c, nir_opcodes_h],
+ [files_libfreedreno, ir3_nir_trig_c],
include_directories : freedreno_includes,
c_args : [freedreno_c_args, c_vis_args],
cpp_args : [freedreno_cpp_args, cpp_vis_args],
- dependencies : [dep_libdrm, dep_libdrm_freedreno],
+ dependencies : [dep_libdrm, dep_libdrm_freedreno, idep_nir_headers],
)
driver_freedreno = declare_dependency(
@@ -240,11 +240,11 @@ ir3_compiler = executable(
dep_libdrm_freedreno,
dep_thread,
dep_lmsensors,
+ idep_nir,
],
link_with : [
libfreedreno,
libgallium,
- libnir,
libglsl_standalone,
libmesa_util,
],
diff --git a/src/gallium/drivers/radeonsi/meson.build b/src/gallium/drivers/radeonsi/meson.build
index 58132bf0720..97c7a412444 100644
--- a/src/gallium/drivers/radeonsi/meson.build
+++ b/src/gallium/drivers/radeonsi/meson.build
@@ -70,14 +70,14 @@ si_driinfo_h = custom_target(
libradeonsi = static_library(
'radeonsi',
- [files_libradeonsi, si_driinfo_h, nir_opcodes_h, sid_tables_h],
+ [files_libradeonsi, si_driinfo_h, sid_tables_h],
include_directories : [
inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_amd_common,
inc_gallium_drivers,
],
c_args : [c_vis_args],
cpp_args : [cpp_vis_args],
- dependencies : dep_llvm,
+ dependencies : [dep_llvm, idep_nir_headers],
)
driver_radeonsi = declare_dependency(
@@ -85,6 +85,6 @@ driver_radeonsi = declare_dependency(
sources : si_driinfo_h,
link_with : [
libradeonsi, libradeon, libradeonwinsys, libamdgpuwinsys, libamd_common,
- libnir,
],
+ dependencies : idep_nir,
)
diff --git a/src/gallium/drivers/vc4/meson.build b/src/gallium/drivers/vc4/meson.build
index 9b816cc8fd5..ef7e7bcac5c 100644
--- a/src/gallium/drivers/vc4/meson.build
+++ b/src/gallium/drivers/vc4/meson.build
@@ -101,7 +101,7 @@ endif
libvc4 = static_library(
'vc4',
- [files_libvc4, v3d_xml_pack, nir_opcodes_h, nir_builder_opcodes_h],
+ [files_libvc4, v3d_xml_pack],
include_directories : [
inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_broadcom,
inc_gallium_drivers, inc_drm_uapi,
@@ -109,11 +109,12 @@ libvc4 = static_library(
link_with: libvc4_neon,
c_args : [c_vis_args, simpenrose_c_args],
cpp_args : [cpp_vis_args],
- dependencies : [dep_simpenrose, dep_libdrm, dep_valgrind],
+ dependencies : [dep_simpenrose, dep_libdrm, dep_valgrind, idep_nir_headers],
build_by_default : false,
)
driver_vc4 = declare_dependency(
compile_args : '-DGALLIUM_VC4',
- link_with : [libvc4, libvc4winsys, libbroadcom_cle, libnir],
+ link_with : [libvc4, libvc4winsys, libbroadcom_cle],
+ dependencies : idep_nir,
)
diff --git a/src/gallium/drivers/vc5/meson.build b/src/gallium/drivers/vc5/meson.build
index ee7fe9dc83c..deaa81fdb9d 100644
--- a/src/gallium/drivers/vc5/meson.build
+++ b/src/gallium/drivers/vc5/meson.build
@@ -54,17 +54,18 @@ endif
libvc5 = static_library(
'vc5',
- [files_libvc5, v3d_xml_pack, nir_opcodes_h, nir_builder_opcodes_h],
+ [files_libvc5, v3d_xml_pack],
include_directories : [
inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_broadcom,
inc_gallium_drivers, inc_drm_uapi,
],
c_args : [c_vis_args, v3dv3_c_args],
cpp_args : [cpp_vis_args, v3dv3_c_args],
- dependencies : [dep_v3dv3, dep_libdrm, dep_valgrind],
+ dependencies : [dep_v3dv3, dep_libdrm, dep_valgrind, idep_nir_headers],
)
driver_vc5 = declare_dependency(
compile_args : '-DGALLIUM_VC5',
- link_with : [libvc5, libvc5winsys, libbroadcom_cle, libbroadcom_vc5, libnir],
+ link_with : [libvc5, libvc5winsys, libbroadcom_cle, libbroadcom_vc5],
+ dependencies : idep_nir,
)
diff --git a/src/gallium/targets/xa/meson.build b/src/gallium/targets/xa/meson.build
index f25999d1603..8ff6486a5ac 100644
--- a/src/gallium/targets/xa/meson.build
+++ b/src/gallium/targets/xa/meson.build
@@ -40,7 +40,7 @@ libxatracker = shared_library(
inc_common, inc_util, inc_gallium_winsys, inc_gallium_drivers,
],
link_with : [
- libxa_st, libgalliumvl_stub, libgallium, libmesa_util, libnir,
+ libxa_st, libgalliumvl_stub, libgallium, libmesa_util,
libpipe_loader_static, libws_null, libwsw,
],
link_depends : xa_link_depends,
diff --git a/src/intel/blorp/meson.build b/src/intel/blorp/meson.build
index febdea97f3c..c1201b0aa16 100644
--- a/src/intel/blorp/meson.build
+++ b/src/intel/blorp/meson.build
@@ -30,7 +30,8 @@ files_libblorp = files(
libblorp = static_library(
'blorp',
- [files_libblorp, nir_opcodes_h],
+ files_libblorp,
include_directories : [inc_common, inc_intel],
c_args : [c_vis_args, no_override_init_args],
+ dependencies : idep_nir_headers,
)
diff --git a/src/intel/compiler/meson.build b/src/intel/compiler/meson.build
index 19e5926a0d9..602206c725f 100644
--- a/src/intel/compiler/meson.build
+++ b/src/intel/compiler/meson.build
@@ -131,11 +131,11 @@ brw_nir_trig = custom_target(
libintel_compiler = static_library(
'intel_compiler',
- [libintel_compiler_files, brw_nir_trig, nir_opcodes_h, nir_builder_opcodes_h,
- ir_expression_operation_h],
- include_directories : [inc_common, inc_intel, inc_nir],
+ [libintel_compiler_files, brw_nir_trig, ir_expression_operation_h],
+ include_directories : [inc_common, inc_intel],
c_args : [c_vis_args, no_override_init_args],
cpp_args : [cpp_vis_args],
+ dependencies : idep_nir_headers,
build_by_default : false,
)
@@ -148,13 +148,13 @@ if with_tests
test(
t,
executable(
- [t, nir_opcodes_h, ir_expression_operation_h],
+ [t, ir_expression_operation_h],
'test_@[email protected]'.format(t),
include_directories : [inc_common, inc_intel],
link_with : [
- libintel_compiler, libintel_common, libnir, libmesa_util, libisl,
+ libintel_compiler, libintel_common, libmesa_util, libisl,
],
- dependencies : [dep_thread, dep_dl, idep_gtest],
+ dependencies : [dep_thread, dep_dl, idep_gtest, idep_nir],
)
)
endforeach
diff --git a/src/intel/vulkan/meson.build b/src/intel/vulkan/meson.build
index 4cd7a025813..a0ec35dadc4 100644
--- a/src/intel/vulkan/meson.build
+++ b/src/intel/vulkan/meson.build
@@ -100,7 +100,7 @@ foreach g : [['70', ['gen7_cmd_buffer.c']], ['75', ['gen7_cmd_buffer.c']],
c_vis_args, no_override_init_args, '-msse2',
'-DGEN_VERSIONx10=@0@'.format(_gen),
],
- dependencies : [dep_libdrm, dep_valgrind],
+ dependencies : [dep_libdrm, dep_valgrind, idep_nir_headers],
)
endforeach
@@ -153,13 +153,13 @@ endif
libanv_common = static_library(
'anv_common',
- [libanv_files, anv_entrypoints, anv_extensions_c, nir_opcodes_h],
+ [libanv_files, anv_entrypoints, anv_extensions_c],
include_directories : [
inc_common, inc_intel, inc_compiler, inc_drm_uapi, inc_vulkan_util,
inc_vulkan_wsi,
],
c_args : [c_vis_args, no_override_init_args, '-msse2', anv_flags],
- dependencies : [dep_valgrind, anv_deps, dep_libdrm],
+ dependencies : [dep_valgrind, anv_deps, dep_libdrm, idep_nir_headers],
)
libvulkan_intel = shared_library(
@@ -172,9 +172,11 @@ libvulkan_intel = shared_library(
link_whole : [libanv_common, libanv_gen_libs],
link_with : [
libintel_compiler, libintel_common, libisl, libblorp, libvulkan_util,
- libvulkan_wsi, libnir, libmesa_util,
+ libvulkan_wsi, libmesa_util,
+ ],
+ dependencies : [
+ dep_libdrm, dep_thread, dep_dl, dep_m, anv_deps, dep_valgrind, idep_nir,
],
- dependencies : [dep_libdrm, dep_thread, dep_dl, dep_m, anv_deps, dep_valgrind],
c_args : [c_vis_args, no_override_init_args, '-msse2', anv_flags],
link_args : ['-Wl,--build-id=sha1', ld_args_bsymbolic, ld_args_gc_sections],
install : true,
diff --git a/src/mesa/drivers/dri/i965/meson.build b/src/mesa/drivers/dri/i965/meson.build
index 1183978b7b3..9adda06183d 100644
--- a/src/mesa/drivers/dri/i965/meson.build
+++ b/src/mesa/drivers/dri/i965/meson.build
@@ -138,13 +138,13 @@ i965_gen_libs = []
foreach v : ['40', '45', '50', '60', '70', '75', '80', '90', '100']
i965_gen_libs += static_library(
'libi965_gen@0@'.format(v),
- ['genX_blorp_exec.c', 'genX_state_upload.c', nir_opcodes_h, gen_xml_pack],
+ ['genX_blorp_exec.c', 'genX_state_upload.c', gen_xml_pack],
include_directories : [inc_common, inc_intel, inc_dri_common],
c_args : [
c_vis_args, no_override_init_args, '-msse2',
'-DGEN_VERSIONx10=@0@'.format(v),
],
- dependencies : [dep_libdrm],
+ dependencies : [dep_libdrm, idep_nir_headers],
)
endforeach
@@ -166,17 +166,17 @@ endforeach
libi965 = static_library(
'i965',
- [files_i965, i965_oa_sources, nir_opcodes_h, ir_expression_operation_h,
+ [files_i965, i965_oa_sources, ir_expression_operation_h,
xmlpool_options_h],
include_directories : [
- inc_common, inc_intel, inc_dri_common, inc_util, inc_drm_uapi, inc_nir,
+ inc_common, inc_intel, inc_dri_common, inc_util, inc_drm_uapi,
],
c_args : [c_vis_args, no_override_init_args, '-msse2'],
cpp_args : [cpp_vis_args, '-msse2'],
link_with : [
i965_gen_libs, libintel_common, libisl, libintel_compiler, libblorp,
],
- dependencies : [dep_libdrm, dep_valgrind],
+ dependencies : [dep_libdrm, dep_valgrind, idep_nir_headers],
)
dri_drivers += libi965
diff --git a/src/mesa/drivers/dri/meson.build b/src/mesa/drivers/dri/meson.build
index e73ee39381e..94798b0f5da 100644
--- a/src/mesa/drivers/dri/meson.build
+++ b/src/mesa/drivers/dri/meson.build
@@ -48,10 +48,10 @@ if dri_drivers != []
link_whole : dri_drivers,
link_with : [
libmegadriver_stub, libdricommon, libxmlconfig, libglapi, libmesa_util,
- libnir, libmesa_classic,
+ libmesa_classic,
],
dependencies : [
- dep_selinux, dep_libdrm, dep_expat, dep_m, dep_thread, dep_dl,
+ dep_selinux, dep_libdrm, dep_expat, dep_m, dep_thread, dep_dl, idep_nir,
],
link_args : ['-Wl,--build-id=sha1', ld_args_bsymbolic, ld_args_gc_sections],
)
diff --git a/src/mesa/meson.build b/src/mesa/meson.build
index ab6bc273129..998953d6411 100644
--- a/src/mesa/meson.build
+++ b/src/mesa/meson.build
@@ -687,7 +687,6 @@ files_libmesa_common += [
main_marshal_generated_h,
main_dispatch_h,
ir_expression_operation_h,
- nir_opcodes_h,
main_remap_helper_h,
matypes_h,
sha1_h,
@@ -711,6 +710,7 @@ libmesa_classic = static_library(
cpp_args : [cpp_vis_args, cpp_msvc_compat_args],
include_directories : [inc_common, include_directories('main')],
link_with : [libglsl, libmesa_sse41],
+ dependencies : idep_nir_headers,
build_by_default : false,
)
@@ -721,6 +721,7 @@ libmesa_gallium = static_library(
cpp_args : [cpp_vis_args, cpp_msvc_compat_args],
include_directories : [inc_common, include_directories('main')],
link_with : [libglsl, libmesa_sse41],
+ dependencies : idep_nir_headers,
build_by_default : false,
)