1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package("gmp")
- set_homepage("https://gmplib.org/")
- set_description("GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers.")
- set_license("LGPL-3.0")
- add_urls("https://ftpmirror.gnu.org/gmp/gmp-$(version).tar.xz")
- add_urls("https://ftp.gnu.org/gnu/gmp/gmp-$(version).tar.xz")
- add_urls("https://gmplib.org/download/gmp/gmp-$(version).tar.xz")
- add_versions("6.2.1", "fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2")
- add_versions("6.3.0", "a3c2b80201b89e68616f4ad30bc66aee4927c3ce50e33929ca819d5c43538898")
- if is_plat("mingw") and is_subhost("msys") then
- add_extsources("pacman::gmp")
- elseif is_plat("linux") then
- add_extsources("pacman::gmp", "apt::libgmp-dev")
- elseif is_plat("macosx") then
- add_extsources("brew::gmp")
- end
- on_fetch(function (package, opt)
- if opt.system then
- return package:find_package("system::gmp", {includes = "gmp.h"})
- end
- end)
- add_deps("m4")
- on_install("macosx", "linux", function (package)
- local configs = {}
- table.insert(configs, "--enable-shared=" .. (package:config("shared") and "yes" or "no"))
- table.insert(configs, "--enable-static=" .. (package:config("shared") and "no" or "yes"))
- if package:debug() then
- table.insert(configs, "--enable-debug")
- end
- if package:config("pic") ~= false then
- table.insert(configs, "--with-pic")
- end
- if package:is_plat("macosx") and package:is_arch("arm64") and os.arch() == "x86_64" then
- import("package.tools.autoconf")
- table.insert(configs, "--build=x86_64-apple-darwin")
- table.insert(configs, "--host=arm64-apple-darwin")
- local envs = autoconf.buildenvs(package, {cflags = "--target=arm64-apple-darwin"})
- envs.CC = package:build_getenv("cc") .. " -arch arm64" -- for linker flags
- autoconf.install(package, configs, {envs = envs})
- else
- import("package.tools.autoconf").install(package, configs)
- end
- end)
- on_test(function (package)
- assert(package:has_cfuncs("gmp_randinit", {includes = "gmp.h"}))
- end)
|