package An official xmake package repository https://xrepo.xmake.io/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
2.1 KiB

package("swig")
set_kind("binary")
set_homepage("http://swig.org/")
set_description("SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.")
set_license("GPL-3.0")
if is_host("windows") then
add_urls("https://sourceforge.net/projects/swig/files/swigwin/swigwin-$(version)/swigwin-$(version).zip")
add_versions("4.0.2", "daadb32f19fe818cb9b0015243233fc81584844c11a48436385e87c050346559")
add_versions("4.1.1", "2ec3107e24606db535d77ef3dbf246dc6eccbf1d5c868dce365d7f7fb19a1a51")
else
add_urls("https://sourceforge.net/projects/swig/files/swig/swig-$(version)/swig-$(version).tar.gz")
add_versions("4.0.2", "d53be9730d8d58a16bf0cbd1f8ac0c0c3e1090573168bfa151b01eb47fa906fc")
add_versions("4.1.1", "2af08aced8fcd65cdb5cc62426768914bedc735b1c250325203716f78e39ac9b")
end
on_load("@macosx", "@linux", function (package)
if package:version():ge("4.1") then
package:add("deps", "pcre2", {host = true})
else
package:add("deps", "pcre", {host = true})
end
end)
on_fetch(function (package, opt)
if opt.system then
return package:find_tool("swig")
end
end)
on_install("@windows", function (package)
os.cp("*|Doc|Examples", package:installdir())
package:addenv("PATH", ".")
end)
on_install("@macosx", "@linux", function (package)
local configs = {}
if package:version():ge("4.1") then
local pcre2 = package:dep("pcre2")
if pcre2 and not pcre2:is_system() then
table.insert(configs, "--with-pcre2-prefix=" .. pcre2:installdir())
end
else
local pcre = package:dep("pcre")
if pcre and not pcre:is_system() then
table.insert(configs, "--with-pcre-prefix=" .. pcre:installdir())
end
end
import("package.tools.autoconf").install(package, configs)
end)
on_test(function (package)
os.vrun("swig -version")
end)