Browse Source

add farmhash, mjson, xxhash (#559)

* add farmhash

* add mjson

* add xxhash
Hoildkv 4 years ago
parent
commit
4beba374dd
3 changed files with 87 additions and 0 deletions
  1. 34 0
      packages/f/farmhash/xmake.lua
  2. 27 0
      packages/m/mjson/xmake.lua
  3. 26 0
      packages/x/xxhash/xmake.lua

+ 34 - 0
packages/f/farmhash/xmake.lua

@@ -0,0 +1,34 @@
+package("farmhash")
+
+    set_homepage("https://github.com/google/farmhash")
+    set_description("FarmHash, a family of hash functions.")
+    set_license("MIT")
+
+    add_urls("https://github.com/google/farmhash.git")
+    add_versions("2019.05.14", "0d859a811870d10f53a594927d0d0b97573ad06d")
+
+    add_configs("shared", {description = "Build shared library.", default = false, type = "boolean", readonly = true})
+
+    on_install("windows", "macosx", "linux", "mingw", function (package)
+        os.cd("src")
+        io.writefile("xmake.lua", [[
+            add_rules("mode.debug", "mode.release")
+            target("farmhash")
+                set_kind("static")
+                set_languages("c++11")
+                add_defines("FARMHASH_NO_BUILTIN_EXPECT")
+                add_files("farmhash.cc")
+                add_headerfiles("farmhash.h")
+        ]])
+        import("package.tools.xmake").install(package)
+    end)
+
+    on_test(function (package)
+        assert(package:check_cxxsnippets({test = [[
+            void test() {
+                using namespace NAMESPACE_FOR_HASH_FUNCTIONS;
+                char data[] = "hash";
+                auto result = Hash(data, 4);
+            }
+        ]]}, {configs = {languages = "c++11"}, includes = "farmhash.h"}))
+    end)

+ 27 - 0
packages/m/mjson/xmake.lua

@@ -0,0 +1,27 @@
+package("mjson")
+
+    set_homepage("https://github.com/cesanta/mjson")
+    set_description("C/C++ JSON parser, emitter, JSON-RPC engine for embedded systems")
+    set_license("MIT")
+
+    add_urls("https://github.com/cesanta/mjson/archive/refs/tags/$(version).zip",
+             "https://github.com/cesanta/mjson.git")
+    add_versions("1.2.6", "d801348c38c883802a540eec0b3ea14318837084cbdd32bd83041d03a8850fe6")
+
+    add_configs("shared", {description = "Build shared library.", default = false, type = "boolean", readonly = true})
+
+    on_install(function (package)
+        os.cd("src")
+        io.writefile("xmake.lua", [[
+            add_rules("mode.debug", "mode.release")
+            target("mjson")
+                set_kind("static")
+                add_files("mjson.c")
+                add_headerfiles("mjson.h")
+        ]])
+        import("package.tools.xmake").install(package)
+    end)
+
+    on_test(function (package)
+        assert(package:has_cfuncs("mjson_find", {includes = "mjson.h"}))
+    end)

+ 26 - 0
packages/x/xxhash/xmake.lua

@@ -0,0 +1,26 @@
+package("xxhash")
+
+    set_homepage("http://cyan4973.github.io/xxHash/")
+    set_description("xxHash is an extremely fast non-cryptographic hash algorithm, working at RAM speed limit.")
+    set_license("BSD-2-Clause")
+
+    add_urls("https://github.com/Cyan4973/xxHash/archive/refs/tags/v0.8.0.tar.gz",
+             "https://github.com/Cyan4973/xxHash.git")
+    add_versions("v0.8.0", "7054c3ebd169c97b64a92d7b994ab63c70dd53a06974f1f630ab782c28db0f4f")
+
+    add_configs("shared", {description = "Build shared library.", default = false, type = "boolean", readonly = true})
+
+    on_install("windows", "macosx", "linux", function (package)
+        io.writefile("xmake.lua", [[
+            add_rules("mode.debug", "mode.release")
+            target("xxhash")
+                set_kind("static")
+                add_files("xxhash.c")
+                add_headerfiles("xxhash.h", "xxh3.h")
+        ]])
+        import("package.tools.xmake").install(package)
+    end)
+
+    on_test(function (package)
+        assert(package:has_cfuncs("XXH_versionNumber", {includes = "xxhash.h"}))
+    end)