egl: put full path to libEGL_mesa.so in GLVND json
authorEric Engestrom <eric.engestrom@intel.com>
Fri, 6 Dec 2019 16:17:12 +0000 (16:17 +0000)
committerEric Engestrom <eric@engestrom.ch>
Sun, 2 Feb 2020 17:46:17 +0000 (17:46 +0000)
This is useful when installing to a non-standard path.

glvnd_icd.py copied & adapted from src/intel/vulkan/anv_icd.py

Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3038>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3038>

src/egl/glvnd_icd.py [new file with mode: 0644]
src/egl/main/50_mesa.json [deleted file]
src/egl/meson.build

diff --git a/src/egl/glvnd_icd.py b/src/egl/glvnd_icd.py
new file mode 100644 (file)
index 0000000..3985087
--- /dev/null
@@ -0,0 +1,24 @@
+# Copyright 2019 Intel Corporation
+# SPDX-License-Identifier: MIT
+
+import argparse
+import json
+import os.path
+
+if __name__ == '__main__':
+    parser = argparse.ArgumentParser()
+    parser.add_argument('--out', help='Output json file.', required=True)
+    parser.add_argument('--lib-path', help='Path to libEGL_mesa.so', required=True)
+    args = parser.parse_args()
+
+    path = os.path.join(args.lib_path, 'libEGL_mesa.so')
+
+    json_data = {
+        'file_format_version': '1.0.0',
+        'ICD': {
+            'library_path': path,
+        },
+    }
+
+    with open(args.out, 'w') as f:
+        json.dump(json_data, f, indent=4, sort_keys=True, separators=(',', ': '))
diff --git a/src/egl/main/50_mesa.json b/src/egl/main/50_mesa.json
deleted file mode 100644 (file)
index 8aaaa10..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "file_format_version" : "1.0.0",
-    "ICD" : {
-        "library_path" : "libEGL_mesa.so.0"
-    }
-}
index 12d74ec37faacbb4c53e4ddcb9c0d21d28bd4551..db34453ee9b21c9c772f27326f753e29e1876040 100644 (file)
@@ -152,8 +152,18 @@ else
   deps_for_egl += dep_glvnd
   files_egl += [g_egldispatchstubs_h, g_egldispatchstubs_c]
   files_egl += files('main/eglglvnd.c', 'main/egldispatchstubs.c')
   deps_for_egl += dep_glvnd
   files_egl += [g_egldispatchstubs_h, g_egldispatchstubs_c]
   files_egl += files('main/eglglvnd.c', 'main/egldispatchstubs.c')
-  install_data(
-    'main/50_mesa.json',
+
+  egl_icd = custom_target(
+    'glvnd_icd',
+    input : 'glvnd_icd.py',
+    output : '50_mesa.json',
+    command : [
+      prog_python, '@INPUT@',
+      '--lib-path', join_paths(get_option('prefix'), get_option('libdir')),
+      '--out', '@OUTPUT@',
+    ],
+    build_by_default : true,
+    install : true,
     install_dir : join_paths(get_option('datadir'), 'glvnd', 'egl_vendor.d')
   )
 endif
     install_dir : join_paths(get_option('datadir'), 'glvnd', 'egl_vendor.d')
   )
 endif