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:
@@ -27,6 +27,7 @@ radv_entrypoints = custom_target(
|
|||||||
'--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'radv',
|
'--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'radv',
|
||||||
'--device-prefix', 'sqtt',
|
'--device-prefix', 'sqtt',
|
||||||
],
|
],
|
||||||
|
depend_files : vk_entrypoints_gen_depend_files,
|
||||||
)
|
)
|
||||||
|
|
||||||
libradv_files = files(
|
libradv_files = files(
|
||||||
|
@@ -26,6 +26,7 @@ v3dv_entrypoints = custom_target(
|
|||||||
prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--proto', '--weak',
|
prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--proto', '--weak',
|
||||||
'--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'v3dv',
|
'--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'v3dv',
|
||||||
],
|
],
|
||||||
|
depend_files : vk_entrypoints_gen_depend_files,
|
||||||
)
|
)
|
||||||
|
|
||||||
v3dv_extensions_c = custom_target(
|
v3dv_extensions_c = custom_target(
|
||||||
|
@@ -26,6 +26,7 @@ tu_entrypoints = custom_target(
|
|||||||
prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--proto', '--weak',
|
prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--proto', '--weak',
|
||||||
'--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'tu',
|
'--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'tu',
|
||||||
],
|
],
|
||||||
|
depend_files : vk_entrypoints_gen_depend_files,
|
||||||
)
|
)
|
||||||
|
|
||||||
tu_extensions_c = custom_target(
|
tu_extensions_c = custom_target(
|
||||||
|
@@ -7,6 +7,7 @@ lvp_entrypoints = custom_target(
|
|||||||
prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--proto', '--weak',
|
prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--proto', '--weak',
|
||||||
'--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'lvp',
|
'--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'lvp',
|
||||||
],
|
],
|
||||||
|
depend_files : vk_entrypoints_gen_depend_files,
|
||||||
)
|
)
|
||||||
|
|
||||||
liblvp_files = files(
|
liblvp_files = files(
|
||||||
|
@@ -30,6 +30,7 @@ anv_entrypoints = custom_target(
|
|||||||
'--device-prefix', 'gfx11', '--device-prefix', 'gfx12',
|
'--device-prefix', 'gfx11', '--device-prefix', 'gfx12',
|
||||||
'--device-prefix', 'gfx125',
|
'--device-prefix', 'gfx125',
|
||||||
],
|
],
|
||||||
|
depend_files : vk_entrypoints_gen_depend_files,
|
||||||
)
|
)
|
||||||
|
|
||||||
intel_icd = custom_target(
|
intel_icd = custom_target(
|
||||||
|
@@ -18,6 +18,23 @@
|
|||||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
# SOFTWARE.
|
# 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_entrypoints_gen = files('vk_entrypoints_gen.py')
|
||||||
vk_extensions_gen = files('vk_extensions_gen.py')
|
vk_extensions_gen = files('vk_extensions_gen.py')
|
||||||
vk_icd_gen = files('vk_icd_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',
|
prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--proto', '--weak',
|
||||||
'--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'vk_common',
|
'--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'vk_common',
|
||||||
],
|
],
|
||||||
|
depend_files : vk_entrypoints_gen_depend_files,
|
||||||
)
|
)
|
||||||
|
|
||||||
vk_dispatch_table = custom_target(
|
vk_dispatch_table = custom_target(
|
||||||
@@ -65,6 +83,7 @@ vk_dispatch_table = custom_target(
|
|||||||
prog_python, '@INPUT0@', '--xml', '@INPUT1@',
|
prog_python, '@INPUT0@', '--xml', '@INPUT1@',
|
||||||
'--out-c', '@OUTPUT0@', '--out-h', '@OUTPUT1@'
|
'--out-c', '@OUTPUT0@', '--out-h', '@OUTPUT1@'
|
||||||
],
|
],
|
||||||
|
depend_files : vk_dispatch_table_gen_depend_files,
|
||||||
)
|
)
|
||||||
|
|
||||||
vk_enum_to_str = custom_target(
|
vk_enum_to_str = custom_target(
|
||||||
@@ -85,7 +104,7 @@ vk_extensions = custom_target(
|
|||||||
prog_python, '@INPUT0@', '--xml', '@INPUT1@',
|
prog_python, '@INPUT0@', '--xml', '@INPUT1@',
|
||||||
'--out-c', '@OUTPUT0@', '--out-h', '@OUTPUT1@'
|
'--out-c', '@OUTPUT0@', '--out-h', '@OUTPUT1@'
|
||||||
],
|
],
|
||||||
depend_files : files('vk_extensions.py'),
|
depend_files : vk_extensions_gen_depend_files,
|
||||||
)
|
)
|
||||||
|
|
||||||
libvulkan_util = static_library(
|
libvulkan_util = static_library(
|
||||||
|
@@ -33,6 +33,8 @@ import xml.etree.ElementTree as et
|
|||||||
from collections import OrderedDict, namedtuple
|
from collections import OrderedDict, namedtuple
|
||||||
from mako.template import Template
|
from mako.template import Template
|
||||||
|
|
||||||
|
# Mesa-local imports must be declared in meson variable
|
||||||
|
# '{file_without_suffix}_depend_files'.
|
||||||
from vk_extensions import *
|
from vk_extensions import *
|
||||||
|
|
||||||
# We generate a static hash table for entry point lookup
|
# We generate a static hash table for entry point lookup
|
||||||
|
@@ -28,6 +28,8 @@ import os
|
|||||||
|
|
||||||
from mako.template import Template
|
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
|
from vk_dispatch_table_gen import get_entrypoints_from_xml
|
||||||
|
|
||||||
TEMPLATE_H = Template(COPYRIGHT + """\
|
TEMPLATE_H = Template(COPYRIGHT + """\
|
||||||
|
@@ -28,6 +28,8 @@ import xml.etree.ElementTree as et
|
|||||||
|
|
||||||
from mako.template import Template
|
from mako.template import Template
|
||||||
|
|
||||||
|
# Mesa-local imports must be declared in meson variable
|
||||||
|
# '{file_without_suffix}_depend_files'.
|
||||||
from vk_extensions import *
|
from vk_extensions import *
|
||||||
|
|
||||||
_TEMPLATE_H = Template(COPYRIGHT + """
|
_TEMPLATE_H = Template(COPYRIGHT + """
|
||||||
|
Reference in New Issue
Block a user