vulkan: Track dependencies of Python imports

The meson.build was unaware of transitive dependencies introduced by
Python imports.

Android still needs fixing. But I did not update the Android files lest
I break the build.

Ideally, we would fix this by using a Python runner that generates
a depfile, similar to how meson creates depfiles for C files by passing
flags -MD -MQ -MF to gcc. But this patch gets the job done, without
stalling on the ideal general solution, by manually tracking the Python
imports in new 'foo_depend_files' variables.

CC: mesa-stable@lists.freedesktop.org
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1466>
This commit is contained in:
Chad Versace
2021-03-29 12:39:07 -07:00
committed by Marge Bot
parent 84e0f6dbd8
commit 0845cabc72
9 changed files with 31 additions and 1 deletions

View File

@@ -27,6 +27,7 @@ radv_entrypoints = custom_target(
'--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'radv',
'--device-prefix', 'sqtt',
],
depend_files : vk_entrypoints_gen_depend_files,
)
libradv_files = files(

View File

@@ -26,6 +26,7 @@ v3dv_entrypoints = custom_target(
prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--proto', '--weak',
'--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'v3dv',
],
depend_files : vk_entrypoints_gen_depend_files,
)
v3dv_extensions_c = custom_target(

View File

@@ -26,6 +26,7 @@ tu_entrypoints = custom_target(
prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--proto', '--weak',
'--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'tu',
],
depend_files : vk_entrypoints_gen_depend_files,
)
tu_extensions_c = custom_target(

View File

@@ -7,6 +7,7 @@ lvp_entrypoints = custom_target(
prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--proto', '--weak',
'--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'lvp',
],
depend_files : vk_entrypoints_gen_depend_files,
)
liblvp_files = files(

View File

@@ -30,6 +30,7 @@ anv_entrypoints = custom_target(
'--device-prefix', 'gfx11', '--device-prefix', 'gfx12',
'--device-prefix', 'gfx125',
],
depend_files : vk_entrypoints_gen_depend_files,
)
intel_icd = custom_target(

View File

@@ -18,6 +18,23 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
# Mesa-local imports in the Python files must be declared here for correct
# dependency tracking.
vk_extensions_depend_files = [
]
vk_extensions_gen_depend_files = [
files('vk_extensions.py'),
vk_extensions_depend_files,
]
vk_dispatch_table_gen_depend_files = [
files('vk_extensions.py'),
vk_extensions_depend_files,
]
vk_entrypoints_gen_depend_files = [
files('vk_dispatch_table_gen.py'),
vk_dispatch_table_gen_depend_files,
]
vk_entrypoints_gen = files('vk_entrypoints_gen.py')
vk_extensions_gen = files('vk_extensions_gen.py')
vk_icd_gen = files('vk_icd_gen.py')
@@ -55,6 +72,7 @@ vk_common_entrypoints = custom_target(
prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--proto', '--weak',
'--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'vk_common',
],
depend_files : vk_entrypoints_gen_depend_files,
)
vk_dispatch_table = custom_target(
@@ -65,6 +83,7 @@ vk_dispatch_table = custom_target(
prog_python, '@INPUT0@', '--xml', '@INPUT1@',
'--out-c', '@OUTPUT0@', '--out-h', '@OUTPUT1@'
],
depend_files : vk_dispatch_table_gen_depend_files,
)
vk_enum_to_str = custom_target(
@@ -85,7 +104,7 @@ vk_extensions = custom_target(
prog_python, '@INPUT0@', '--xml', '@INPUT1@',
'--out-c', '@OUTPUT0@', '--out-h', '@OUTPUT1@'
],
depend_files : files('vk_extensions.py'),
depend_files : vk_extensions_gen_depend_files,
)
libvulkan_util = static_library(

View File

@@ -33,6 +33,8 @@ import xml.etree.ElementTree as et
from collections import OrderedDict, namedtuple
from mako.template import Template
# Mesa-local imports must be declared in meson variable
# '{file_without_suffix}_depend_files'.
from vk_extensions import *
# We generate a static hash table for entry point lookup

View File

@@ -28,6 +28,8 @@ import os
from mako.template import Template
# Mesa-local imports must be declared in meson variable
# '{file_without_suffix}_depend_files'.
from vk_dispatch_table_gen import get_entrypoints_from_xml
TEMPLATE_H = Template(COPYRIGHT + """\

View File

@@ -28,6 +28,8 @@ import xml.etree.ElementTree as et
from mako.template import Template
# Mesa-local imports must be declared in meson variable
# '{file_without_suffix}_depend_files'.
from vk_extensions import *
_TEMPLATE_H = Template(COPYRIGHT + """