build: Build etnaviv drm
authorGuido Günther <agx@sigxcpu.org>
Fri, 31 May 2019 12:35:08 +0000 (14:35 +0200)
committerGuido Günther <agx@sigxcpu.org>
Wed, 5 Jun 2019 08:58:05 +0000 (08:58 +0000)
Signed-off-by: Guido Günther <guido.gunther@puri.sm>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
meson.build
src/etnaviv/drm/meson.build [new file with mode: 0644]
src/etnaviv/meson.build [new file with mode: 0644]
src/gallium/drivers/etnaviv/meson.build
src/gallium/winsys/etnaviv/drm/meson.build
src/meson.build

index 23038295a8a5517f67203697a3047507f506e8f5..f0fa57ca5154696d9ef8736a85359df5d366eeea 100644 (file)
@@ -1163,13 +1163,11 @@ dep_m = cc.find_library('m', required : false)
 dep_libdrm_amdgpu = null_dep
 dep_libdrm_radeon = null_dep
 dep_libdrm_nouveau = null_dep
-dep_libdrm_etnaviv = null_dep
 dep_libdrm_intel = null_dep
 
 _drm_amdgpu_ver = '2.4.97'
 _drm_radeon_ver = '2.4.71'
 _drm_nouveau_ver = '2.4.66'
-_drm_etnaviv_ver = '2.4.89'
 _drm_intel_ver = '2.4.75'
 _drm_ver = '2.4.75'
 
@@ -1179,7 +1177,6 @@ _libdrm_checks = [
   ['radeon', (with_gallium_radeonsi or with_dri_r100 or with_dri_r200 or
               with_gallium_r300 or with_gallium_r600)],
   ['nouveau', (with_gallium_nouveau or with_dri_nouveau)],
-  ['etnaviv', with_gallium_etnaviv],
 ]
 
 # VC4 only needs core libdrm support of this version, not a libdrm_vc4
@@ -1188,6 +1185,11 @@ if with_gallium_vc4
   _drm_ver = '2.4.89'
 endif
 
+# etnaviv only needs core libdrm
+if with_gallium_etnaviv
+  _drm_ver = '2.4.89'
+endif
+
 # Loop over the enables versions and get the highest libdrm requirement for all
 # active drivers.
 _drm_blame = ''
diff --git a/src/etnaviv/drm/meson.build b/src/etnaviv/drm/meson.build
new file mode 100644 (file)
index 0000000..8fb6a7a
--- /dev/null
@@ -0,0 +1,48 @@
+# Copyright © 2019 Purism SPC
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+libetnaviv_drm_files = files(
+  'etnaviv_device.c',
+  'etnaviv_gpu.c',
+  'etnaviv_bo.c',
+  'etnaviv_bo_cache.c',
+  'etnaviv_perfmon.c',
+  'etnaviv_pipe.c',
+  'etnaviv_cmd_stream.c',
+  'etnaviv_drmif.h',
+  'etnaviv_priv.h',
+)
+
+libetnaviv_drm = static_library(
+  'etnaviv_drm',
+  libetnaviv_drm_files,
+  include_directories : [
+    inc_etnaviv,
+    inc_common,
+  ],
+  c_args : [c_vis_args, no_override_init_args],
+  cpp_args : [cpp_vis_args],
+  dependencies : [
+    dep_libdrm,
+    dep_valgrind,
+  ],
+  build_by_default : false,
+)
+
diff --git a/src/etnaviv/meson.build b/src/etnaviv/meson.build
new file mode 100644 (file)
index 0000000..a3c9eaf
--- /dev/null
@@ -0,0 +1,23 @@
+# Copyright © 2019 Purism SPC
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+inc_etnaviv = include_directories(['.'])
+
+subdir('drm')
index 75ed93eccc71315e21b7a0ea67b2dfe929d5f01d..c84f4449c6304e14dc0d6d69224ada6b32d53515 100644 (file)
@@ -93,18 +93,23 @@ libetnaviv = static_library(
   'etnaviv',
   files_etnaviv,
   c_args : [c_vis_args],
-  include_directories : [inc_include, inc_src, inc_gallium, inc_gallium_aux],
-  dependencies : dep_libdrm_etnaviv,
+  include_directories : [
+    inc_include, inc_src, inc_gallium, inc_gallium_aux, inc_etnaviv,
+  ],
+  link_with: libetnaviv_drm,
+  dependencies : dep_libdrm,
 )
 
 etnaviv_compiler = executable(
   'etnaviv_compiler',
   'etnaviv_compiler_cmdline.c',
-  include_directories : [inc_include, inc_src, inc_gallium, inc_gallium_aux],
-  link_with : [libmesa_util, libgallium, libetnaviv],
-  dependencies : [dep_libdrm_etnaviv],
+  include_directories : [
+    inc_include, inc_src, inc_gallium, inc_gallium_aux, inc_etnaviv,
+  ],
+  link_with : [libmesa_util, libgallium, libetnaviv, libetnaviv_drm],
   build_by_default : with_tools.contains('etnaviv'),
   install : with_tools.contains('etnaviv'),
+  dependencies : dep_libdrm,
 )
 
 driver_etnaviv = declare_dependency(
index 21bb6f67567ce5e9e1cf5734775064fd5501c562..f931fd39e5bd191c5be008396324b51b19ad4b8b 100644 (file)
@@ -22,7 +22,9 @@ libetnavivdrm = static_library(
   'etnavivdrm',
   'etnaviv_drm_winsys.c',
   include_directories : [
-    inc_include, inc_src, inc_gallium, inc_gallium_aux, inc_gallium_drivers
+    inc_include, inc_src, inc_gallium, inc_gallium_aux, inc_gallium_drivers,
+    inc_etnaviv,
   ],
-  dependencies : dep_libdrm_etnaviv
+  link_with: libetnaviv_drm,
+  dependencies : [dep_libdrm],
 )
index 6d04b5fc3b2ae7a6f940fed27c82607cdefe4aae..8b983c15b6042de31f5701351a505863d6c0e51b 100644 (file)
@@ -64,6 +64,9 @@ endif
 if with_gallium_vc4 or with_gallium_v3d
   subdir('broadcom')
 endif
+if with_gallium_etnaviv
+  subdir('etnaviv')
+endif
 if with_gallium_freedreno or with_freedreno_vk
   subdir('freedreno')
 endif