Skip to content

Commit

Permalink
disable some fetch packages for cross
Browse files Browse the repository at this point in the history
  • Loading branch information
waruqi committed Apr 10, 2024
1 parent 56b6272 commit 3871415
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 16 deletions.
2 changes: 2 additions & 0 deletions xmake/core/base/private/is_cross.lua
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ local os = require("base/os")

-- is cross-compilation?
function is_cross(plat, arch)
plat = plat or os.subhost()
arch = arch or os.subarch()
if os.host() == "windows" then
local host_arch = os.arch()
if plat == "windows" then
Expand Down
8 changes: 2 additions & 6 deletions xmake/modules/package/manager/apt/find_package.lua
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import("core.base.option")
import("core.project.config")
import("core.project.target")
import("lib.detect.find_tool")
import("private.core.base.is_cross")
import("package.manager.pkgconfig.find_package", {alias = "find_package_from_pkgconfig"})

-- find package
Expand Down Expand Up @@ -129,19 +130,14 @@ end
-- @param opt the options, e.g. {verbose = true, version = "1.12.0")
--
function main(name, opt)

-- check
opt = opt or {}
if not is_host(opt.plat) or os.arch() ~= opt.arch then
if is_cross(opt.plat, opt.arch) then
return
end

-- find dpkg
local dpkg = find_tool("dpkg")
if not dpkg then
return
end

-- find package
return _find_package(dpkg, name, opt)
end
6 changes: 5 additions & 1 deletion xmake/modules/package/manager/brew/find_package.lua
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import("lib.detect.find_path")
import("lib.detect.pkgconfig")
import("core.project.target")
import("package.manager.find_package")
import("private.core.base.is_cross")

-- get the root directory of the brew packages
function _brew_pkg_rootdir()
Expand Down Expand Up @@ -92,9 +93,12 @@ end
-- @param opt the options, e.g. {verbose = true, version = "1.12.x")
--
function main(name, opt)
opt = opt or {}
if is_cross(opt.plat, opt.arch) then
return
end

-- find the prefix directory of brew
opt = opt or {}
local brew_pkg_rootdir = _brew_pkg_rootdir()
if not brew_pkg_rootdir then
return
Expand Down
13 changes: 8 additions & 5 deletions xmake/modules/package/manager/pacman/find_package.lua
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import("core.base.option")
import("core.project.target")
import("lib.detect.find_tool")
import("private.core.base.is_cross")
import("package.manager.pkgconfig.find_package", {alias = "find_package_from_pkgconfig"})

-- get result from list of file inside pacman package
Expand Down Expand Up @@ -51,7 +52,7 @@ function _find_package_from_list(list, name, pacman, opt)
if line:find("/include/", 1, true) and (line:endswith(".h") or line:endswith(".hpp")) then
if not line:startswith("/usr/include/") then
local hpath = line
if is_subhost("msys") and opt.plat == "mingw" then
if is_subhost("msys") and opt.plat == "mingw" then
hpath = path.join(pathtomsys, line)
local basehpath = path.join(pathtomsys, msystem .. "/include")
table.insert(result.includedirs, basehpath)
Expand Down Expand Up @@ -103,9 +104,12 @@ end
-- @param opt the options, e.g. {verbose = true, version = "1.12.x")
--
function main(name, opt)
opt = opt or {}
if is_cross(opt.plat, opt.arch) then
return
end

-- find pacman
opt = opt or {}
local pacman = find_tool("pacman")
if not pacman then
return
Expand All @@ -125,13 +129,13 @@ function main(name, opt)
name = prefix .. arch .. name
end
end

-- get package files list
list = name and try { function() return os.iorunv(pacman.program, {"-Q", "-l", name}) end }
if not list then
return
end

-- parse package files list
local linkdirs = {}
local pkgconfig_files = {}
Expand Down Expand Up @@ -179,6 +183,5 @@ function main(name, opt)
-- if there is no .pc, we parse the package content to obtain the data we want
result = _find_package_from_list(list, name, pacman, opt)
end

return result
end
6 changes: 4 additions & 2 deletions xmake/modules/package/manager/portage/find_package.lua
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import("core.base.option")
import("lib.detect.find_file")
import("lib.detect.find_tool")
import("private.core.base.is_cross")
import("package.manager.pkgconfig.find_package", {alias = "find_package_from_pkgconfig"})

-- find package from the system directories
Expand All @@ -30,9 +31,10 @@ import("package.manager.pkgconfig.find_package", {alias = "find_package_from_pkg
-- @param opt the options, e.g. {verbose = true, version = "1.12.x")
--
function main(name, opt)

-- init options
opt = opt or {}
if is_cross(opt.plat, opt.arch) then
return
end

-- for msys2/mingw? mingw-w64-[i686|x86_64]-xxx
if opt.plat == "mingw" then
Expand Down
6 changes: 5 additions & 1 deletion xmake/modules/package/manager/system/find_package.lua
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

-- imports
import("core.language.language")
import("private.core.base.is_cross")
import("lib.detect.check_cxsnippets")

-- get package items
Expand Down Expand Up @@ -57,8 +58,11 @@ end
--
function main(name, opt)
opt = opt or {}
local configs = opt.configs or {}
if is_cross(opt.plat, opt.arch) then
return
end

local configs = opt.configs or {}
local items = _get_package_items()
local snippet_configs = {}
for _, name in ipairs(items) do
Expand Down
3 changes: 2 additions & 1 deletion xmake/modules/package/manager/zypper/find_package.lua
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import("core.base.option")
import("core.project.config")
import("core.project.target")
import("lib.detect.find_tool")
import("private.core.base.is_cross")
import("package.manager.pkgconfig.find_package", { alias = "find_package_from_pkgconfig" })

-- find package
Expand Down Expand Up @@ -137,7 +138,7 @@ end
--
function main(name, opt)
opt = opt or {}
if not is_host(opt.plat) or os.arch() ~= opt.arch then
if is_cross(opt.plat, opt.arch) then
return
end
local rpm = find_tool("rpm")
Expand Down

0 comments on commit 3871415

Please sign in to comment.