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.
80 lines
5.3 KiB
80 lines
5.3 KiB
package("stringzilla") |
|
set_kind("library", {headeronly = true}) |
|
set_homepage("https://ashvardanian.com/posts/stringzilla/") |
|
set_description("Up to 10x faster string search, split, sort, and shuffle for long strings and multi-gigabyte files in Python and C, leveraging SIMD with just a few lines of Arm Neon and x86 AVX2 & AVX-512 intrinsics 🦖") |
|
set_license("Apache-2.0") |
|
|
|
add_urls("https://github.com/ashvardanian/StringZilla/archive/refs/tags/$(version).tar.gz", |
|
"https://github.com/ashvardanian/StringZilla.git") |
|
|
|
add_versions("v3.9.6", "21577e967d79155f5bcbe9bfd885dd817a79666f384fb2a955c0ac5dbf0657a3") |
|
add_versions("v3.9.5", "2132ffc56ded5951a00f3c7046328f2cfb0c59121252f7303cd33fbe93bc8e97") |
|
add_versions("v3.8.4", "4132957633d28ce2651e587f2ab736cdf174e61b8ab1bcef453b21d40a2d872e") |
|
add_versions("v3.8.3", "17c4527012495b66028236f62223a7c84c32c14dce91821f2ebb36a67bce489b") |
|
add_versions("v3.8.2", "1f1e940c6c74aecc06964aa650fe23d0b64570b5d4d83a820d2d11428050d853") |
|
add_versions("v3.8.1", "6ed752ed72024c66468800d92861cf8e213dab8ee153c04f7d4e23e537686e5f") |
|
add_versions("v3.8.0", "ccfe9ccbdc34f72f8fb76bdab2ace37e29453dd6bcd16837e8e4a9e7b22c74bb") |
|
add_versions("v3.7.3", "85bc8c990c0a6d6a924d062cf1166b0ce120e48e9f398518930cd8d493e0d593") |
|
add_versions("v3.7.2", "ff84205286a2d8454a17f000013c634e1620df27c088eddea55fa83ce40274de") |
|
add_versions("v3.7.1", "60cc703b8e8ad317db4d114edc355c8b57c2c5a927d546aea800b810e676e9b7") |
|
add_versions("v3.7.0", "214d926fc827e5975fabe63f112cbd4d676d5ceb1c37fc4d6d83785a50c518e0") |
|
add_versions("v3.6.8", "9e29b31f4924fe89c835f40d852e3f8b62e3dfb164a657283bdc92ce014286cc") |
|
add_versions("v3.6.7", "d7f8ed81367047bade36f550880e1df9fed60d08722a2f58405434690b3a1ffe") |
|
add_versions("v3.6.6", "41a39fc8873b30fc6986cc9f7a80cd1b9f119a0ff3dbe5d6400b1c9fd3cb0f38") |
|
add_versions("v3.6.5", "047083d8778bbb684a0c335e8fd91b036e5b0e1db4c8ecbf3c93a37ffe8ca907") |
|
add_versions("v3.6.4", "342619f79c259fdf338c60678145123244fe1101b2eb077ef84bf9cc3cec64a5") |
|
add_versions("v3.6.3", "3f570bd7c9e9f780259148b42335e8eafcce70c96fe1e33cbf2b90d5d7ca68c4") |
|
add_versions("v3.6.2", "5e6905348afb4ea55195e20b684abf8ad1e1373dbe2680d1d238cb27f59020b8") |
|
add_versions("v3.6.1", "416ca84773b2fa2f401bfa767d69bb146e525f163c4edf785e9dfbdfb2411fd9") |
|
add_versions("v3.6.0", "a8b0eea55c535e72451fc1ca4c6c8531268b1fdf2562acf38ca6030b5c97d64d") |
|
add_versions("v3.5.0", "a7b990e32859683496b4c16e4e756cc862316f78f676fc642b14ddc4190cf39a") |
|
add_versions("v3.4.1", "062587d0ec08b62bba888b1ec0dcb42a68a53043af7ae6b4d0185381543c1297") |
|
add_versions("v3.4.0", "b9f15c00079844b7eb82e613bab59a89204bdb9b1bacd1ef485fa74c8ef7ec77") |
|
add_versions("v3.3.1", "3f6bcf9ce10089628cdb9fdb55bc94026440f07961473a0eb140ae969889aeae") |
|
add_versions("v3.3.0", "15924a562e3166840a5385959dcc190eb40b49cec82900fde319774963c5d85a") |
|
add_versions("v3.2.0", "12789c5f81d63e569e7a1221933aa371274fa3f22f8143f7bd65b5248c66a7d9") |
|
add_versions("v3.1.2", "aa25438112551eab9eec9a532749e430fe26b6562adae517c56ce0fe762af2b6") |
|
add_versions("v3.1.1", "6f7905ee481fda0230a55075f9f4704284f2c18bd53d9e1c6ef78e3eaf29cea9") |
|
add_versions("v3.1.0", "32580513dbc054cc23941d36e19741bce1fa106c3031670065719eb4b95afde8") |
|
add_versions("v3.0.0", "50bc3544d97c6c1d82022a78af4ab062010a1d35096330cb84d952b0cf7d54fb") |
|
add_versions("v2.0.4", "440d3d586f8cfe96bc7648f01f2d3c514c4e2dc22446caeb50599383d1970ed2") |
|
add_versions("v2.0.3", "6b52a7b4eb8383cbcf83608eaa08e5ba588a378449439b73584713a16d8920e3") |
|
add_versions("v1.2.2", "2e17c49965841647a1c371247f53b2f576e5fb32fe4b84a080d425b12f17703c") |
|
|
|
on_install("android|!armeabi-v7a or !android", function (package) |
|
if package:version():gt("3.0.0") then |
|
if package:version():gt("3.9.0") then |
|
os.cp("include/stringzilla/drafts.h", package:installdir("include/stringzilla")) |
|
else |
|
os.cp("include/stringzilla/experimental.h", package:installdir("include/stringzilla")) |
|
end |
|
if package:config("cpp") then |
|
os.cp("include/stringzilla/stringzilla.hpp", package:installdir("include/stringzilla")) |
|
end |
|
end |
|
|
|
if package:version():gt("2.0.4") then |
|
os.cp("include/stringzilla/stringzilla.h", package:installdir("include")) |
|
else |
|
os.cp("stringzilla/stringzilla.h", package:installdir("include")) |
|
end |
|
end) |
|
|
|
on_test(function (package) |
|
if package:version():gt("3.0.0") then |
|
if package:config("cpp") then |
|
assert(package:check_cxxsnippets({test = [[ |
|
#include <stringzilla/stringzilla.hpp> |
|
static void test() { |
|
ashvardanian::stringzilla::string s = "hello"; |
|
assert(s == "hello"); |
|
} |
|
]]}, {configs = {languages = "c++11"}, includes = "stringzilla/stringzilla.hpp"})) |
|
assert(package:has_cfuncs("sz_sort", {includes = "stringzilla/stringzilla.h"})) |
|
end |
|
elseif package:version():gt("2.0.0") then |
|
assert(package:has_cfuncs("sz_sort", {includes = "stringzilla.h"})) |
|
else |
|
assert(package:has_cxxfuncs("strzl_sort", {includes = "stringzilla.h", configs = {languages = "c++17"}})) |
|
end |
|
end)
|
|
|