diff options
| author | Northn <[email protected]> | 2026-08-18 19:05:25 +0400 |
|---|---|---|
| committer | Northn <[email protected]> | 2026-08-18 19:27:21 +0400 |
| commit | 501631cfd370de631d5487bebbbc0980f0a5069b (patch) | |
| tree | 6c381f5f08bcdef9860f0b802edf798bbc190cf1 /tests/projects/package/usage_requirements/xmake.lua | |
| parent | de769d5574d92a37253d16b9617d998605bfd727 (diff) | |
propagate package vector extensions to consumers
Diffstat (limited to 'tests/projects/package/usage_requirements/xmake.lua')
| -rw-r--r-- | tests/projects/package/usage_requirements/xmake.lua | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/projects/package/usage_requirements/xmake.lua b/tests/projects/package/usage_requirements/xmake.lua new file mode 100644 index 000000000..7f9eb9107 --- /dev/null +++ b/tests/projects/package/usage_requirements/xmake.lua @@ -0,0 +1,35 @@ +add_rules("mode.debug", "mode.release") + +add_repositories("usage-requirements-repo repo") +add_requires("usage-requirements", {system = false}) + +local function _has_value_from(target, name, source, expected) + local values = target:get_from(name, source, {interface = true}) + for _, source_values in ipairs(values or {}) do + if table.contains(table.wrap(source_values), expected) then + return true + end + end +end + +target("usage") + set_kind("static") + add_files("src/usage.cpp") + add_packages("usage-requirements", {components = "enabled", public = true}) + before_build(function (target) + local package = assert(target:pkg("usage-requirements")) + assert(table.contains(package:get("vectorexts"), "avx")) + assert(_has_value_from(target, "vectorexts", "package::*", "avx")) + assert(_has_value_from(target, "vectorexts", "package::*", "avx2")) + assert(not _has_value_from(target, "vectorexts", "package::*", "avx512")) + end) + +target("consumer") + set_kind("binary") + add_deps("usage") + add_files("src/main.cpp") + before_build(function (target) + assert(_has_value_from(target, "vectorexts", "dep::usage/package::*", "avx")) + assert(_has_value_from(target, "vectorexts", "dep::usage/package::*", "avx2")) + assert(not _has_value_from(target, "vectorexts", "dep::usage/package::*", "avx512")) + end) |
