add picojson, mio and hashmap (#692)
* add picojson * add picojson * add mio * Update xmake.lua * improve mio * fix tests * Update xmake.luapull/695/head
parent
09169aa318
commit
1999e48a37
3 changed files with 96 additions and 0 deletions
@ -0,0 +1,29 @@ |
||||
package("mio") |
||||
|
||||
set_kind("library", {headeronly = true}) |
||||
set_homepage("https://github.com/mandreyel/mio") |
||||
set_description("Cross-platform C++11 header-only library for memory mapped file IO") |
||||
set_license("MIT") |
||||
|
||||
add_urls("https://github.com/mandreyel/mio.git") |
||||
add_versions("2021.9.21", "3f86a95c0784d73ce6815237ec33ed25f233b643") |
||||
|
||||
add_deps("cmake") |
||||
on_install("linux", "macosx", "bsd", "iphoneos", "android", function (package) |
||||
import("package.tools.cmake").install(package, {"-Dmio.tests=OFF"}) |
||||
end) |
||||
|
||||
on_test(function(package) |
||||
assert(package:check_cxxsnippets({ |
||||
test = [[ |
||||
#include <string> |
||||
#include <vector> |
||||
#include <algorithm> |
||||
#include <mio/mmap.hpp> |
||||
|
||||
static void test() { |
||||
mio::mmap_source mmap(0, 0, mio::map_entire_file); |
||||
} |
||||
]] |
||||
}, {configs = {languages = "c++11"}})) |
||||
end) |
@ -0,0 +1,38 @@ |
||||
package("parallel-hashmap") |
||||
|
||||
set_kind("library", {headeronly = true}) |
||||
set_homepage("https://greg7mdp.github.io/parallel-hashmap/") |
||||
set_description("A family of header-only, very fast and memory-friendly hashmap and btree containers.") |
||||
set_license("Apache-2.0") |
||||
|
||||
add_urls("https://github.com/greg7mdp/parallel-hashmap/archive/refs/tags/$(version).tar.gz", |
||||
"https://github.com/greg7mdp/parallel-hashmap.git") |
||||
add_versions("1.33", "f6e4d0508c4d935fa25dcbaec63fbe0d7503435797e275ec109e8a3f1462a4cd") |
||||
|
||||
add_deps("cmake") |
||||
on_install(function (package) |
||||
import("package.tools.cmake").install(package) |
||||
end) |
||||
|
||||
on_test(function(package) |
||||
assert(package:check_cxxsnippets({ |
||||
test = [[ |
||||
#include <iostream> |
||||
#include <string> |
||||
#include <parallel_hashmap/phmap.h> |
||||
|
||||
using phmap::flat_hash_map; |
||||
static void test() { |
||||
flat_hash_map<std::string, std::string> email = { |
||||
{ "tom", "tom@gmail.com"}, |
||||
{ "jeff", "jk@gmail.com"}, |
||||
{ "jim", "jimg@microsoft.com"} |
||||
}; |
||||
for (const auto& n : email) |
||||
std::cout << n.first << "'s email is: " << n.second << "\n"; |
||||
email["bill"] = "bg@whatever.com"; |
||||
std::cout << "bill's email is: " << email["bill"] << "\n"; |
||||
} |
||||
]] |
||||
}, {configs = {languages = "c++11"}})) |
||||
end) |
@ -0,0 +1,29 @@ |
||||
package("picojson") |
||||
|
||||
set_kind("library", {headeronly = true}) |
||||
set_homepage("https://pocoproject.org/") |
||||
set_description("A header-file-only, JSON parser serializer in C++") |
||||
set_license("BSD-2-Clause") |
||||
|
||||
add_urls("https://github.com/kazuho/picojson/archive/refs/tags/$(version).tar.gz", |
||||
"https://github.com/kazuho/picojson.git") |
||||
add_versions("v1.3.0", "056805ca2691798f5545935a14bb477f2e1d827c9fb862e6e449dbea22801c7d") |
||||
|
||||
on_install(function (package) |
||||
os.cp("picojson.h", package:installdir("include")) |
||||
end) |
||||
|
||||
on_test(function(package) |
||||
assert(package:check_cxxsnippets({ |
||||
test = [[ |
||||
static void test() { |
||||
std::string json = "[ \"hello JSON\" ]"; |
||||
picojson::value v; |
||||
std::string err = picojson::parse(v, json); |
||||
if (! err.empty()) { |
||||
std::cerr << err << std::endl; |
||||
} |
||||
} |
||||
]] |
||||
}, {configs = {languages = "c++11"}, includes = {"picojson.h"}})) |
||||
end) |
Loading…
Reference in new issue