From 5f08baf542d7f35b569a47d57c0cd644f18f1a52 Mon Sep 17 00:00:00 2001 From: Hoildkv <42310255+xq114@users.noreply.github.com> Date: Thu, 23 Dec 2021 21:59:38 +0800 Subject: [PATCH] add exprtk and strtk (#786) * add exprtk * add strtk --- packages/e/exprtk/xmake.lua | 36 ++++++++++++++++++++++++++++++++++++ packages/s/strtk/xmake.lua | 26 ++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 packages/e/exprtk/xmake.lua create mode 100644 packages/s/strtk/xmake.lua diff --git a/packages/e/exprtk/xmake.lua b/packages/e/exprtk/xmake.lua new file mode 100644 index 000000000..a97fa3d40 --- /dev/null +++ b/packages/e/exprtk/xmake.lua @@ -0,0 +1,36 @@ +package("exprtk") + + set_kind("library", {headeronly = true}) + set_homepage("https://www.partow.net/programming/exprtk/index.html") + set_description("C++ Mathematical Expression Parsing And Evaluation Library") + set_license("MIT") + + add_urls("https://github.com/ArashPartow/exprtk.git") + add_versions("2021.06.06", "93a9f44f99b910bfe07cd1e933371e83cea3841c") + + if is_plat("windows") then + add_cxxflags("/bigobj") + elseif is_plat("mingw") then + add_cxxflags("-Wa,-mbig-obj") + end + on_install(function (package) + os.cp("exprtk.hpp", package:installdir("include")) + end) + + on_test(function (package) + assert(package:check_cxxsnippets({test = [[ + void test() { + double x; + const std::string expression_string = + "clamp(-1.0,sin(2 * pi * x) + cos(x / 2 * pi),+1.0)"; + exprtk::symbol_table symbol_table; + exprtk::expression expression; + exprtk::parser parser; + + symbol_table.add_variable("x",x); + symbol_table.add_constants(); + expression.register_symbol_table(symbol_table); + parser.compile(expression_string,expression); + } + ]]}, {configs = {languages = "c++14"}, includes = "exprtk.hpp"})) + end) diff --git a/packages/s/strtk/xmake.lua b/packages/s/strtk/xmake.lua new file mode 100644 index 000000000..f08b17e68 --- /dev/null +++ b/packages/s/strtk/xmake.lua @@ -0,0 +1,26 @@ +package("strtk") + + set_kind("library", {headeronly = true}) + set_homepage("https://www.partow.net/programming/strtk/index.html") + set_description("C++ String Toolkit Library") + set_license("MIT") + + add_urls("https://github.com/ArashPartow/strtk.git") + add_versions("2020.01.01", "d2b446bf1f7854e8b08f5295ec6f6852cae066a2") + + on_install(function (package) + os.cp("strtk.hpp", package:installdir("include")) + end) + + on_test(function (package) + assert(package:check_cxxsnippets({test = [[ + #define strtk_no_tr1_or_boost + #include + void test() { + std::string s = "abc|123|xyz|789"; + strtk::single_delimiter_predicate predicate('|'); + strtk::std_string::tokenizer<>::type tokenizer(s,predicate); + strtk::std_string::tokenizer<>::type::iterator itr = tokenizer.begin(); + } + ]]}, {configs = {languages = "c++14"}})) + end)