summaryrefslogtreecommitdiff
path: root/meson.build
AgeCommit message (Collapse)AuthorFilesLines
2020-01-22meson: Do not require libdrm for DRI2 on hurdSamuel Thibault1-1/+3
Cc: 19.3 <mesa-stable@lists.freedesktop.org> Reviewed-by: Dylan Baker <dylan@pnwbakers.com> Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3231> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3231>
2020-01-22intel/perf: adapt to platforms like Solaris without d_type in struct direntAlan Coopersmith1-0/+5
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> [Eric: factor out the is_dir_or_link() check and fix a bug in v1] Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> v3: include directory path when lstat'ing files v4: fix inverted check in enumerate_sysfs_metrics() Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2258> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2258>
2020-01-02meson: Enable -Werror=int-conversion.Bas Nieuwenhuizen1-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 <eric.engestrom@intel.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2570> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2570>
2019-12-06meson: Include iris in default gallium-drivers for x86/x86_64Kenneth Graunke1-1/+2
We build i965 by default on x86/x86_64 platforms; let's build iris too. Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2019-11-26meson: Add -Werror=gnu-empty-initializer to MSVC compat argsDylan Baker1-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 <hoegsberg@google.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2019-11-25meson: only build imgui when neededSamuel Pitoiset1-0/+4
Only required for Intel tools or the Vulkan overlay layer. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2019-11-23Meson: Add llvm>=9 modulesMichel Zou1-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 <dylan@pnwbakers.com>
2019-11-23Meson: Check for dladdr with MinGWMichel Zou1-8/+6
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
2019-11-11util: Use ZSTD for shader cache if possibleDylan Baker1-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 <eric.engestrom@intel.com> (v1) Reviewed-by: Eric Anholt <eric@anholt.net>
2019-11-05mesa/imports: let the build system detect strtok_r()Eric Engestrom1-1/+1
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2013 Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com> Tested-by: Prodea Alexandru-Liviu <liviuprodea@yahoo.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2019-11-05meson: require `nm` again on Unix systemsEric Engestrom1-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 <eric.engestrom@intel.com> Reviwed-by: Dylan Baker <dylan@pnwbakers>
2019-11-05meson: add windows support to symbols checksEric Engestrom1-3/+9
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviwed-by: Dylan Baker <dylan@pnwbakers>
2019-11-05meson: move the generic symbols check arguments to a common variableEric Engestrom1-0/+1
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviwed-by: Dylan Baker <dylan@pnwbakers>
2019-11-05meson: add variable to control the symbols checksEric Engestrom1-0/+1
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviwed-by: Dylan Baker <dylan@pnwbakers>
2019-10-31meson: revert glvnd workaroundEric Engestrom1-4/+0
This effectively reverts MR !2112. Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2019-10-31meson: require glvnd 1.2.0Eric Engestrom1-1/+1
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2019-10-29meson: define _GNU_SOURCE on FreeBSDEric Engestrom1-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 <eric.engestrom@intel.com>
2019-10-28ac: get tcc_harvested from the kernelMarek Olšák1-1/+1
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2019-10-28zink: introduce opengl over vulkanErik Faye-Lund1-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 <erik.faye-lund@collabora.com> Acked-by: Jordan Justen <jordan.l.justen@intel.com>
2019-10-24meson: add -Werror=empty-body to disallow `if(x);`Eric Engestrom1-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 <eric.engestrom@intel.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
2019-10-21meson: Require meson >= 0.49.1 when using icc or iclDylan Baker1-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 <eric.engestrom@intel.com>
2019-10-18meson: Use cmake to find LLVM when building for windowsDylan Baker1-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 <ajax@redhat.com>
2019-10-18meson: Add support for wrapping llvmDylan Baker1-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 <ajax@redhat.com>
2019-10-16meson: Don't use expat on windowsDylan Baker1-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 <eric.engestrom@intel.com>
2019-10-16meson: recognize "sunos" as the system name for SolarisAlan Coopersmith1-1/+3
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Acked-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2019-10-16util: Workaround lack of flock on SolarisAlan Coopersmith1-1/+1
v2: Replace autoconf check for flock() with meson check Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Acked-by: Eric Engestrom <eric.engestrom@intel.com>
2019-10-10meson: don't error on formaters with mingwDylan Baker1-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 <hoegsberg@google.com>
2019-10-10meson: don't define USE_ELF_TLS for windowsDylan Baker1-1/+1
Because the macros for exporting dll symbols and using TLS are mutually exclusive. Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> Acked-by: Kristian H. Kristensen <hoegsberg@google.com>
2019-10-10meson: disable sse4.1 optimizations with msvcDylan Baker1-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 <eric.engestrom@intel.com> Acked-by: Kristian H. Kristensen <hoegsberg@google.com>
2019-10-10meson: Add support for using win_flex and win_bison on windowsDylan Baker1-2/+25
Acked-by: Kristian H. Kristensen <hoegsberg@google.com>
2019-10-10meson: don't look for rt on windowsDylan Baker1-1/+1
v6: - Minor refactor Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> Acked-by: Kristian H. Kristensen <hoegsberg@google.com>
2019-10-10meson: Don't check for posix_memalign on windowsDylan Baker1-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 <eric.engestrom@intel.com> Acked-by: Kristian H. Kristensen <hoegsberg@google.com>
2019-10-10meson: fix gallium-osmesa to build for windowsDylan Baker1-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 <hoegsberg@google.com>
2019-10-10meson: add windows compiler checks and librariesDylan Baker1-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 <hoegsberg@google.com>
2019-10-10meson: rename `glvnd_missing_pc_files` to `not glvnd_has_headers_and_pc_files`Eric Engestrom1-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 <eric.engestrom@intel.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2019-10-08meson: fix sys/mkdev.h detection on SolarisEric Engestrom1-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 <alan.coopersmith@oracle.com> Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> Tested-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2019-10-08meson: Always add LLVM coroutines module.Bas Nieuwenhuizen1-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 <gert.wollny@collabora.com>
2019-10-07egl: replace MESA_EGL_NO_X11_HEADERS hack with upstream EGL_NO_X11Eric Engestrom1-2/+2
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
2019-10-03meson: Only error building gallium video without libdrm when the platform is drmDylan Baker1-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 <vlee@freedesktop.org>
2019-09-30meson: Test for -Wl,--build-id=sha1Maya Rashish1-4/+2
instead of hard-coding OS list. Helps Solaris ld builds. Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Signed-off-by: Maya Rashish <coypu@sdf.org>
2019-09-30meson: gallium media state trackers require libdrm with x11Dylan Baker1-0/+3
v2: - update copyright year in all changed files - rebase on master Cc: 19.1 19.2 <mesa-stable@lists.freedesktop.org> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2019-09-27meson: Link xvmc with libxvDylan Baker1-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 <ajax@redhat.com>
2019-09-25meson: fix logic for generating .pc files with old glvndDylan Baker1-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 <mattst88@gmail.com>
2019-09-25meson: re-add incorrect pkg-config files with GLVND for backward compatibilityEric Engestrom1-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 <dylan@pnwbakers.com> Cc: mesa-stable@lists.freedesktop.org Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2019-09-24meson: split more compiler options to their own lineEric Engestrom1-2/+4
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2019-09-24meson: drop -Wno-foo bug workaround for Meson < 0.46Eric Engestrom1-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 <eric.engestrom@intel.com> Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
2019-09-23meson: split compiler warnings one per lineEric Engestrom1-1/+2
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2019-09-21meson: Check for SPIRV-Tools and llvm-spirvPierre Moreau1-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 <dylan@pnwbakers.com> (v10) Reviewed-by: Karol Herbst <kherbst@redhat.com> Reviewed-by: Francisco Jerez <currojerez@riseup.net>
2019-09-19docs: Update bug report URLs for the gitlab migrationAdam Jackson1-1/+1
Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
2019-09-11meson: Add coroutines component to llvmpipe build.Vinson Lee1-0/+2
Fixes: d32690b43c91 ("gallivm: add coroutine pass manager support") Suggested-by: Gert Wollny <gert.wollny@collabora.com> Signed-off-by: Vinson Lee <vlee@freedesktop.org> Reviewed-by: Dylan Baker <dylan@pnwbakers.com>