diff options
| author | ruki <[email protected]> | 2023-10-26 22:52:20 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2023-10-26 22:52:20 +0800 |
| commit | b6631aa5791471e0403314fae8dfe44d9408baec (patch) | |
| tree | 4fadca2ed08a66b1688002bbbbb61ad7a0aea19e | |
| parent | 76b45e616eef765de745f0e4fa71b8d64fd0a9a7 (diff) | |
add tests
| -rw-r--r-- | tests/apis/target_get_from/.gitignore | 8 | ||||
| -rw-r--r-- | tests/apis/target_get_from/src/foo.cpp | 5 | ||||
| -rw-r--r-- | tests/apis/target_get_from/src/foo.h | 9 | ||||
| -rw-r--r-- | tests/apis/target_get_from/src/main.cpp | 9 | ||||
| -rw-r--r-- | tests/apis/target_get_from/xmake.lua | 31 | ||||
| -rw-r--r-- | xmake/core/project/target.lua | 8 |
6 files changed, 66 insertions, 4 deletions
diff --git a/tests/apis/target_get_from/.gitignore b/tests/apis/target_get_from/.gitignore new file mode 100644 index 000000000..152105761 --- /dev/null +++ b/tests/apis/target_get_from/.gitignore @@ -0,0 +1,8 @@ +# Xmake cache +.xmake/ +build/ + +# MacOS Cache +.DS_Store + + diff --git a/tests/apis/target_get_from/src/foo.cpp b/tests/apis/target_get_from/src/foo.cpp new file mode 100644 index 000000000..1a1fb3425 --- /dev/null +++ b/tests/apis/target_get_from/src/foo.cpp @@ -0,0 +1,5 @@ +#include "foo.h" + +int add(int a, int b) { + return a + b; +} diff --git a/tests/apis/target_get_from/src/foo.h b/tests/apis/target_get_from/src/foo.h new file mode 100644 index 000000000..d2506bca9 --- /dev/null +++ b/tests/apis/target_get_from/src/foo.h @@ -0,0 +1,9 @@ +#ifdef __cplusplus +extern "C" { +#endif + +int add(int a, int b); + +#ifdef __cplusplus +} +#endif diff --git a/tests/apis/target_get_from/src/main.cpp b/tests/apis/target_get_from/src/main.cpp new file mode 100644 index 000000000..ed1924789 --- /dev/null +++ b/tests/apis/target_get_from/src/main.cpp @@ -0,0 +1,9 @@ +#include "foo.h" +#include <iostream> + +using namespace std; + +int main(int argc, char** argv) { + cout << "add(1, 2) = " << add(1, 2) << endl; + return 0; +} diff --git a/tests/apis/target_get_from/xmake.lua b/tests/apis/target_get_from/xmake.lua new file mode 100644 index 000000000..e583dca00 --- /dev/null +++ b/tests/apis/target_get_from/xmake.lua @@ -0,0 +1,31 @@ +add_rules("mode.debug", "mode.release") + +add_requires("zlib") + +option("bar") + set_default(true) + add_defines("BAR") + +target("foo") + set_kind("static") + add_files("src/foo.cpp") + add_defines("foo") + add_defines("FOO", {public = true}) + add_options("bar") + +target("test") + set_kind("binary") + add_deps("foo") + add_files("src/main.cpp") + add_defines("TEST") + add_packages("zlib") + on_config(function (target) + print("self", target:get_from("defines", "self")) + print("dep::foo", target:get_from("defines", "dep::foo")) + print("dep::*", target:get_from("defines", "dep::*")) + print("dep::foo/option::bar", target:get_from("defines", "dep::foo/option::bar")) + print("dep::foo/option::*", target:get_from("defines", "dep::foo/option::*")) + print("*", target:get_from("defines", "*")) + print("package::zlib", target:get_from("links", "package::zlib")) + end) + diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua index 21fd0315f..f58c2de71 100644 --- a/xmake/core/project/target.lua +++ b/xmake/core/project/target.lua @@ -317,7 +317,7 @@ function _instance:_get_from_deps(name, result_values, result_sources, opt) for idx, values in ipairs(dep_values) do local dep_source = dep_sources[idx] table.insert(result_values, values) - table.insert(result_sources, "dep::" .. depname .. "/" .. dep_source) + table.insert(result_sources, "dep::" .. dep:name() .. "/" .. dep_source) end end end @@ -397,7 +397,7 @@ function _instance:_get_from_source(name, source, result_values, result_sources, table.insert(result_sources, "self") end elseif source:startswith("dep::") then - local depname = source:split("::")[2] + local depname = source:split("::", {plain = true, limit = 2})[2] if depname == "*" then self:_get_from_deps(name, result_values, result_sources, opt) else @@ -432,7 +432,7 @@ function _instance:_get_from_source(name, source, result_values, result_sources, end end elseif source:startswith("option::") then - local optname = source:split("::")[2] + local optname = source:split("::", {plain = true, limit = 2})[2] if optname == "*" then self:_get_from_options(name, result_values, result_sources, opt) else @@ -446,7 +446,7 @@ function _instance:_get_from_source(name, source, result_values, result_sources, end end elseif source:startswith("package::") then - local pkgname = source:split("::")[2] + local pkgname = source:split("::", {plain = true, limit = 2})[2] if pkgname == "*" then self:_get_from_packages(name, result_values, result_sources, opt) else |
