Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Meson build support #7

Closed
11 tasks done
pal1000 opened this issue Mar 28, 2018 · 10 comments
Closed
11 tasks done

Meson build support #7

pal1000 opened this issue Mar 28, 2018 · 10 comments
Labels

Comments

@pal1000
Copy link
Owner

pal1000 commented Mar 28, 2018

To add Meson build support to the build script the following tasks must be completed:

Preparation phase

  • Ensure everything is loaded and unloaded from PATH correctly;
  • Split the build script into modules to handle growth triggered by this new feature support.

Python

  • Recognize the Python version (py2/3 awareness);
  • Extend py2/3 awareness with Python launcher support;
  • Research what modules are needed for py3 / meson build and make the appropriate changes.

Mesa3D

  • Support build with Meson and MsBuild if applicable;
  • Support build with Meson and Ninja if applicable;
  • LLVM Meson binary wrap support (required for llvmpipe and SWR);
  • Retain current control over build targets or options.

Check new dependencies

  • pkg-config and if needed libwinpthreads.

Finale

  • Test for regressions and fix bugs.
@pal1000
Copy link
Owner Author

pal1000 commented Mar 28, 2018

Update 1: I might be able to delay LLVM related updates if stars align.
Update 2: Split py2/3 awareness and modules picking into 2 distinct tasks.
Update 3-4: 5f04ad0 and f69484b completes 1st and 2nd tasks.
Update 5. Python related 2nd task completed in 0be2e09.
Update 6. An extra already completed task has been added. Everything is in place to attempt Meson build. Figuring out the build options is the tricky part.

pal1000 added a commit that referenced this issue Mar 30, 2018
Added Python version detection support.
Hard fail if Python is unreachable.

Related: #7 tasks 1 and 2.
pal1000 added a commit that referenced this issue Mar 31, 2018
- before doing anything check the dependencies availability including Meson;
- add code comments;
- improve python 2/3 awareness;
- hard fail if Python or Visual Studio are missing.

Completes #7 tasks 1-2.
pal1000 added a commit that referenced this issue Apr 2, 2018
@pal1000
Copy link
Owner Author

pal1000 commented May 22, 2018

This is on hold until upstream support is available.

@pal1000
Copy link
Owner Author

pal1000 commented Jul 2, 2018

After looking at Dylan Baker's WIP branch I learned that:

  • it requires both Python 2.7 and 3.x or at least MSI version of Meson + Python 2.7. I am a bit concerned it still depends on Python 2.7. Python 2.7 end of life is 2020;
  • it requires mingw64 pkg-config which also depends on pthreads to work. This means more documentation to write and more dependency checking and loading.
    Overall this means more dependencies instead of less, more complex environment resulting in harder to implement build script. I don't like where this is going.

pal1000 added a commit that referenced this issue Jul 11, 2018
…t time.

Proper fix is to replace parallel dual python with simultaneous dual python.
Related #7.
@pal1000
Copy link
Owner Author

pal1000 commented Jul 11, 2018

There is now enough information in Dylan Baker's meson-windows branch to tackle these tasks:

  • LLVM binary wrap support;
  • Implement pkg-config dependency lookup. Needed by Meson only.

These tasks can be done in no specific order.

@pal1000
Copy link
Owner Author

pal1000 commented Jul 15, 2018

Notify @oscarbg as #2 depends on #7. As soon as is #7 is done, #2 gets sorted too.

pal1000 added a commit that referenced this issue Jul 17, 2018
We have LLVM, osmesa gallium, swr including AVX512 (#2) and GLES support that also works with osmesa unlike Scons where it fails to build.
We don't have graw-gdi and OpenMP support yet. It's missing upstream.
Floating point texyures and renderbuffers are unconditionally enabled so the build option was removed from Meson build.
Related #7.
pal1000 added a commit that referenced this issue Jul 17, 2018
We have LLVM, osmesa gallium, swr including AVX512 (#2) and GLES support that also works with osmesa unlike Scons where it fails to build.
We don't have graw-gdi and OpenMP support yet. It's missing upstream.
Floating point textures and renderbuffers are unconditionally enabled so the build option was removed from Meson build.
Related #7.
@pal1000 pal1000 modified the milestones: 18.1.2.600-1, 18.3.0 Aug 28, 2018
@pal1000 pal1000 removed this from the 18.3.0 milestone Nov 17, 2018
@pal1000
Copy link
Owner Author

pal1000 commented Nov 17, 2018

This didn't make into 18.3 branchpoint upstream so it missed the milestone deadline upstream.

@pal1000
Copy link
Owner Author

pal1000 commented Mar 26, 2019

LLVM has no Meson build so the last touching points will be ironed out as soon as this feature lands upstream.

@pal1000
Copy link
Owner Author

pal1000 commented Jun 15, 2019

Now there is a merge request for this upstream https://gitlab.freedesktop.org/mesa/mesa/merge_requests/986
As soon as it lands I'll have a clear picture of the situation. Everything seams to be in control at the time I am writing this.

@pal1000
Copy link
Owner Author

pal1000 commented Oct 24, 2019

This landed in Mesa3D master branch and will be available in 19.3.0.

@pal1000
Copy link
Owner Author

pal1000 commented Dec 13, 2019

Meson build system was used when building MSVC packages.

@pal1000 pal1000 closed this as completed Dec 13, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant