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)