aboutsummaryrefslogtreecommitdiffstats
path: root/meson.build
Commit message (Collapse)AuthorAgeFilesLines
* meson: do not disable incremental linking for debug-buildsErik Faye-Lund2020-04-201-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Meson specifies /EDITANDCONTINUE for MSVC projects when using the debug build-type. This collides with our across-the-board disabling of incremental linking. It's clear that we don't want to do incremental linking for release-builds; it increase the code-size, and adds some needless jumps to be able to patch in new code. But for debug-builds this seems like a good thing; we can now debug and on-the-fly recompile changes if we want to. This flag seems to have been simply forwarded from the SCons build system, where it makes a bit more sense; SCons doesn't really integrate with visual studio, so you can't properly debug with it. But Meson does, so let's keep some bells-and-whistles here. So let's avoid disabling incremental linking for debug-builds. For other builds we still want to do this, because Meson only disables it automatically for minsize-builds. This avoids a boat-loads of warnings on the form: warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/INCREMENTAL:NO' specification Acked-by: Jose Fonseca <[email protected]> Acked-by: Dylan Baker <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4572>
* meson: tell flex that we support c99Erik Faye-Lund2020-04-161-1/+1
| | | | | | | | | | | | | flexint.h uses stdint.h if the compiler claims to support C99. MSVC doesn't support enough of C99 to enable this flag, but it supports enough to keep flex happy. Without this, we end up with *both* some flex-specific definitions as well as our own definitions from mesa-headers, producing a slew of compiler warnings. Reviewed-by: Brian Paul <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4577>
* meson: Make shared-llvm into a tri-state booleanDaniel Stone2020-04-161-0/+5
| | | | | | | | | | | | | | | | Choosing LLVM's link mode is legitimate on UNIX systems, but only static actually really works under Windows. Give shared-llvm a default 'auto' mode which will pick the previous default of true (shared) on UNIX systems, but newly defaulting to false (static) on Windows. Signed-off-by: Daniel Stone <[email protected]> Suggested-by: Dylan Baker <[email protected]> Reviewed-by: Dylan Baker <[email protected]> Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4555>
* meson: fix debug build on AndroidDominik Behr2020-04-071-0/+3
| | | | | | | | | | | debug_stack functions are implemented in another file for Android. Also add backtrace library dependency. Reviewed-by: Chia-I Wu <[email protected]> Reviewed-bu: Kristian H. Kristensen <[email protected]> Signed-off-by: Dominik Behr <[email protected]> Acked-by: Dylan Baker <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2435>
* meson: Add VS 4624 warning exclusion to remove piles of LLVM warningsDaniel Stone2020-03-301-1/+3
| | | | | | | | Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Charmaine Lee <[email protected]> Reviewed-by: Brian Paul <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4343> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4343>
* meson: disable some more warnings on msvcErik Faye-Lund2020-03-301-1/+3
| | | | | | | | | | These warnings triggers for me, and they are harmless as-is. Let's disable them to avoid hiding actually scary warnings. Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Charmaine Lee <[email protected]> Reviewed-by: Brian Paul <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4343>
* meson: enable -fno-common by defaultPierre-Eric Pelloux-Prayer2020-03-091-0/+1
| | | | | | | | | | This flag is enabled by default starting with gcc 10. All the compilation issues have been fixed, so use it by default to make sure we're not introducing regressions. Reviewed-by: Michel Dänzer <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4058> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4058>
* meson: Enable -Wno-deprecated only for bison > 2.3.Vinson Lee2020-03-011-1/+3
| | | | | | | | | | | Older versions of bison do not support the -W option. Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2571 Fixes: 11a1cb2fa8da ("meson: Disable bison's -Wdeprecated since we still support old bison.") Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Erik Faye-Lund <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3993> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3993>
* meson: Disable bison's -Wdeprecated since we still support old bison.Eric Anholt2020-02-251-0/+6
| | | | | | | | | | We can't stop using deprecated keywords because we maintain support for ancient bison. Silence the warning so that builds are less noisy. Acked-by: Timothy Arceri <[email protected]> Reviewed-by: Erik Faye-Lund <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3868> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3868>
* meson: explicitly disallow unsupported build directory layoutEric Engestrom2020-02-181-0/+4
| | | | | | | | Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2512 Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Dylan Baker <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3832> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3832>
* turnip: Drop explicit configure opt-in for turnipKristian H. Kristensen2020-02-061-4/+0
| | | | | | | We don't need this silly thing anymore. Everthing here is WIP. Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3739> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3739>
* meson: don't bother trying `python2`Eric Engestrom2020-02-051-1/+1
| | | | | | | | | | Meson requires `python3`, so we know it's there, no need to fall back to python2. Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Dylan Baker <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3701> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3701>
* meson: Do not require libdrm for DRI2 on hurdSamuel Thibault2020-01-221-1/+3
| | | | | | | | Cc: 19.3 <[email protected]> Reviewed-by: Dylan Baker <[email protected]> Signed-off-by: Samuel Thibault <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3231> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3231>
* intel/perf: adapt to platforms like Solaris without d_type in struct direntAlan Coopersmith2020-01-221-0/+5
| | | | | | | | | | | | Signed-off-by: Alan Coopersmith <[email protected]> [Eric: factor out the is_dir_or_link() check and fix a bug in v1] Signed-off-by: Eric Engestrom <[email protected]> v3: include directory path when lstat'ing files v4: fix inverted check in enumerate_sysfs_metrics() Reviewed-by: Eric Engestrom <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2258> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2258>
* meson: Enable -Werror=int-conversion.Bas Nieuwenhuizen2020-01-021-0/+1
| | | | | | | | | | | | | I think implicit conversions here are almost always wrong: 1) wrong argument position ptr vs. int 2) will often have issues with 32-bit platforms. Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Dylan Baker <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2570> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2570>
* meson: Include iris in default gallium-drivers for x86/x86_64Kenneth Graunke2019-12-061-1/+2
| | | | | | We build i965 by default on x86/x86_64 platforms; let's build iris too. Reviewed-by: Dylan Baker <[email protected]>
* meson: Add -Werror=gnu-empty-initializer to MSVC compat argsDylan Baker2019-11-261-4/+4
| | | | | | | | | | | | | | | Only clang has this argument (at least as of clang 8 and gcc 9), which errors when using the gcc empty initializer syntax in C: ```C struct foo f = {}; ``` GCC has a warning for this, but only when using -Wpedantic, which is a lot of noise to lose useful warnings in. Reviewed-by: Kristian H. Kristensen <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
* meson: only build imgui when neededSamuel Pitoiset2019-11-251-0/+4
| | | | | | | Only required for Intel tools or the Vulkan overlay layer. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
* Meson: Add llvm>=9 modulesMichel Zou2019-11-231-1/+1
| | | | | | | | | Fixes build with MinGW, with shared LLVM and lto /tmp/opengl32.dll.BxiIYm.ltrans59.ltrans.o:<artificial>:(.text+0x1674): undefined reference to `LLVMAddInstructionCombiningPass' See also scons/llvm.py Acked-by: Dylan Baker <[email protected]>
* Meson: Check for dladdr with MinGWMichel Zou2019-11-231-8/+6
| | | | Reviewed-by: Eric Engestrom <[email protected]>
* util: Use ZSTD for shader cache if possibleDylan Baker2019-11-111-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows ZSTD instead of ZLIB to be used for compressing the shader cache. On a 72 core system emulating skl with a full shader-db (with i965): ZSTD: 1915.10s user 229.27s system 5150% cpu 41.632 total (cold cache) 225.40s user 10.87s system 3810% cpu 6.201 total (warm cache) 154M (235M on disk) ZLIB: 2231.33s user 194.24s system 1899% cpu 2:07.72 total (cold cache) 229.15s user 10.63s system 3906% cpu 6.139 total (warm cache) 163M (244M on disk) Tim Arceri sees (8 core ryzen and a full shader-db): ZSTD: 2505.22 user 40.50 system 3:18.73 elapsed 1280% CPU (cold cache) 418.71 user 14.93 system 0:46.53 elapsed 931% CPU (warm cache) 454.3 MB (681.7 MB on disk) ZLIB: 3069.83 user 40.02 system 4:20.13 elapsed 1195% CPU (cold cache) 425.50 user 15.17 system 0:46.80 elapsed 941% CPU (warm cache) 470.3 MB (701.4 MB on disk) Reviewed-by: Eric Engestrom <[email protected]> (v1) Reviewed-by: Eric Anholt <[email protected]>
* mesa/imports: let the build system detect strtok_r()Eric Engestrom2019-11-051-1/+1
| | | | | | | | Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2013 Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Matt Turner <[email protected]> Tested-by: Prodea Alexandru-Liviu <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* meson: require `nm` again on Unix systemsEric Engestrom2019-11-051-2/+2
| | | | | | | | | This was made optional in ff9bf223c24143260a97 ("meson: make nm binary optional") for Windows, but proper windows has been added and `nm` is now only used on Unix systems. Signed-off-by: Eric Engestrom <[email protected]> Reviwed-by: Dylan Baker <dylan@pnwbakers>
* meson: add windows support to symbols checksEric Engestrom2019-11-051-3/+9
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviwed-by: Dylan Baker <dylan@pnwbakers>
* meson: move the generic symbols check arguments to a common variableEric Engestrom2019-11-051-0/+1
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviwed-by: Dylan Baker <dylan@pnwbakers>
* meson: add variable to control the symbols checksEric Engestrom2019-11-051-0/+1
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviwed-by: Dylan Baker <dylan@pnwbakers>
* meson: revert glvnd workaroundEric Engestrom2019-10-311-4/+0
| | | | | | | This effectively reverts MR !2112. Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* meson: require glvnd 1.2.0Eric Engestrom2019-10-311-1/+1
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* meson: define _GNU_SOURCE on FreeBSDEric Engestrom2019-10-291-1/+1
| | | | | | | | _mesa_strtod() needs this to use strtod_l(), which behaves correctly wrt `,` vs `.` decimal separator. Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2008 Signed-off-by: Eric Engestrom <[email protected]>
* ac: get tcc_harvested from the kernelMarek Olšák2019-10-281-1/+1
| | | | Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* zink: introduce opengl over vulkanErik Faye-Lund2019-10-281-0/+5
| | | | | | | | | | Here's zink, a so far pretty simple vulkan-gallium driver that is able to translate some applications from OpenGL to Vulkan. The compiler is quite limited for now, this will be improved on later. Signed-off-by: Erik Faye-Lund <[email protected]> Acked-by: Jordan Justen <[email protected]>
* meson: add -Werror=empty-body to disallow `if(x);`Eric Engestrom2019-10-241-0/+2
| | | | | | | | | | | This would have prevented a bug in MR 2058 [1]; with that MR fixed, nothing else uses empty-body blocks, so let's just forbid them altogether. [1] https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2058#note_237880 Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Kristian H. Kristensen <[email protected]>
* meson: Require meson >= 0.49.1 when using icc or iclDylan Baker2019-10-211-6/+2
| | | | | | | | | | | | | 0.49.0 can compile most of mesa with ICC or ICL, but not SWR without additional workarounds in our meson.build files. Bumping patch version is easier and shouldn't be a big burden anyway, especially to cover a niche compiler. The check originally only covered ICC, but now covers ICL as well. Fixes: 3740ffb59c89d8d879b1e0c1aed32c389dd82a35 ("meson: add switches for SWR with MSVC") Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1937 Acked-by: Eric Engestrom <[email protected]>
* meson: Use cmake to find LLVM when building for windowsDylan Baker2019-10-181-2/+10
| | | | | | | | | We don't use cmake normally because it always results in static linking. This is very problematic for *nix OSes which expect shared linking by default, but for windows this isn't a problem as LLVM doesn't support shared linking on windows anyway. Reviewed-by: Adam Jackson <[email protected]>
* meson: Add support for wrapping llvmDylan Baker2019-10-181-1/+14
| | | | | | | | For building on Windows (when not using cygwin), users may want to use a binary wrap of LLVM, this provides a fallback to the LLVM dependency which may be used in this case Reviewed-by: Adam Jackson <[email protected]>
* meson: Don't use expat on windowsDylan Baker2019-10-161-1/+5
| | | | | | | | It's not really needed, and there's no debian package for it so we're forced to fall back to wraps in mesa's CI. This can be problematic in itself. Reviewed-by: Eric Engestrom <[email protected]>
* meson: recognize "sunos" as the system name for SolarisAlan Coopersmith2019-10-161-1/+3
| | | | | | Signed-off-by: Alan Coopersmith <[email protected]> Acked-by: Eric Engestrom <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* util: Workaround lack of flock on SolarisAlan Coopersmith2019-10-161-1/+1
| | | | | | | v2: Replace autoconf check for flock() with meson check Signed-off-by: Alan Coopersmith <[email protected]> Acked-by: Eric Engestrom <[email protected]>
* meson: don't error on formaters with mingwDylan Baker2019-10-101-31/+30
| | | | | | | | MSVC is generally happy, but mingw errors. I've spent as much time (several days) trying to squash all of these warnings and I'm done with it, just leave them as warnings with MinGW. Acked-by: Kristian H. Kristensen <[email protected]>
* meson: don't define USE_ELF_TLS for windowsDylan Baker2019-10-101-1/+1
| | | | | | | | Because the macros for exporting dll symbols and using TLS are mutually exclusive. Reviewed-by: Eric Engestrom <[email protected]> Acked-by: Kristian H. Kristensen <[email protected]>
* meson: disable sse4.1 optimizations with msvcDylan Baker2019-10-101-1/+1
| | | | | | | | | There isn't an obvious command line switch here, /arch:AVX *might* be the right thing, but meson doesn't know what to do here either and leaves the -msse4.1 and -mstackrealign. Reviewed-by: Eric Engestrom <[email protected]> Acked-by: Kristian H. Kristensen <[email protected]>
* meson: Add support for using win_flex and win_bison on windowsDylan Baker2019-10-101-2/+25
| | | | Acked-by: Kristian H. Kristensen <[email protected]>
* meson: don't look for rt on windowsDylan Baker2019-10-101-1/+1
| | | | | | | v6: - Minor refactor Reviewed-by: Eric Engestrom <[email protected]> Acked-by: Kristian H. Kristensen <[email protected]>
* meson: Don't check for posix_memalign on windowsDylan Baker2019-10-101-1/+11
| | | | | | | | There's a mingw bug for this, it exports __builtin_posix_memalign but not posix_memalign, so the check will succeed, but compiling will fail. Reviewed-by: Eric Engestrom <[email protected]> Acked-by: Kristian H. Kristensen <[email protected]>
* meson: fix gallium-osmesa to build for windowsDylan Baker2019-10-101-1/+5
| | | | | | | | v2: - set so_version to '' (only affects windows) - always set lib prefix to 'lib', even on msvc v5: - key NO_EXPORTS on shared glapi instead of gles. Acked-by: Kristian H. Kristensen <[email protected]>
* meson: add windows compiler checks and librariesDylan Baker2019-10-101-55/+135
| | | | | | | | | | | | v4: - Fix typo in warning code (4246 -> 4267) - Copy comments from scons for what MSVC warnings codes do - Merge linker argument changes into this commit v5: - Add /GR- on windows if LLVM is build without rtti (equivalent to GCc's -fno-rtti') - Add /wd4291, which is catching the same hting that -Wno-non-virtual-dtor is on GCC/Clang Acked-by: Kristian H. Kristensen <[email protected]>
* meson: rename `glvnd_missing_pc_files` to `not glvnd_has_headers_and_pc_files`Eric Engestrom2019-10-101-5/+4
| | | | | | | | This reflects better what is provided by glvnd or not. Fixes: 93df862b6affb6b8507e ("meson: re-add incorrect pkg-config files with GLVND for backward compatibility") Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* meson: fix sys/mkdev.h detection on SolarisEric Engestrom2019-10-081-2/+7
| | | | | | | | | | | | | On Solaris, sys/sysmacros.h has long-deprecated copies of major() & minor() but not makedev(). sys/mkdev.h has all three and is the preferred choice. Let's make sure we check for all 3 major(), minor() and makedev(). Reported-by: Alan Coopersmith <[email protected]> Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Alan Coopersmith <[email protected]> Tested-by: Alan Coopersmith <[email protected]>
* meson: Always add LLVM coroutines module.Bas Nieuwenhuizen2019-10-081-4/+1
| | | | | | | | | | | | It gets used by the gallium auxiliary draw module, which gets used pretty much always when LLVM is used as JIT. At the same time most builds don't hit the issue here because the shared library of LLVM contains all modules. Fixes: d32690b43c91 ("gallivm: add coroutine pass manager support") Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/951 Reviewed-by: Gert Wollny <[email protected]>
* egl: replace MESA_EGL_NO_X11_HEADERS hack with upstream EGL_NO_X11Eric Engestrom2019-10-071-2/+2
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Daniel Stone <[email protected]>