summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2023-09-18 23:37:33 +0800
committerGitHub <[email protected]>2023-09-18 23:37:33 +0800
commita02373970427bb343fb2022221001a56d5f283fb (patch)
tree60c3249c83cf3990d1c901bca9d1b23bd68eb0a2
parent9000d29d7038da45f6ae481404c9ff1dd189c702 (diff)
parent9767bf21f93219a5e6970524c1e4859b28277fc7 (diff)
Merge pull request #4212 from xmake-io/base
improve rules directory for base package
-rw-r--r--xmake/core/package/package.lua16
-rw-r--r--xmake/modules/private/action/require/impl/actions/install.lua4
2 files changed, 18 insertions, 2 deletions
diff --git a/xmake/core/package/package.lua b/xmake/core/package/package.lua
index a18d6f882..fa409aace 100644
--- a/xmake/core/package/package.lua
+++ b/xmake/core/package/package.lua
@@ -806,6 +806,22 @@ function _instance:scriptdir()
return self._SCRIPTDIR
end
+-- get the rules directory
+function _instance:rulesdir()
+ local rulesdir = self._RULESDIR
+ if rulesdir == nil then
+ rulesdir = path.join(self:scriptdir(), "rules")
+ if not os.isdir(rulesdir) and self:base() then
+ rulesdir = self:base():rulesdir()
+ end
+ if rulesdir == nil or not os.isdir(rulesdir) then
+ rulesdir = false
+ end
+ self._RULESDIR = rulesdir
+ end
+ return rulesdir or nil
+end
+
-- get the references info of this package
function _instance:references()
local references_file = path.join(self:installdir({readonly = true}), "references.txt")
diff --git a/xmake/modules/private/action/require/impl/actions/install.lua b/xmake/modules/private/action/require/impl/actions/install.lua
index 1610d0241..0a0060511 100644
--- a/xmake/modules/private/action/require/impl/actions/install.lua
+++ b/xmake/modules/private/action/require/impl/actions/install.lua
@@ -365,8 +365,8 @@ function main(package)
end
-- install rules
- local rulesdir = path.join(package:scriptdir(), "rules")
- if os.isdir(rulesdir) then
+ local rulesdir = package:rulesdir()
+ if rulesdir and os.isdir(rulesdir) then
os.cp(rulesdir, package:installdir())
end