meson: For MSVC, suppress warnings generated by useless delayloads
authorJesse Natalie <jenatali@microsoft.com>
Sat, 10 Apr 2021 19:14:19 +0000 (12:14 -0700)
committerMarge Bot <eric+marge@anholt.net>
Mon, 12 Apr 2021 19:12:40 +0000 (19:12 +0000)
LLVM's tools delayload some OS DLLs to improve process startup times,
but they put the delayload in the exported linker args that Meson picks
up and then applies to all libraries that link against LLVM. Since our
binaries don't link against the OS libs that are being delayloaded, that
generates a "useless delayload" warning.

Acked-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10157>

meson.build

index 1f36cbb..98ad42d 100644 (file)
@@ -1636,6 +1636,14 @@ if with_llvm
       cpp_args += '-fno-rtti'
     endif
   endif
+
+  if cc.get_id() == 'msvc'
+    # Suppress "/DELAYLOAD:ole32.dll/shell32.dll ignored" warnings that LLVM adds
+    add_project_link_arguments(
+      '/ignore:4199',
+      language : ['c', 'cpp'],
+    )
+  endif
 elif with_amd_vk or with_gallium_radeonsi or with_gallium_swr or with_swrast_vk
   error('The following drivers require LLVM: Radv, RadeonSI, SWR, Lavapipe. One of these is enabled, but LLVM is disabled.')
 elif with_gallium_opencl