summaryrefslogtreecommitdiffstats
path: root/meson.build
Commit message (Collapse)AuthorAgeFilesLines
* 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]>
* meson: Only error building gallium video without libdrm when the platform is drmDylan Baker2019-10-031-1/+1
| | | | | | | Fixes: 3b265f61f5f61f08718fe5bb4b2726f9b8e016cc ("meson: gallium media state trackers require libdrm with x11") Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1878 Tested-by: Vinson Lee <[email protected]>
* meson: Test for -Wl,--build-id=sha1Maya Rashish2019-09-301-4/+2
| | | | | | | | instead of hard-coding OS list. Helps Solaris ld builds. Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Erik Faye-Lund <[email protected]> Signed-off-by: Maya Rashish <[email protected]>
* meson: gallium media state trackers require libdrm with x11Dylan Baker2019-09-301-0/+3
| | | | | | | | v2: - update copyright year in all changed files - rebase on master Cc: 19.1 19.2 <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
* meson: Link xvmc with libxvDylan Baker2019-09-271-1/+3
| | | | | | | | | | | Prior to xvmc 1.0.12 libxvmc incorrectly required libxv, but that was fixed. This results in compilation failures for the gallium xvmc tracker and tools. This patch fixes that by explicitly linking to libxv. Fixes: 22a817af8a89eb3c762fc3e07b443a3ce37d7416 ("meson: build gallium xvmc state tracker") Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1844 Reviewed-by: Adam Jackson <[email protected]>
* meson: fix logic for generating .pc files with old glvndDylan Baker2019-09-251-4/+5
| | | | | | | | | | | | | | We want to generate PC files for non-glvnd builds and for builds with old glvnd, but the current logic doesn't do that, it builds them unconditionally, and for GLES it builds the shared libraries, which is also not what we want. This does not generate .pc files for gles1 or gles2. Which it we weren't doing before either, making this not a regression but a return to status-quo.o Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1838 Fixes: 93df862b6affb6b8507e40601212a58012bfa873 ("meson: re-add incorrect pkg-config files with GLVND for backward compatibility") Reviewed-by: Matt Turner <[email protected]>
* meson: re-add incorrect pkg-config files with GLVND for backward compatibilityEric Engestrom2019-09-251-0/+4
| | | | | | | | | | | | This is a bit counter-intuitive, but the issue is that GLVND is broken in versions <= 1.1.1, so we need to keep wrongly providing these files to cover up their mistake, otherwise the rest of the world ends up broken. Suggested-by: Dylan Baker <[email protected]> Cc: [email protected] Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* meson: split more compiler options to their own lineEric Engestrom2019-09-241-2/+4
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* meson: drop -Wno-foo bug workaround for Meson < 0.46Eric Engestrom2019-09-241-18/+9
| | | | | | | | | | This was a workaround for a bug in Meson that was fixed in 0.46 [1]. [1] https://github.com/mesonbuild/meson/pull/2284 Fixes: f7b6a8d12fdc446e3251 ("meson: bump required version to 0.46") Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* meson: split compiler warnings one per lineEric Engestrom2019-09-231-1/+2
| | | | | Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* meson: Check for SPIRV-Tools and llvm-spirvPierre Moreau2019-09-211-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes since: * v12 (Karol Herbst): - rename CLOVER_ALLOW_SPIRV to HAVE_CLOVER_SPIRV * v11 (Karol Herbst): - only set new defines for clover to speed up recompilation - remove autotools * v10: - Add a new flag (`--enable-opencl-spirv` for autotools, and `-Dopencl-spirv=true` for meson) for enabling SPIR-V support in clover, and never automagically enable it without that flag. (Dylan Baker) - When enabling the SPIR-V support, the SPIRV-Tools and SPIRV-LLVM-Translator libraries are now required dependencies. * v7: - Properly align LLVMSPIRVLib comment (Dylan Baker) - Only define CLOVER_ALLOW_SPIRV when **both** dependencies are found: autotools was only requiring one or the other. * v6: Replace the llvm-spirv repository by the new official SPIRV-LLVM-Translator. * v4: Add a comment saying where to find llvm-spirv (Karol Herbst). * v3: - make SPIRV-Tools and llvm-spirv optional (Francisco Jerez); - bump requirement for llvm-spirv to version 0.2 * v2: - Bump the required version of SPIRV-Tools to the latest release; - Add a dependency on llvm-spirv. Reviewed-by: Dylan Baker <[email protected]> (v10) Reviewed-by: Karol Herbst <[email protected]> Reviewed-by: Francisco Jerez <[email protected]>
* docs: Update bug report URLs for the gitlab migrationAdam Jackson2019-09-191-1/+1
| | | | | | Cc: [email protected] Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
* meson: Add coroutines component to llvmpipe build.Vinson Lee2019-09-111-0/+2
| | | | | | | Fixes: d32690b43c91 ("gallivm: add coroutine pass manager support") Suggested-by: Gert Wollny <[email protected]> Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* gallium: Require LLVM >= 3.9Adam Jackson2019-09-111-3/+1
| | | | | | | | To go any further than this would be to break the current version of Android. Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* gallium: Require LLVM >= 3.8Adam Jackson2019-09-111-1/+1
| | | | | Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* gallium: Require LLVM >= 3.7Adam Jackson2019-09-111-1/+1
| | | | | Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* gallium: Require LLVM >= 3.6Adam Jackson2019-09-111-1/+1
| | | | | Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>