# Internal-only. Do not use. Expand a variable and strip the flags # not suitable to extension builders. %__extension_strip_flags() %{lua: --the only argument to this macro is the "name" of the flags we strip (e.g. cflags, ldflags, etc.) local name = rpm.expand("%{1}") --store all the individual flags in a variable as a continuous string local flags = rpm.expand("%{build_" .. name .. "}") --create an empty table for the minimal set of flags we wanna preserve local stripped_flags = { } --iterate over the individual flags and store the ones we want in the table as unique keys for flag in flags:gmatch("%S+") do if flag:find("^%-fexceptions") or flag:find("^%-fcf%-protection") then stripped_flags[flag] = true end end --print out the finalized set of flags for use by the extension builders for k,_ in pairs(stripped_flags) do print(k .. " ") end } # Variants of CFLAGS, CXXFLAGS, FFLAGS, LDFLAGS for use within # extension builders. %extension_cflags %{__extension_strip_flags cflags} %extension_cxxflags %{__extension_strip_flags cxxflags} %extension_fflags %{__extension_strip_flags fflags} %extension_ldflags %{__extension_strip_flags ldflags}