xenia-canary/tools/build/scripts/pkg_config.lua

46 lines
1.0 KiB
Lua

-- Helper methods to use the system pkg-config utility
pkg_config = {}
local function pkg_config_call(lib, what)
local result, code = os.outputof("pkg-config --"..what.." "..lib)
if result then
return result
else
error("Failed to run 'pkg-config' for library '"..lib.."'. Are the development files installed?")
end
end
function pkg_config.cflags(lib)
if not os.istarget("linux") then
return
end
buildoptions({
pkg_config_call(lib, "cflags"),
})
end
function pkg_config.lflags(lib)
if not os.istarget("linux") then
return
end
linkoptions({
pkg_config_call(lib, "libs-only-L"),
pkg_config_call(lib, "libs-only-other"),
})
-- We can't just drop the stdout of the `--libs` command in
-- linkoptions because library order matters
local output = pkg_config_call(lib, "libs-only-l")
for k, flag in next, string.explode(output, " ") do
-- remove "-l"
if flag ~= "" then
links(string.sub(flag, 3))
end
end
end
function pkg_config.all(lib)
pkg_config.cflags(lib)
pkg_config.lflags(lib)
end