diff options
| author | ruki <[email protected]> | 2022-10-20 22:35:40 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-10-20 22:35:40 +0800 |
| commit | 317f886c305b6b51f3ad0199b26b8f8a160e4a21 (patch) | |
| tree | eeed1a1d4bf57d1629a81a12b393188bb56b7610 | |
| parent | 7f7cd68284676f7969d99e2e7d54b91275ef5569 (diff) | |
improve component deps
| -rw-r--r-- | tests/projects/package/components/xmake.lua | 19 | ||||
| -rw-r--r-- | xmake/core/package/package.lua | 2 |
2 files changed, 10 insertions, 11 deletions
diff --git a/tests/projects/package/components/xmake.lua b/tests/projects/package/components/xmake.lua index fb3758df2..085d2360e 100644 --- a/tests/projects/package/components/xmake.lua +++ b/tests/projects/package/components/xmake.lua @@ -1,6 +1,6 @@ add_rules("mode.debug", "mode.release") -add_requires("sfml") +add_requires("sfml", {system = false}) target("graphics") set_kind("static") @@ -67,6 +67,7 @@ package("sfml") component:add("links", "freetype") component:add("syslinks", "opengl32", "gdi32", "user32", "advapi32") end + component:add("deps", "window", "system") component:add("extsources", "brew::sfml/sfml-graphics") end) @@ -76,6 +77,7 @@ package("sfml") if package:is_plat("windows", "mingw") and not package:config("shared") then component:add("syslinks", "opengl32", "gdi32", "user32", "advapi32") end + component:add("deps", "system") component:add("extsources", "brew::sfml/sfml-window") end) @@ -85,6 +87,7 @@ package("sfml") if package:is_plat("windows", "mingw") and not package:config("shared") then component:add("links", "openal32", "flac", "vorbisenc", "vorbisfile", "vorbis", "ogg") end + component:add("deps", "system") component:add("extsources", "brew::sfml/sfml-audio") end) @@ -94,6 +97,7 @@ package("sfml") if package:is_plat("windows", "mingw") and not package:config("shared") then component:add("syslinks", "ws2_32") end + component:add("deps", "system") component:add("extsources", "brew::sfml/sfml-network") component:add("extsources", "apt::sfml-network") end) @@ -104,6 +108,9 @@ package("sfml") if package:is_plat("windows", "mingw") then component:add("syslinks", "winmm") end + if package:is_plat("windows", "mingw") and package:config("main") then + component:add("deps", "main") + end component:add("extsources", "brew::sfml/sfml-system") end) @@ -138,15 +145,7 @@ package("sfml") package:add("components", "system") for _, component in ipairs({"graphics", "window", "audio", "network"}) do if package:config(component) then - local deps = {} - table.insert(deps, "system") - if component == "graphics" then - table.insert(deps, "window") - end - if package:is_plat("windows", "mingw") and package:config("main") then - table.insert(deps, "main") - end - package:add("components", component, {deps = deps}) + package:add("components", component) end end if package:is_plat("windows", "mingw") and package:config("main") then diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua index fb52da8fd..c52e14c7f 100644 --- a/xmake/core/package/package.lua +++ b/xmake/core/package/package.lua @@ -1828,7 +1828,7 @@ function _instance:components_deps() if not components_deps then components_deps = {} for _, name in ipairs(table.wrap(self:get("components"))) do - components_deps[name] = self:extraconf("components", name, "deps") + components_deps[name] = self:extraconf("components", name, "deps") or self:component(name):get("deps") end self._COMPONENTS_DEPS = component_deps end |
