package("libsodium") set_homepage("https://libsodium.org") set_description("Sodium is a new, easy-to-use software library for encryption, decryption, signatures, password hashing and more.") set_license("ISC") set_urls("https://download.libsodium.org/libsodium/releases/libsodium-$(version).tar.gz", "https://github.com/jedisct1/libsodium/releases/download/$(version)-RELEASE/libsodium-$(version).tar.gz", "https://github.com/jedisct1/libsodium.git") add_versions("1.0.20", "ebb65ef6ca439333c2bb41a0c1990587288da07f6c7fd07cb3a18cc18d30ce19") add_versions("1.0.19", "018d79fe0a045cca07331d37bd0cb57b2e838c51bc48fd837a1472e50068bbea") add_versions("1.0.18", "6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e46636c1") if is_plat("linux", "macosx") then add_deps("autoconf", "automake", "libtool", "pkg-config") end on_install(function (package) if not package:config("shared") then package:add("defines", "SODIUM_STATIC") end if package:is_plat("linux", "macosx") then local configs = {} if package:debug() then table.insert(configs, "--enable-debug") end if package:config("shared") then table.insert(configs, "--enable-static=no") table.insert(configs, "--enable-shared=yes") else table.insert(configs, "--enable-static=yes") table.insert(configs, "--enable-shared=no") end import("package.tools.autoconf").install(package, configs) else os.cp(path.join(package:scriptdir(), "port", "xmake.lua"), "xmake.lua") import("package.tools.xmake").install(package) end end) on_test(function (package) assert(package:has_cfuncs("sodium_init", {includes = "sodium.h"})) end)