Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature request: add_project_arguments with arguments (modue: ['executable','shared_library','static_library']) #10996

Open
lygstate opened this issue Nov 4, 2022 · 0 comments

Comments

@lygstate
Copy link
Contributor

lygstate commented Nov 4, 2022

Sometimes we wan't only add arguments to shared_library and static_library, this provide a way to do that

rationale from mesa:

 src/amd/addrlib/meson.build                | 2 +-
 src/amd/compiler/meson.build               | 2 +-
 src/amd/vulkan/meson.build                 | 2 +-
 src/compiler/clc/meson.build               | 2 +-
 src/compiler/glsl/glcpp/meson.build        | 4 ++--
 src/compiler/glsl/meson.build              | 8 ++++----
 src/compiler/meson.build                   | 2 +-
 src/gallium/drivers/crocus/meson.build     | 2 +-
 src/gallium/drivers/freedreno/meson.build  | 2 +-
 src/gallium/drivers/iris/meson.build       | 2 +-
 src/gallium/drivers/llvmpipe/meson.build   | 2 +-
 src/gallium/drivers/r600/meson.build       | 2 +-
 src/gallium/drivers/radeonsi/meson.build   | 2 +-
 src/gallium/frontends/clover/meson.build   | 5 +++--
 src/gallium/frontends/d3d10umd/meson.build | 2 +-
 src/intel/vulkan/grl/meson.build           | 1 +
 src/intel/vulkan/meson.build               | 2 +-
 src/intel/vulkan_hasvk/meson.build         | 2 +-
 src/mesa/meson.build                       | 2 +-
 src/microsoft/vulkan/meson.build           | 2 +-
 20 files changed, 26 insertions(+), 24 deletions(-)

diff --git a/src/amd/addrlib/meson.build b/src/amd/addrlib/meson.build
index ebc3bbeceea..1795f933d6b 100644
--- a/src/amd/addrlib/meson.build
+++ b/src/amd/addrlib/meson.build
@@ -81,6 +81,6 @@ libamdgpu_addrlib = static_library(
     ),
     inc_amd_common, inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux,
   ],
-  cpp_args : cpp_args_addrlib,
+  cpp_args : [cpp_args_disable_global_constructor, cpp_args_addrlib],
   gnu_symbol_visibility : 'hidden',
 )
diff --git a/src/amd/compiler/meson.build b/src/amd/compiler/meson.build
index d30ba1ea26e..7dcfbfa8c2a 100644
--- a/src/amd/compiler/meson.build
+++ b/src/amd/compiler/meson.build
@@ -95,7 +95,7 @@ _libaco = static_library(
   ],
   gnu_symbol_visibility : 'hidden',
   build_by_default : true,
-  cpp_args : [cpp_args_aco, cpp_msvc_compat_args],
+  cpp_args : [cpp_args_disable_global_constructor, cpp_args_aco, cpp_msvc_compat_args],
 )
 
 # Also link with aco
diff --git a/src/amd/vulkan/meson.build b/src/amd/vulkan/meson.build
index ad75d68b15f..0897420739a 100644
--- a/src/amd/vulkan/meson.build
+++ b/src/amd/vulkan/meson.build
@@ -182,7 +182,7 @@ libvulkan_radeon = shared_library(
     idep_vulkan_common_entrypoints_h, idep_vulkan_wsi_entrypoints_h
   ],
   c_args : [no_override_init_args, radv_flags, c_msvc_compat_args],
-  cpp_args : [radv_flags, cpp_msvc_compat_args],
+  cpp_args : [cpp_args_disable_global_constructor, radv_flags, cpp_msvc_compat_args],
   link_args : [
     ld_args_build_id, ld_args_bsymbolic, ld_args_gc_sections, libvulkan_radeon_ld_args,
   ],
diff --git a/src/compiler/clc/meson.build b/src/compiler/clc/meson.build
index a082a877c60..d35351b7f0d 100644
--- a/src/compiler/clc/meson.build
+++ b/src/compiler/clc/meson.build
@@ -62,7 +62,7 @@ _libclc = static_library(
   files_libclc,
   sources: _libclc_sources,
   include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_compiler, inc_spirv],
-  cpp_args : _libclc_cpp_args,
+  cpp_args : [cpp_args_disable_global_constructor, _libclc_cpp_args],
   dependencies: [idep_nir_headers, dep_clang, dep_llvm, dep_llvmspirvlib,
                  idep_mesautil, idep_nir, dep_spirv_tools]
 )
diff --git a/src/compiler/glsl/glcpp/meson.build b/src/compiler/glsl/glcpp/meson.build
index ae60fbba1f1..fb1a77f2299 100644
--- a/src/compiler/glsl/glcpp/meson.build
+++ b/src/compiler/glsl/glcpp/meson.build
@@ -51,7 +51,7 @@ libglcpp = static_library(
   dependencies : idep_mesautil,
   include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux],
   c_args : [no_override_init_args, c_msvc_compat_args],
-  cpp_args : [cpp_msvc_compat_args],
+  cpp_args : [cpp_args_disable_global_constructor, cpp_msvc_compat_args],
   gnu_symbol_visibility : 'hidden',
   build_by_default : false,
 )
@@ -63,7 +63,7 @@ libglcpp_standalone = static_library(
   dependencies : idep_mesautil,
   include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux],
   c_args : [no_override_init_args, c_msvc_compat_args],
-  cpp_args : [cpp_msvc_compat_args],
+  cpp_args : [cpp_args_disable_global_constructor, cpp_msvc_compat_args],
   gnu_symbol_visibility : 'hidden',
   build_by_default : false,
 )
diff --git a/src/compiler/glsl/meson.build b/src/compiler/glsl/meson.build
index d2966d73f3c..a48c1b73103 100644
--- a/src/compiler/glsl/meson.build
+++ b/src/compiler/glsl/meson.build
@@ -216,7 +216,7 @@ libglsl = static_library(
    ir_expression_operation_strings_h, ir_expression_operation_constant_h,
    float64_glsl_h],
   c_args : [c_msvc_compat_args, no_override_init_args],
-  cpp_args : [cpp_msvc_compat_args],
+  cpp_args : [cpp_args_disable_global_constructor, cpp_msvc_compat_args],
   gnu_symbol_visibility : 'hidden',
   link_with : libglcpp,
   include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_compiler],
@@ -228,7 +228,7 @@ libglsl_standalone = static_library(
   'glsl_standalone',
   [files_libglsl_standalone, ir_expression_operation_h],
   c_args : [c_msvc_compat_args, no_override_init_args],
-  cpp_args : [cpp_msvc_compat_args],
+  cpp_args : [cpp_args_disable_global_constructor, cpp_msvc_compat_args],
   gnu_symbol_visibility : 'hidden',
   include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux],
   link_with : [libglsl, libglsl_util, libglcpp_standalone],
@@ -240,7 +240,7 @@ glsl_compiler = executable(
   'glsl_compiler',
   'main.cpp',
   c_args : [c_msvc_compat_args, no_override_init_args],
-  cpp_args : [cpp_msvc_compat_args],
+  cpp_args : [cpp_args_disable_global_constructor, cpp_msvc_compat_args],
   gnu_symbol_visibility : 'hidden',
   dependencies : [dep_clock, dep_thread, idep_getopt, idep_mesautil],
   include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux],
@@ -254,7 +254,7 @@ glsl_test = executable(
   ['test.cpp', 'test_optpass.cpp', 'test_optpass.h',
    ir_expression_operation_h],
   c_args : [c_msvc_compat_args, no_override_init_args],
-  cpp_args : [cpp_msvc_compat_args],
+  cpp_args : [cpp_args_disable_global_constructor, cpp_msvc_compat_args],
   gnu_symbol_visibility : 'hidden',
   include_directories : [inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux],
   dependencies : [dep_clock, dep_thread, idep_getopt, idep_mesautil],
diff --git a/src/compiler/meson.build b/src/compiler/meson.build
index ce6c6c06c44..02755cd9383 100644
--- a/src/compiler/meson.build
+++ b/src/compiler/meson.build
@@ -46,7 +46,7 @@ libcompiler = static_library(
   [files_libcompiler, ir_expression_operation_h],
   include_directories : [inc_mapi, inc_mesa, inc_compiler, inc_include, inc_src, inc_gallium, inc_gallium_aux],
   c_args : [c_msvc_compat_args, no_override_init_args],
-  cpp_args : [cpp_msvc_compat_args],
+  cpp_args : [cpp_args_disable_global_constructor, cpp_msvc_compat_args],
   gnu_symbol_visibility : 'hidden',
   dependencies : [dep_valgrind],
   build_by_default : false,
diff --git a/src/gallium/drivers/crocus/meson.build b/src/gallium/drivers/crocus/meson.build
index e0a270bfb21..2dcafaebfa6 100644
--- a/src/gallium/drivers/crocus/meson.build
+++ b/src/gallium/drivers/crocus/meson.build
@@ -78,7 +78,7 @@ libcrocus = static_library(
     inc_mesa, inc_mapi
   ],
   c_args : [c_sse2_args],
-  cpp_args : [c_sse2_args],
+  cpp_args : [cpp_args_disable_global_constructor, c_sse2_args],
   gnu_symbol_visibility : 'hidden',
   dependencies : [dep_libdrm, dep_valgrind, idep_genxml, idep_libintel_common, idep_nir_headers],
   link_with : [
diff --git a/src/gallium/drivers/freedreno/meson.build b/src/gallium/drivers/freedreno/meson.build
index baddc0ae09f..e22c6abd3da 100644
--- a/src/gallium/drivers/freedreno/meson.build
+++ b/src/gallium/drivers/freedreno/meson.build
@@ -272,7 +272,7 @@ libfreedreno = static_library(
   [files_libfreedreno, freedreno_xml_header_files],
   include_directories : freedreno_includes,
   c_args : [freedreno_c_args],
-  cpp_args : [freedreno_cpp_args],
+  cpp_args : [cpp_args_disable_global_constructor, freedreno_cpp_args],
   gnu_symbol_visibility : 'hidden',
   dependencies : libfreedreno_dependencies,
   override_options : ['cpp_std=c++17'],
diff --git a/src/gallium/drivers/iris/meson.build b/src/gallium/drivers/iris/meson.build
index e64b861b2f6..b6d2f64610a 100644
--- a/src/gallium/drivers/iris/meson.build
+++ b/src/gallium/drivers/iris/meson.build
@@ -84,7 +84,7 @@ libiris = static_library(
     inc_mesa, inc_mapi
   ],
   c_args : [c_sse2_args],
-  cpp_args : [c_sse2_args],
+  cpp_args : [cpp_args_disable_global_constructor, c_sse2_args],
   gnu_symbol_visibility : 'hidden',
   dependencies : [dep_libdrm, dep_valgrind, idep_genxml, idep_nir_headers,
                   idep_libintel_common, idep_intel_driver_ds, ],
diff --git a/src/gallium/drivers/llvmpipe/meson.build b/src/gallium/drivers/llvmpipe/meson.build
index 210e2483970..47eff1680d2 100644
--- a/src/gallium/drivers/llvmpipe/meson.build
+++ b/src/gallium/drivers/llvmpipe/meson.build
@@ -113,7 +113,7 @@ libllvmpipe = static_library(
   'llvmpipe',
   [files_llvmpipe, sha1_h],
   c_args : [c_msvc_compat_args],
-  cpp_args : [cpp_msvc_compat_args],
+  cpp_args : [cpp_args_disable_global_constructor, cpp_msvc_compat_args],
   gnu_symbol_visibility : 'hidden',
   include_directories : [inc_gallium, inc_gallium_aux, inc_include, inc_src],
   dependencies : [ dep_llvm, idep_nir_headers, idep_mesautil ],
diff --git a/src/gallium/drivers/r600/meson.build b/src/gallium/drivers/r600/meson.build
index a2b644d8688..0975cd7acc1 100644
--- a/src/gallium/drivers/r600/meson.build
+++ b/src/gallium/drivers/r600/meson.build
@@ -208,7 +208,7 @@ libr600 = static_library(
   'r600',
   [files_r600, egd_tables_h],
   c_args : [r600_c_args, '-Wstrict-overflow=0'],
-  cpp_args: r600_cpp_args,
+  cpp_args : [cpp_args_disable_global_constructor, r600_cpp_args],
   override_options: ['cpp_std=c++17'],
   gnu_symbol_visibility : 'hidden',
   include_directories : [
diff --git a/src/gallium/drivers/radeonsi/meson.build b/src/gallium/drivers/radeonsi/meson.build
index 12ceae6e9b7..bc091f77fde 100644
--- a/src/gallium/drivers/radeonsi/meson.build
+++ b/src/gallium/drivers/radeonsi/meson.build
@@ -110,7 +110,7 @@ foreach ver : ['6', '7', '8', '9', '10', '103', '11']
     'radeonsi_gfx@0@'.format(ver),
     ['si_state_draw.cpp'],
     include_directories : radeonsi_include_dirs,
-    cpp_args : ['-DGFX_VER=@0@'.format(ver)],
+    cpp_args : [cpp_args_disable_global_constructor, '-DGFX_VER=@0@'.format(ver)],
     gnu_symbol_visibility : 'hidden',
     dependencies : radeonsi_deps,
   )
diff --git a/src/gallium/frontends/clover/meson.build b/src/gallium/frontends/clover/meson.build
index e9556c21459..af22474cb12 100644
--- a/src/gallium/frontends/clover/meson.build
+++ b/src/gallium/frontends/clover/meson.build
@@ -63,6 +63,7 @@ libclllvm = static_library(
   ),
   include_directories : clover_incs,
   cpp_args : [
+    cpp_args_disable_global_constructor,
     clover_cpp_args,
     clover_opencl_cpp_args,
     clover_spirv_cpp_args,
@@ -79,7 +80,7 @@ libclspirv = static_library(
   'clspirv',
   files('spirv/invocation.cpp', 'spirv/invocation.hpp'),
   include_directories : clover_incs,
-  cpp_args : [clover_opencl_cpp_args, clover_spirv_cpp_args],
+  cpp_args : [cpp_args_disable_global_constructor, clover_opencl_cpp_args, clover_spirv_cpp_args],
   gnu_symbol_visibility : 'hidden',
   dependencies : [dep_spirv_tools, idep_mesautil],
 )
@@ -89,7 +90,7 @@ libclnir = static_library(
   files('nir/invocation.cpp', 'nir/invocation.hpp'),
   include_directories : [clover_incs, inc_mesa],
   dependencies : idep_nir,
-  cpp_args : [clover_opencl_cpp_args, clover_spirv_cpp_args],
+  cpp_args : [cpp_args_disable_global_constructor, clover_opencl_cpp_args, clover_spirv_cpp_args],
   gnu_symbol_visibility : 'hidden',
 )
 
diff --git a/src/gallium/frontends/d3d10umd/meson.build b/src/gallium/frontends/d3d10umd/meson.build
index 28c27f0cf8e..d29f35284ec 100644
--- a/src/gallium/frontends/d3d10umd/meson.build
+++ b/src/gallium/frontends/d3d10umd/meson.build
@@ -28,7 +28,7 @@ libd3d10umd = static_library(
     'D3DKMT.cpp',
   ),
   c_args : _c_args_d3d10umd,
-  cpp_args : _c_args_d3d10umd,
+  cpp_args : [ cpp_args_disable_global_constructor, _c_args_d3d10umd],
   include_directories : [
     inc_include, inc_src, inc_gallium, inc_gallium_aux, inc_winddk,
   ],
diff --git a/src/intel/vulkan/grl/meson.build b/src/intel/vulkan/grl/meson.build
index 979414c07c1..fc21ab793a5 100644
--- a/src/intel/vulkan/grl/meson.build
+++ b/src/intel/vulkan/grl/meson.build
@@ -169,6 +169,7 @@ foreach t : [['125', 'gfx125', 'dg2']]
       '-DGFX_VERx10=@0@'.format(verX10),
     ],
     cpp_args : [
+      cpp_args_disable_global_constructor,
       no_override_init_args, c_sse2_args,
       '-DGFX_VERx10=@0@'.format(verX10),
     ],
diff --git a/src/intel/vulkan/meson.build b/src/intel/vulkan/meson.build
index f71018815b7..31495d63d62 100644
--- a/src/intel/vulkan/meson.build
+++ b/src/intel/vulkan/meson.build
@@ -215,7 +215,7 @@ libanv_common = static_library(
     inc_util,
   ],
   c_args : anv_flags,
-  cpp_args : anv_cpp_flags,
+  cpp_args : [ cpp_args_disable_global_constructor, anv_cpp_flags],
   gnu_symbol_visibility : 'hidden',
   dependencies : anv_deps,
 )
diff --git a/src/intel/vulkan_hasvk/meson.build b/src/intel/vulkan_hasvk/meson.build
index 2461ce17851..897fc5fd039 100644
--- a/src/intel/vulkan_hasvk/meson.build
+++ b/src/intel/vulkan_hasvk/meson.build
@@ -175,7 +175,7 @@ libanv_hasvk_common = static_library(
     inc_util,
   ],
   c_args : anv_flags,
-  cpp_args : anv_cpp_flags,
+  cpp_args : [cpp_args_disable_global_constructor, anv_cpp_flags],
   gnu_symbol_visibility : 'hidden',
   dependencies : anv_deps,
 )
diff --git a/src/mesa/meson.build b/src/mesa/meson.build
index 42cdfbaad8a..c0acb8dcdcb 100644
--- a/src/mesa/meson.build
+++ b/src/mesa/meson.build
@@ -487,7 +487,7 @@ libmesa = static_library(
   'mesa',
   files_libmesa,
   c_args : [c_msvc_compat_args, _mesa_windows_args],
-  cpp_args : [cpp_msvc_compat_args, _mesa_windows_args],
+  cpp_args : [cpp_args_disable_global_constructor, cpp_msvc_compat_args, _mesa_windows_args],
   gnu_symbol_visibility : 'hidden',
   include_directories : [
     inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux,
diff --git a/src/microsoft/vulkan/meson.build b/src/microsoft/vulkan/meson.build
index d1885442b49..d58b10c16f3 100644
--- a/src/microsoft/vulkan/meson.build
+++ b/src/microsoft/vulkan/meson.build
@@ -86,7 +86,7 @@ libvulkan_dzn = shared_library(
   ],
   dependencies : [dzn_deps, idep_vulkan_wsi],
   c_args : dzn_flags,
-  cpp_args : dzn_cpp_flags,
+  cpp_args : [cpp_args_disable_global_constructor, dzn_cpp_flags],
   gnu_symbol_visibility : 'hidden',
   link_args : [ld_args_bsymbolic, ld_args_gc_sections],
   name_prefix : host_machine.system() == 'windows' ? '' : 'lib',
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant