summaryrefslogtreecommitdiff
path: root/xmake/core/project/target.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2024-07-12 00:52:16 +0800
committerruki <[email protected]>2024-07-15 12:21:41 +0800
commit2ae6ada73e544bba9f547b022393f1e3c5093ec6 (patch)
tree8b774c6301bece9cced338eead3adb8e6ce5e25a /xmake/core/project/target.lua
parent22df8e0d89a1d8f3358797ed2094f692be62b4e4 (diff)
add set_prefixdir
Diffstat (limited to 'xmake/core/project/target.lua')
-rw-r--r--xmake/core/project/target.lua45
1 files changed, 40 insertions, 5 deletions
diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua
index 0ed7465d4..fb7801f3c 100644
--- a/xmake/core/project/target.lua
+++ b/xmake/core/project/target.lua
@@ -1623,20 +1623,54 @@ function _instance:rundir()
return baseoption.get("workdir") or self:get("rundir") or path.directory(self:targetfile())
end
--- get install directory
-function _instance:installdir()
+-- get prefix directory
+function _instance:prefixdir()
+ return self:get("prefixdir")
+end
+
+-- get the installed binary directory
+function _instance:bindir()
+ local bindir = self:extraconf("prefixdir", self:prefixdir(), "bindir")
+ if bindir == nil then
+ bindir = "bin"
+ end
+ return self:installdir(bindir)
+end
+
+-- get the installed library directory
+function _instance:libdir()
+ local libdir = self:extraconf("prefixdir", self:prefixdir(), "libdir")
+ if libdir == nil then
+ libdir = "lib"
+ end
+ return self:installdir(libdir)
+end
- -- get it from the cache
+-- get the installed include directory
+function _instance:includedir()
+ local includedir = self:extraconf("prefixdir", self:prefixdir(), "includedir")
+ if includedir == nil then
+ includedir = "include"
+ end
+ return self:installdir(includedir)
+end
+
+-- get install directory
+function _instance:installdir(...)
+ opt = opt or {}
local installdir = baseoption.get("installdir")
if not installdir then
-
-- DESTDIR: be compatible with https://www.gnu.org/prep/standards/html_node/DESTDIR.html
installdir = self:get("installdir") or os.getenv("INSTALLDIR") or os.getenv("PREFIX") or os.getenv("DESTDIR") or platform.get("installdir")
if installdir then
installdir = installdir:trim()
end
end
- return installdir
+ local prefixdir = self:prefixdir()
+ if prefixdir then
+ installdir = path.join(installdir, prefixdir)
+ end
+ return path.normalize(path.join(installdir, ...))
end
-- get package directory
@@ -2737,6 +2771,7 @@ function target.apis()
, "target.set_runargs"
, "target.set_exceptions"
, "target.set_encodings"
+ , "target.set_prefixdir"
-- target.add_xxx
, "target.add_deps"
, "target.add_rules"