-
Notifications
You must be signed in to change notification settings - Fork 558
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
add recipe for EGL #3192
base: master
Are you sure you want to change the base?
add recipe for EGL #3192
Changes from 8 commits
1886057
8c20534
3dbc914
f9d29f1
fa44db1
1ea3398
7e9a48a
ec7d651
20f8129
75f15ba
20eea78
c455a81
7db25cf
9648b2b
40f2f7d
af25704
229d0f2
8b57cc7
19aa3bf
39c08e9
ce6ee08
6027ae4
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
# Note that this script can accept some limited command-line arguments, run | ||
# `julia build_tarballs.jl --help` to see a usage message. | ||
using BinaryBuilder, Pkg | ||
|
||
name = "EGL" | ||
version = v"1.4.0" | ||
|
||
# Collection of sources required to complete build | ||
sources = [ | ||
GitSource("https://gitlab.freedesktop.org/mesa/mesa.git", "1b74a12ea0ae900d49d1921ed8931eb6131e1f18"), | ||
DirectorySource("./bundled"), | ||
] | ||
|
||
# Bash recipe for building across all platforms | ||
script = raw""" | ||
cd $WORKSPACE/srcdir/mesa/ | ||
mkdir build | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The automatic installation of the license looks for files with reasonable names in the only directory inside There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. OK, will change that |
||
cd build | ||
apk add py3-mako meson wayland-dev | ||
|
||
# pkgconfig returns the wrong path here. It's an ugly hack, but it works | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'll have a look about what is going on there, but in any case you must delete this link at the end, otherwise it'll end up inside the tarball There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ah, right! I forgot. |
||
mkdir -p /workspace/destdir/usr/bin/ | ||
ln -s $(which wayland-scanner) /workspace/destdir/usr/bin/ | ||
|
||
meson -D egl=enabled -D gles1=enabled -D gles2=enabled -D platforms=wayland -D glx=disabled -D c_args="-Wno-implicit-function-declaration" ../ --cross-file="${MESON_TARGET_TOOLCHAIN}" | ||
ninja -j${nproc} | ||
ninja install | ||
|
||
rm /workspace/destdir/usr/bin/wayland-scanner | ||
# taken from https://metadata.ftp-master.debian.org/changelogs//main/m/mesa/mesa_20.3.5-1_copyright | ||
install_license ../../copyright | ||
""" | ||
|
||
# These are the platforms we will build for by default, unless further | ||
# platforms are passed in on the command line | ||
platforms = [ | ||
Platform("x86_64", "linux"; libc="glibc", cxxstring_abi="cxx11"), | ||
Platform("x86_64", "linux"; libc="musl", cxxstring_abi="cxx11"), | ||
] | ||
|
||
# The products that we will ensure are always built | ||
products = Product[ | ||
LibraryProduct("libEGL", :libEGL), | ||
LibraryProduct("libGLESv1_CM", :libGLESv1_CM), | ||
LibraryProduct("libGLESv2", :libGLESv2), | ||
LibraryProduct("libvulkan_intel", :libvulkan_intel), | ||
LibraryProduct("libvulkan_lvp", :libvulkan_lvp), | ||
LibraryProduct("libvulkan_radeon", :libvulkan_radeon), | ||
LibraryProduct("libxatracker", :libxatracker), | ||
LibraryProduct("libgbm", :libgbm), | ||
LibraryProduct("libglapi", :libglapi), | ||
] | ||
|
||
# Dependencies that must be installed before this package can be built | ||
dependencies = Dependency[ | ||
Dependency("Zlib_jll"), | ||
Dependency("libdrm_jll"), | ||
Dependency("LLVM_jll"), | ||
Dependency("Elfutils_jll"), | ||
Dependency("Expat_jll"; compat="~2.2.10"), | ||
simeonschaub marked this conversation as resolved.
Show resolved
Hide resolved
|
||
Dependency("Zstd_jll"), | ||
Dependency("Wayland_protocols_jll"), | ||
] | ||
|
||
# Build the tarballs, and possibly a `build.jl` as well. | ||
build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies; preferred_gcc_version=v"8", julia_compat="1.6") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this called EGL and not Mesa, which we have already, but only for Windows?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was a bit confused about this as well TBH. I think the current MESA jll should definitely have a different name. I named this EGL, because that is what my goal of building was initially, but I will need GBM and GLESv2 as well, so I wasn't unhappy that they were built alongside as well. MESA does have additional components like OpenCL and some stuff relating to Xorg as well, which I don't build here, but naming this jll
MESA
probably makes a lot more sense than the package we currently callMESA
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any reason we can't fold this into the existing
Mesa_jll
? You should be able to enable multiple APIs in one build, and make the Unix-only options conditional on the OS.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes that sounds like a good plan. I plan to pick this up eventually, but I am just a bit busy ATM. Feel free to take this over if you are interested in this though.