[Mesa-dev] [PATCH v4 00/49] Meson for Windows

Dylan Baker dylan at pnwbakers.com
Wed Aug 22 17:04:23 UTC 2018


This is the 4th iteration of my meson for windows series. It includes
(hopefully) all of the review feedback I got on the v3, as well as a few new
fixes and features, namely the appveyor build now uses the same LLVM as scons to
build LLVMPipe (I would like to build SWR, but that requires LLVM 6.0.0, and the
provided LLVM is 5.0.1). It also has a fix for building nir tests with 32-bit
MSVC, due to a dependency on mesa main that is header only with GCC, Clang, and
64-bit MSVC.

This is available on my gitlab:
https://gitlab.freedesktop.org/dbaker/mesa meson-windows

And the appveyor results are here for this exact set of patches:
https://ci.appveyor.com/project/dcbaker/mesa/build/87

Dylan Baker (49):
  move u_math to src/util
  Replace uses of _mesa_bitcount with util_bitcount
  meson: always define libglapi
  add a git ignore for subprojects
  meson: add a zlib subproject
  meson: add a expat subproject
  glapi: export glapi_destroy_multithread when building shared-glapi on
    windows
  glsl: fix general_ir_test with mingw
  meson: fix dl detection on non cygwin windows
  meson: build getopt when using msvc
  meson: Add a platform for windows
  meson: don't build glx or dri by default on windows
  meson: don't allow glvnd on windows
  meson: add windows compiler checks and libraries
  meson: Make shader-cache a trillean instead of boolean
  meson: Add windows defines to glapi
  meson: Add necessary defines for mesa_gallium on windows
  meson: build gallium gdi winsys
  meson: build wgl state tracker
  meson: build libgl-gdi target
  meson: build graw-gdi target
  meson: fix gallium-osmesa to build for windows
  meson: Don't check for posix_memalign on windows
  meson: Add support for wrapping llvm
  util/xmlconfig: include strndup.h for windows
  meson: fix pipe-loader compilation for windows
  meson: don't look for rt on windows
  meson: Add support for using win_flex and win_bison on windows
  meson: make nm binary optional
  meson: for incluse of inttypes.h for glcpp with msvc
  meson: disable sse4.1 optimizations with msvc
  meson: add switches for SWR with MSVC
  meson: don't define GLX_USE_TLS for windows
  meson: Add idep_getopt for tests
  util/tests: Use define instead of VLA
  meson: Don't build glsl cache_test for windows
  glsl/tests: define ssize_t on windows
  meson: Set visibility and compat args for graw
  meson: don't build gallium trivial tests on windows
  meson: Fix gtest linkage on msvc
  meson: disable graw tests on mingw
  meson: don't build or run mesa-sha1 test on windows
  tests/vma: fix build with MSVC
  meson: maintain names of shared API libraries
  appveyor: Add support for meson as well as scons
  appveyor: use chocolatey (cinst) to install winflexbison
  appveyor: use msbuild instead of ninja
  appveyor: Add a wrap for llvm
  appveyor: cache pip packages

 appveyor.yml                                  |  49 ++-
 build-support/appveyor-llvm.meson.build       |  56 +++
 docs/meson.html                               |  66 +++
 meson.build                                   | 401 ++++++++++++------
 meson_options.txt                             |  12 +-
 src/broadcom/cle/v3d_packet_helpers.h         |   2 +-
 src/compiler/glsl/glcpp/meson.build           |  16 +-
 src/compiler/glsl/ir_constant_expression.cpp  |   2 +-
 src/compiler/glsl/ir_expression_operation.py  |   2 +-
 src/compiler/glsl/link_varyings.cpp           |   5 +-
 src/compiler/glsl/linker.cpp                  |   9 +-
 src/compiler/glsl/meson.build                 |   6 +-
 src/compiler/glsl/tests/blob_test.c           |   4 +
 src/compiler/glsl/tests/general_ir_test.cpp   |  14 +-
 src/compiler/glsl/tests/meson.build           |  21 +-
 src/compiler/nir/nir.c                        |   6 +-
 src/egl/meson.build                           |   2 +-
 src/gallium/auxiliary/Makefile.sources        |   2 -
 src/gallium/auxiliary/meson.build             |   2 -
 src/gallium/auxiliary/pipe-loader/meson.build |   9 +-
 src/gallium/auxiliary/util/u_format.c         |   2 +-
 src/gallium/auxiliary/util/u_format_bptc.c    |   2 +-
 src/gallium/auxiliary/util/u_format_latc.c    |   2 +-
 src/gallium/auxiliary/util/u_format_other.c   |   2 +-
 src/gallium/auxiliary/util/u_format_pack.py   |   2 +-
 src/gallium/auxiliary/util/u_format_rgtc.c    |   2 +-
 src/gallium/auxiliary/util/u_format_s3tc.c    |   2 +-
 src/gallium/auxiliary/util/u_format_yuv.h     |   2 +-
 src/gallium/auxiliary/util/u_format_zs.c      |   2 +-
 src/gallium/drivers/swr/meson.build           |   3 +-
 .../drivers/swr/rasterizer/jitter/meson.build |  13 +-
 src/gallium/meson.build                       |  14 +-
 src/gallium/state_trackers/glx/xlib/glx_api.c |   7 +-
 src/gallium/state_trackers/glx/xlib/xm_api.c  |  11 +-
 src/gallium/state_trackers/osmesa/meson.build |  12 +-
 .../{osmesa => wgl}/meson.build               |  39 +-
 .../{graw-xlib => graw-gdi}/meson.build       |  21 +-
 src/gallium/targets/graw-null/meson.build     |   2 +
 src/gallium/targets/graw-xlib/meson.build     |   1 +
 .../{graw-xlib => libgl-gdi}/meson.build      |  32 +-
 src/gallium/targets/libgl-xlib/Makefile.am    |   1 +
 src/gallium/targets/osmesa/meson.build        |  11 +-
 src/gallium/tests/meson.build                 |  11 +-
 .../{tests => winsys/sw/gdi}/meson.build      |  12 +-
 src/gbm/meson.build                           |   2 +-
 src/{gallium/tests => getopt}/meson.build     |  14 +-
 src/gtest/meson.build                         |   7 +
 src/intel/blorp/blorp_blit.c                  |   5 +-
 src/intel/compiler/brw_fs.cpp                 |   3 +-
 src/intel/compiler/brw_fs_nir.cpp             |   3 +-
 src/intel/compiler/brw_nir.c                  |   5 +-
 src/intel/compiler/brw_vec4.cpp               |   3 +-
 src/intel/compiler/brw_vec4_visitor.cpp       |   3 +-
 src/intel/vulkan/anv_blorp.c                  |   2 +-
 src/intel/vulkan/anv_image.c                  |   9 +-
 src/intel/vulkan/anv_nir_lower_multiview.c    |   8 +-
 src/intel/vulkan/anv_pipeline.c               |   2 +-
 src/intel/vulkan/anv_private.h                |   7 +-
 src/intel/vulkan/genX_cmd_buffer.c            |   4 +-
 src/intel/vulkan/genX_query.c                 |  14 +-
 src/mapi/es1api/meson.build                   |  14 +-
 src/mapi/es2api/meson.build                   |  14 +-
 src/mapi/glapi/glapi.h                        |   2 +-
 src/mapi/glapi/meson.build                    |  13 +-
 src/mapi/meson.build                          |   2 +
 src/mapi/shared-glapi/meson.build             |  11 +-
 src/mesa/drivers/common/meta.c                |   5 +-
 src/mesa/drivers/dri/i965/brw_curbe.c         |   3 +-
 src/mesa/drivers/dri/i965/brw_draw_upload.c   |   3 +-
 .../drivers/dri/i965/brw_performance_query.c  |   5 +-
 src/mesa/drivers/dri/i965/brw_wm.c            |   7 +-
 src/mesa/drivers/x11/Makefile.am              |   1 +
 src/mesa/drivers/x11/fakeglx.c                |   7 +-
 src/mesa/drivers/x11/meson.build              |   2 +-
 src/mesa/drivers/x11/xm_api.c                 |  17 +-
 src/mesa/main/arrayobj.c                      |   5 +-
 src/mesa/main/buffers.c                       |   7 +-
 src/mesa/main/imports.c                       |  38 --
 src/mesa/main/imports.h                       |  15 -
 src/mesa/meson.build                          |  16 +-
 src/mesa/program/program_parse.y              |   4 +-
 src/meson.build                               |   5 +
 src/util/Makefile.sources                     |   2 +
 src/util/meson.build                          |  23 +-
 src/util/tests/hash_table/clear.c             |  13 +-
 src/util/tests/hash_table/delete_management.c |  13 +-
 src/util/tests/hash_table/insert_many.c       |  11 +-
 src/util/tests/hash_table/meson.build         |   1 +
 src/util/tests/hash_table/random_entry.c      |   7 +-
 src/util/tests/string_buffer/meson.build      |   1 +
 src/util/tests/vma/vma_random_test.cpp        |   8 +
 src/{gallium/auxiliary => }/util/u_math.c     |   0
 src/{gallium/auxiliary => }/util/u_math.h     |   2 +-
 src/util/xmlconfig.c                          |   1 +
 subprojects/.gitignore                        |   3 +
 subprojects/expat.wrap                        |  10 +
 subprojects/zlib.wrap                         |  10 +
 97 files changed, 888 insertions(+), 398 deletions(-)
 create mode 100644 build-support/appveyor-llvm.meson.build
 copy src/gallium/state_trackers/{osmesa => wgl}/meson.build (55%)
 copy src/gallium/targets/{graw-xlib => graw-gdi}/meson.build (75%)
 copy src/gallium/targets/{graw-xlib => libgl-gdi}/meson.build (58%)
 copy src/gallium/{tests => winsys/sw/gdi}/meson.build (86%)
 copy src/{gallium/tests => getopt}/meson.build (85%)
 rename src/{gallium/auxiliary => }/util/u_math.c (100%)
 rename src/{gallium/auxiliary => }/util/u_math.h (99%)
 create mode 100644 subprojects/.gitignore
 create mode 100644 subprojects/expat.wrap
 create mode 100644 subprojects/zlib.wrap

-- 
2.18.0



More information about the mesa-dev mailing list