add picojson, mio and hashmap (#692)

* add picojson

* add picojson

* add mio

* Update xmake.lua

* improve mio

* fix tests

* Update xmake.lua
pull/695/head
ruki 3 years ago committed by GitHub
parent 09169aa318
commit 1999e48a37
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 29
      packages/m/mio/xmake.lua
  2. 38
      packages/p/parallel-hashmap/xmake.lua
  3. 29
      packages/p/picojson/xmake.lua

@ -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…
Cancel
Save