Skip to content

Commit 1ad52ff

Browse files
authored
Merge pull request #51 from xqyjlj/xq/sdl2_image-dev
🐞 fix(sdl2_image): fix sdl2_image
2 parents d365787 + cb39ead commit 1ad52ff

1 file changed

Lines changed: 45 additions & 6 deletions

File tree

repo/packages/s/sdl2_image/xmake.lua

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,38 @@ do
3535
type = "boolean"
3636
})
3737

38+
local features = {
39+
bmp = {boolean = true, package = nil},
40+
gif = {boolean = false, package = "unsupport!!!"},
41+
jpg = {boolean = true, package = "libjpeg"},
42+
lbm = {boolean = false, package = "unsupport!!!"},
43+
pcx = {boolean = false, package = "unsupport!!!"},
44+
png = {boolean = true, package = "libpng"},
45+
pnm = {boolean = false, package = "unsupport!!!"},
46+
svg = {boolean = false, package = "unsupport!!!"},
47+
tga = {boolean = false, package = "unsupport!!!"},
48+
tif = {boolean = false, package = "unsupport!!!"},
49+
xcf = {boolean = false, package = "unsupport!!!"},
50+
xpm = {boolean = false, package = "unsupport!!!"},
51+
xv = {boolean = false, package = "unsupport!!!"},
52+
webp = {boolean = false, package = "unsupport!!!"}
53+
}
54+
55+
for feature, cfg in pairs(features) do
56+
add_configs(feature,
57+
{description = "enable " .. feature .. " support.", default = cfg.boolean, type = "boolean"})
58+
end
59+
3860
on_load(function(package)
3961
package:add("deps", "zlib", {debug = package:config("debug"), configs = {shared = package:config("shared")}})
40-
package:add("deps", "libpng", {debug = package:config("debug"), configs = {shared = package:config("shared")}})
41-
package:add("deps", "libjpeg", {debug = package:config("debug"), configs = {shared = package:config("shared")}})
4262
package:add("deps", "sdl2", {debug = package:config("debug"), configs = {shared = package:config("shared")}})
63+
for feature, cfg in pairs(features) do
64+
if package:config(feature) and cfg.package then
65+
package:add("deps", cfg.package,
66+
{debug = package:config("debug"), configs = {shared = package:config("shared")}})
67+
end
68+
end
69+
4370
end)
4471

4572
on_install("cross@linux", function(package)
@@ -51,6 +78,7 @@ do
5178
local ldflags = {}
5279
os.setenv("PATH", path.directory(cc) .. ":" .. os.getenv("PATH"))
5380
local sdl2 = package:dep("sdl2")
81+
local packagedeps = {"sdl2", "zlib"}
5482

5583
if package:config("shared") then
5684
table.insert(configs, "--enable-shared=yes")
@@ -60,12 +88,23 @@ do
6088
table.insert(configs, "--enable-static=yes")
6189
end
6290

91+
table.insert(configs, "--enable-jpg-shared=no")
92+
table.insert(configs, "--enable-png-shared=no")
93+
table.insert(configs, "--enable-tif-shared=no")
94+
table.insert(configs, "--enable-webp-shared=no")
95+
96+
for feature, cfg in pairs(features) do
97+
if package:config(feature) and cfg.package then
98+
table.insert(packagedeps, cfg.package)
99+
end
100+
table.insert(configs, string.format("--enable-%s=%s", feature, package:config(feature) and "yes" or "no"))
101+
end
102+
63103
table.insert(configs, "--build=i686-pc-linux-gnu")
64104
table.insert(configs, "--with-sdl-prefix=" .. sdl2:installdir())
65-
local buildenvs = import("package.tools.autoconf").buildenvs(package, {
66-
ldflags = ldflags,
67-
packagedeps = {"libpng", "libjpeg", "sdl2", "zlib"}
68-
})
105+
106+
local buildenvs = import("package.tools.autoconf").buildenvs(package,
107+
{ldflags = ldflags, packagedeps = packagedeps})
69108
-- os.vrun("autoreconf -fiv || true", {envs = buildenvs})
70109
import("package.tools.autoconf").configure(package, configs, {envs = buildenvs})
71110
import("package.tools.make").install(package, {}, {envs = buildenvs})

0 commit comments

Comments
 (0)