diff --git a/tools/build/scripts/pkg_config.lua b/tools/build/scripts/pkg_config.lua index 2042491b9..bc83ae1c0 100644 --- a/tools/build/scripts/pkg_config.lua +++ b/tools/build/scripts/pkg_config.lua @@ -2,12 +2,21 @@ 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({ - ({os.outputof("pkg-config --cflags "..lib)})[1], + pkg_config_call(lib, "cflags"), }) end @@ -16,12 +25,12 @@ function pkg_config.lflags(lib) return end linkoptions({ - ({os.outputof("pkg-config --libs-only-L " ..lib)})[1], - ({os.outputof("pkg-config --libs-only-other "..lib)})[1], + 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 = ({os.outputof("pkg-config --libs-only-l "..lib)})[1] + local output = pkg_config_call(lib, "libs-only-l") for k, flag in next, string.explode(output, " ") do -- remove "-l" if flag ~= "" then