From b921df352d95886213d8a5db991c785c9bf5755c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Guido=20G=C3=BCnther?= Date: Fri, 31 May 2019 14:35:08 +0200 Subject: [PATCH] build: Build etnaviv drm MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Guido Günther Reviewed-by: Christian Gmeiner --- meson.build | 8 +++-- src/etnaviv/drm/meson.build | 48 ++++++++++++++++++++++++++++++ src/etnaviv/meson.build | 23 ++++++++++++++ src/gallium/drivers/etnaviv/meson.build | 15 ++++++---- src/gallium/winsys/etnaviv/drm/meson.build | 6 ++-- src/meson.build | 3 ++ 6 files changed, 93 insertions(+), 10 deletions(-) create mode 100644 src/etnaviv/drm/meson.build create mode 100644 src/etnaviv/meson.build diff --git a/meson.build b/meson.build index 2303829..f0fa57c 100644 --- a/meson.build +++ b/meson.build @@ -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 index 0000000..8fb6a7a --- /dev/null +++ b/src/etnaviv/drm/meson.build @@ -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 index 0000000..a3c9eaf --- /dev/null +++ b/src/etnaviv/meson.build @@ -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') diff --git a/src/gallium/drivers/etnaviv/meson.build b/src/gallium/drivers/etnaviv/meson.build index 75ed93e..c84f444 100644 --- a/src/gallium/drivers/etnaviv/meson.build +++ b/src/gallium/drivers/etnaviv/meson.build @@ -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( diff --git a/src/gallium/winsys/etnaviv/drm/meson.build b/src/gallium/winsys/etnaviv/drm/meson.build index 21bb6f6..f931fd3 100644 --- a/src/gallium/winsys/etnaviv/drm/meson.build +++ b/src/gallium/winsys/etnaviv/drm/meson.build @@ -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], ) diff --git a/src/meson.build b/src/meson.build index 6d04b5f..8b983c1 100644 --- a/src/meson.build +++ b/src/meson.build @@ -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 -- 2.7.4