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 ( " 4.0.3 " , " a6201ad26ff3d14a84bc0027646ee89aeee858f0c9e69c166bb9705ba1eb55e7 " )
add_versions ( " 4.0.2 " , " 7506c88640ae4bcf9b2f50edc6eb32c47b367df9da3dfa24654456b3b45be3a9 " )
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 )