2014-09-14 08:36:58 +02:00

52 lines
1.2 KiB
Lua

module(..., package.seeall)
function ConfigureRaw(cmdline, name, constructor)
local fh = assert(io.popen(cmdline))
local data = fh:read("*all")
fh:close()
local cpppath = {}
local libpath = {}
local libs = {}
local defines = {}
local frameworks = {}
for kind, value in data:gmatch("-([ILlD])([^ \n\r]+)") do
if kind == "I" then
cpppath[#cpppath + 1] = value
elseif kind == "D" then
defines[#defines + 1] = value
elseif kind == "L" then
libpath[#libpath + 1] = value
elseif kind == "l" then
libs[#libs + 1] = value
end
end
for value in data:gmatch("-framework ([^ \n\r]+)") do
frameworks[#frameworks + 1] = value
end
-- We don't have access to ExternalLibrary here - user has to pass it in.
return constructor({
Name = name,
Propagate = {
Env = {
FRAMEWORKS = frameworks,
CPPDEFS = defines,
CPPPATH = cpppath,
LIBS = libs,
LIBPATH = libpath
}
}
})
end
function Configure(name, ctor)
return internal_cfg("pkg-config " .. name .. " --cflags --libs", name, ctor)
end
function ConfigureWithTool(tool, name, ctor)
return internal_cfg(tool .. " --cflags --libs", name, ctor)
end