aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Richardson <Alexander.Richardson@cl.cam.ac.uk>2021-10-06 09:44:12 +0100
committerAlex Richardson <Alexander.Richardson@cl.cam.ac.uk>2022-02-16 19:37:01 +0000
commit9bf47884554b4f7e93c7c8fe4f51058a2efbb846 (patch)
treeeb4de7dcc7fc234180b89174473538068a302ce3
parent8db879f810e2dbc63824c43c17eeea0d3dbca1a2 (diff)
downloadlibepoxy-9bf47884554b4f7e93c7c8fe4f51058a2efbb846.tar.gz
Add the right include paths for EGL and X11 headers
Libepoxy currently depends on all headers living under the same prefix. This is not necessarily true: X11 headers can live in a separate prefix, for instance under /opt/X11. This is also the case when cross-compiling to a platform that sets up the build environment in non-standard ways. We could add `x11_dep` and `egl_dep` to the libepoxy target dependencies, but that could potentially add spurious linker flags and cause libepoxy to depend on libraries it will dlopen() during normal operations. To avoid that case, we use a partial_dep() object from Meson, and we limit the dependency to compiler flags and inclusion paths.
-rw-r--r--meson.build2
-rw-r--r--src/meson.build6
2 files changed, 8 insertions, 0 deletions
diff --git a/meson.build b/meson.build
index e0228d1..f3ae23f 100644
--- a/meson.build
+++ b/meson.build
@@ -165,9 +165,11 @@ endif
dl_dep = cc.find_library('dl', required: false)
gl_dep = dependency('gl', required: false)
egl_dep = dependency('egl', required: false)
+elg_headers_dep = egl_dep.partial_dependency(compile_args: true, includes: true)
# Optional dependencies for tests
x11_dep = dependency('x11', required: false)
+x11_headers_dep = x11_dep.partial_dependency(compile_args: true, includes: true)
# GLES v2 and v1 may have pkg-config files, courtesy of downstream
# packagers; let's check those first, and fall back to find_library()
diff --git a/src/meson.build b/src/meson.build
index 37e28f0..e19a918 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -59,6 +59,12 @@ epoxy_deps = [ dl_dep, ]
if host_system == 'windows'
epoxy_deps += [ opengl32_dep, gdi32_dep ]
endif
+if enable_x11
+ epoxy_deps += [ x11_headers_dep, ]
+endif
+if build_egl
+ epoxy_deps += [ elg_headers_dep, ]
+endif
libepoxy = library(
'epoxy',