From 8dda67ba52ed67cc3e6897849658872c2ef4ddcc Mon Sep 17 00:00:00 2001 From: ruki Date: Wed, 2 Jun 2021 22:54:27 +0800 Subject: add deps for localpackages --- tests/actions/package/localpkg/bar/src/main.cpp | 4 ++-- tests/actions/package/localpkg/libfoo/src/add.cpp | 6 ++++++ tests/actions/package/localpkg/libfoo/src/add.h | 16 ++++++++++++++++ tests/actions/package/localpkg/libfoo/src/foo.cpp | 8 ++++++++ tests/actions/package/localpkg/libfoo/src/foo.h | 16 ++++++++++++++++ tests/actions/package/localpkg/libfoo/src/interface.cpp | 6 ------ tests/actions/package/localpkg/libfoo/src/interface.h | 16 ---------------- tests/actions/package/localpkg/libfoo/src/sub.cpp | 6 ++++++ tests/actions/package/localpkg/libfoo/src/sub.h | 16 ++++++++++++++++ tests/actions/package/localpkg/libfoo/xmake.lua | 16 +++++++++++++--- xmake/actions/package/local/main.lua | 6 ++++++ 11 files changed, 89 insertions(+), 27 deletions(-) create mode 100644 tests/actions/package/localpkg/libfoo/src/add.cpp create mode 100644 tests/actions/package/localpkg/libfoo/src/add.h create mode 100644 tests/actions/package/localpkg/libfoo/src/foo.cpp create mode 100644 tests/actions/package/localpkg/libfoo/src/foo.h delete mode 100644 tests/actions/package/localpkg/libfoo/src/interface.cpp delete mode 100644 tests/actions/package/localpkg/libfoo/src/interface.h create mode 100644 tests/actions/package/localpkg/libfoo/src/sub.cpp create mode 100644 tests/actions/package/localpkg/libfoo/src/sub.h diff --git a/tests/actions/package/localpkg/bar/src/main.cpp b/tests/actions/package/localpkg/bar/src/main.cpp index 1bee1b2ad..0102fba75 100644 --- a/tests/actions/package/localpkg/bar/src/main.cpp +++ b/tests/actions/package/localpkg/bar/src/main.cpp @@ -1,10 +1,10 @@ -#include "interface.h" +#include "foo.h" #include using namespace std; int main(int argc, char** argv) { - cout << "add(1, 2) = " << add(1, 2) << endl; + cout << "foo(1, 2) = " << foo(1, 2) << endl; return 0; } diff --git a/tests/actions/package/localpkg/libfoo/src/add.cpp b/tests/actions/package/localpkg/libfoo/src/add.cpp new file mode 100644 index 000000000..e73473e0f --- /dev/null +++ b/tests/actions/package/localpkg/libfoo/src/add.cpp @@ -0,0 +1,6 @@ +#include "add.h" + +int add(int a, int b) +{ + return a + b; +} diff --git a/tests/actions/package/localpkg/libfoo/src/add.h b/tests/actions/package/localpkg/libfoo/src/add.h new file mode 100644 index 000000000..62a39427c --- /dev/null +++ b/tests/actions/package/localpkg/libfoo/src/add.h @@ -0,0 +1,16 @@ +#ifdef __cplusplus +extern "C" { +#endif + +/*! calculate add(a, b) + * + * @param a the first argument + * @param b the second argument + * + * @return the result + */ +int add(int a, int b); + +#ifdef __cplusplus +} +#endif diff --git a/tests/actions/package/localpkg/libfoo/src/foo.cpp b/tests/actions/package/localpkg/libfoo/src/foo.cpp new file mode 100644 index 000000000..b13e8e761 --- /dev/null +++ b/tests/actions/package/localpkg/libfoo/src/foo.cpp @@ -0,0 +1,8 @@ +#include "add.h" +#include "sub.h" +#include "foo.h" + +int foo(int a, int b) +{ + return add(sub(a, b), sub(b, a)); +} diff --git a/tests/actions/package/localpkg/libfoo/src/foo.h b/tests/actions/package/localpkg/libfoo/src/foo.h new file mode 100644 index 000000000..d53be3150 --- /dev/null +++ b/tests/actions/package/localpkg/libfoo/src/foo.h @@ -0,0 +1,16 @@ +#ifdef __cplusplus +extern "C" { +#endif + +/*! calculate foo(a, b) + * + * @param a the first argument + * @param b the second argument + * + * @return the result + */ +int foo(int a, int b); + +#ifdef __cplusplus +} +#endif diff --git a/tests/actions/package/localpkg/libfoo/src/interface.cpp b/tests/actions/package/localpkg/libfoo/src/interface.cpp deleted file mode 100644 index 598d07560..000000000 --- a/tests/actions/package/localpkg/libfoo/src/interface.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include "interface.h" - -int add(int a, int b) -{ - return a + b; -} diff --git a/tests/actions/package/localpkg/libfoo/src/interface.h b/tests/actions/package/localpkg/libfoo/src/interface.h deleted file mode 100644 index 62a39427c..000000000 --- a/tests/actions/package/localpkg/libfoo/src/interface.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef __cplusplus -extern "C" { -#endif - -/*! calculate add(a, b) - * - * @param a the first argument - * @param b the second argument - * - * @return the result - */ -int add(int a, int b); - -#ifdef __cplusplus -} -#endif diff --git a/tests/actions/package/localpkg/libfoo/src/sub.cpp b/tests/actions/package/localpkg/libfoo/src/sub.cpp new file mode 100644 index 000000000..a65acd40f --- /dev/null +++ b/tests/actions/package/localpkg/libfoo/src/sub.cpp @@ -0,0 +1,6 @@ +#include "sub.h" + +int sub(int a, int b) +{ + return a - b; +} diff --git a/tests/actions/package/localpkg/libfoo/src/sub.h b/tests/actions/package/localpkg/libfoo/src/sub.h new file mode 100644 index 000000000..1bda92bc5 --- /dev/null +++ b/tests/actions/package/localpkg/libfoo/src/sub.h @@ -0,0 +1,16 @@ +#ifdef __cplusplus +extern "C" { +#endif + +/*! calculate sub(a, b) + * + * @param a the first argument + * @param b the second argument + * + * @return the result + */ +int sub(int a, int b); + +#ifdef __cplusplus +} +#endif diff --git a/tests/actions/package/localpkg/libfoo/xmake.lua b/tests/actions/package/localpkg/libfoo/xmake.lua index 01419c241..1b1dd5a41 100644 --- a/tests/actions/package/localpkg/libfoo/xmake.lua +++ b/tests/actions/package/localpkg/libfoo/xmake.lua @@ -1,8 +1,18 @@ add_rules("mode.debug", "mode.release") -target("foo") +target("sub") + set_kind("static") + add_files("src/sub.cpp") + add_headerfiles("src/sub.h") + +target("add") set_kind("static") - add_files("src/interface.cpp") - add_headerfiles("src/*.h") + add_files("src/add.cpp") + add_headerfiles("src/add.h") +target("foo") + add_deps("add", "sub") + set_kind("static") + add_files("src/foo.cpp") + add_headerfiles("src/foo.h") diff --git a/xmake/actions/package/local/main.lua b/xmake/actions/package/local/main.lua index aa834eb79..b4114cb12 100644 --- a/xmake/actions/package/local/main.lua +++ b/xmake/actions/package/local/main.lua @@ -111,8 +111,13 @@ function _package_library(target) -- generate xmake.lua local file = io.open(path.join(packagedir, "xmake.lua"), "w") if file then + local deps = {} + for _, dep in ipairs(target:orderdeps()) do + table.insert(deps, dep:name()) + end file:print([[package("%s") set_description("%s") + %s on_load(function (package) package:set("installdir", path.join(os.scriptdir(), package:plat(), package:arch(), package:mode())) end) @@ -124,6 +129,7 @@ function _package_library(target) return result end)]], packagename, "The " .. packagename .. " package", + #deps > 0 and ("add_deps(\"" .. table.concat(deps, "\", \"") .. "\")") or "", target:linkname(), path.filename(targetfile)) file:close() -- cgit v1.3.1