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.
 
 
 

45 lines
2.2 KiB

package("mxml")
set_homepage("https://www.msweet.org/mxml/")
set_description("Mini-XML is a tiny XML library that you can use to read and write XML and XML-like data files in your application without requiring large non-standard libraries.")
set_license("Apache-2.0")
add_urls("https://github.com/michaelrsweet/mxml/releases/download/v$(version)/mxml-$(version).zip")
add_urls("https://github.com/michaelrsweet/mxml.git")
add_versions("3.3.1", "ca6b05725184866b9e5874329e98be22cbbdc1e733789e08b55b088be207484a")
add_versions("3.3", "fca59b0d7fae2b9165c223cdce68e45dbf41e21e5e53190d8b214218b8353380")
if is_plat("macosx", "linux") then
add_syslinks("pthread")
end
on_install("windows", "macosx", "linux", function (package)
io.gsub("config.h.in", "#undef (.-)\n", "${define %1}\n")
io.writefile("xmake.lua", [[
add_rules("mode.debug", "mode.release")
includes("@builtin/check")
if is_plat("macosx", "linux") then
set_configvar("HAVE_PTHREAD_H", 1)
end
configvar_check_ctypes("HAVE_LONG_LONG_INT", "long long int")
configvar_check_cfuncs("HAVE_SNPRINTF", "snprintf", {includes = "stdio.h"})
configvar_check_cfuncs("HAVE_VASPRINTF", "vasprintf", {includes = "stdio.h", defines = "_GNU_SOURCE"})
configvar_check_cfuncs("HAVE_VSNPRINTF", "vsnprintf", {includes = "stdio.h"})
configvar_check_cfuncs("HAVE_STRDUP", "strdup", {includes = "string.h"})
configvar_check_cfuncs("HAVE_STRLCAT", "strlcat", {includes = "string.h"})
configvar_check_cfuncs("HAVE_STRLCPY", "strlcpy", {includes = "string.h"})
target("mxml")
set_kind("$(kind)")
add_files("mxml-*.c")
add_configfiles("config.h.in")
add_includedirs("$(buildir)")
add_headerfiles("mxml.h")
if is_plat("macosx", "linux") then
add_syslinks("pthread")
end
]])
import("package.tools.xmake").install(package)
end)
on_test(function (package)
assert(package:has_cfuncs("mxmlLoadFile", {includes = "mxml.h"}))
end)