If the dependency common/mlx5 is explicitly disabled, but net/mlx5 is not explicitly disabled, Meson will read the full recipe of net/mlx5 and will fail when accessing a variable from common/mlx5: drivers/net/mlx5/meson.build:76:4: ERROR: Unknown variable "mlx5_config".
The solution is to stop parsing net/mlx5 if common/mlx5 is disabled. The deps array must be defined before stopping, in order to automatically disable the build of net/mlx5 and print the reason. The same protection is applied to other mlx5 drivers, so it will allow using the variable mlx5_config in future. Fixes: 22681deead3e ("net/mlx5/hws: enable hardware steering") Reported-by: Andrew Rybchenko <andrew.rybche...@oktetlabs.ru> Signed-off-by: Thomas Monjalon <tho...@monjalon.net> Tested-by: Andrew Rybchenko <andrew.rybche...@oktetlabs.ru> --- drivers/compress/mlx5/meson.build | 5 +++++ drivers/crypto/mlx5/meson.build | 5 +++++ drivers/net/mlx5/meson.build | 5 +++++ drivers/regex/mlx5/meson.build | 5 +++++ drivers/vdpa/mlx5/meson.build | 5 +++++ 5 files changed, 25 insertions(+) diff --git a/drivers/compress/mlx5/meson.build b/drivers/compress/mlx5/meson.build index 7aac329986..49ce3aff46 100644 --- a/drivers/compress/mlx5/meson.build +++ b/drivers/compress/mlx5/meson.build @@ -9,6 +9,11 @@ endif fmt_name = 'mlx5_compress' deps += ['common_mlx5', 'eal', 'compressdev'] +if not ('mlx5' in common_drivers) + # avoid referencing undefined variables from common/mlx5 + subdir_done() +endif + sources = files( 'mlx5_compress.c', ) diff --git a/drivers/crypto/mlx5/meson.build b/drivers/crypto/mlx5/meson.build index 9d9c9c00bc..7521c4c671 100644 --- a/drivers/crypto/mlx5/meson.build +++ b/drivers/crypto/mlx5/meson.build @@ -9,6 +9,11 @@ endif fmt_name = 'mlx5_crypto' deps += ['common_mlx5', 'eal', 'cryptodev'] +if not ('mlx5' in common_drivers) + # avoid referencing undefined variables from common/mlx5 + subdir_done() +endif + sources = files( 'mlx5_crypto.c', 'mlx5_crypto_dek.c', diff --git a/drivers/net/mlx5/meson.build b/drivers/net/mlx5/meson.build index ff84448186..fa15158039 100644 --- a/drivers/net/mlx5/meson.build +++ b/drivers/net/mlx5/meson.build @@ -9,6 +9,11 @@ if not (is_linux or is_windows) endif deps += ['hash', 'common_mlx5'] +if not ('mlx5' in common_drivers) + # avoid referencing undefined variables from common/mlx5 + subdir_done() +endif + headers = files('rte_pmd_mlx5.h') sources = files( 'mlx5.c', diff --git a/drivers/regex/mlx5/meson.build b/drivers/regex/mlx5/meson.build index e553dcb83d..70edc5b6da 100644 --- a/drivers/regex/mlx5/meson.build +++ b/drivers/regex/mlx5/meson.build @@ -8,6 +8,11 @@ if not is_linux endif deps += ['common_mlx5', 'eal', 'regexdev'] +if not ('mlx5' in common_drivers) + # avoid referencing undefined variables from common/mlx5 + subdir_done() +endif + sources = files( 'mlx5_regex.c', 'mlx5_rxp.c', diff --git a/drivers/vdpa/mlx5/meson.build b/drivers/vdpa/mlx5/meson.build index 9d8dbb1a82..54a4eac6f4 100644 --- a/drivers/vdpa/mlx5/meson.build +++ b/drivers/vdpa/mlx5/meson.build @@ -8,6 +8,11 @@ if not is_linux endif deps += ['hash', 'common_mlx5', 'vhost', 'pci', 'eal', 'sched'] +if not ('mlx5' in common_drivers) + # avoid referencing undefined variables from common/mlx5 + subdir_done() +endif + sources = files( 'mlx5_vdpa.c', 'mlx5_vdpa_mem.c', -- 2.36.1