tu: Fix the advertised maxFragmentInputComponents
[mesa.git] / meson.build
index d69b17bb1579962f3e92f8335f1494df6a8779a7..3623d3dc0fd403e22b05fb1b79937f73875b6d35 100644 (file)
@@ -786,6 +786,9 @@ if with_platform_android
     dependency('hardware'),
     dependency('sync'),
   ]
+  if with_gallium
+    dep_android += dependency('backtrace')
+  endif
   if get_option('platform-sdk-version') >= 26
     dep_android += dependency('nativewindow')
   endif
@@ -933,7 +936,11 @@ if cc.get_id() == 'msvc'
                '/wd4756',  # overflow in constant arithmetic
                '/wd4800',  # forcing value to bool 'true' or 'false' (performance warning)
                '/wd4996',  # disabled deprecated POSIX name warnings
-               '/wd4291']  # no matching operator delete found
+               '/wd4291',  # no matching operator delete found
+               '/wd4146',  # unary minus operator applied to unsigned type, result still unsigned
+               '/wd4200',  # nonstandard extension used: zero-sized array in struct/union
+               '/wd4624',  # destructor was implicitly defined as deleted [from LLVM]
+              ]
     if cc.has_argument(a)
       c_args += a
     endif
@@ -958,6 +965,7 @@ else
     '-fno-math-errno',
     '-fno-trapping-math',
     '-Qunused-arguments',
+    '-fno-common',
   ]
   # MinGW chokes on format specifiers and I can't get it all working
   if not (cc.get_id() == 'gcc' and host_machine.system() == 'windows')
@@ -1022,11 +1030,16 @@ if host_machine.system() == 'windows'
   if cc.get_id() == 'msvc'
     add_project_link_arguments(
       '/fixed:no',
-      '/incremental:no',
       '/dynamicbase',
       '/nxcompat',
       language : ['c', 'cpp'],
     )
+    if get_option('buildtype') != 'debug'
+      add_project_link_arguments(
+        '/incremental:no',
+        language : ['c', 'cpp'],
+      )
+    endif
   else
     add_project_link_arguments(
       '-Wl,--nxcompat',
@@ -1393,6 +1406,11 @@ else
 endif
 
 _shared_llvm = get_option('shared-llvm')
+if _shared_llvm == 'auto'
+  _shared_llvm = (host_machine.system() != 'windows')
+else
+  _shared_llvm = (_shared_llvm == 'true')
+endif
 _llvm = get_option('llvm')
 
 # The cmake method will never find libllvm.so|dylib; this is fine for windows
@@ -1493,7 +1511,7 @@ if host_machine.system() == 'windows'
   if prog_flex.found()
     # windows compatibility (uses <io.h> instead of <unistd.h> and _isatty,
     # _fileno functions)
-    prog_flex = [prog_flex, '--wincompat']
+    prog_flex = [prog_flex, '--wincompat', '-D__STDC_VERSION__=199901']
   else
     prog_flex = [find_program('lex', 'flex', required : with_any_opengl)]
   endif
@@ -1512,7 +1530,9 @@ else
   # Disable deprecated keyword warnings, since we have to use them for
   # old-bison compat.  See discussion in
   # https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2161
-  prog_bison = [prog_bison, '-Wno-deprecated']
+  if meson.version().version_compare('>= 0.52.0') and find_program('bison', required : false, version : '> 2.3').found()
+    prog_bison = [prog_bison, '-Wno-deprecated']
+  endif
 
   prog_flex = find_program('flex', required : with_any_opengl)
 endif