From 0fa79eab869981cc310f45beafc117b3c5f99973 Mon Sep 17 00:00:00 2001 From: xpxz <97490782+heheda123123@users.noreply.github.com> Date: Sat, 24 Jun 2023 20:35:10 +0800 Subject: [PATCH] add mysqlpp (#2219) * add mysqlpp * Update xmake.lua * Update xmake.lua * Update xmake.lua * Update xmake.lua * add linux support * use add_files * use autoconf * Update xmake.lua * Update xmake.lua * Update xmake.lua * Update xmake.lua * Update xmake.lua * Update xmake.lua --- packages/m/mysqlpp/port/xmake.lua | 19 +++++++++++++++ packages/m/mysqlpp/xmake.lua | 39 +++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 packages/m/mysqlpp/port/xmake.lua create mode 100644 packages/m/mysqlpp/xmake.lua diff --git a/packages/m/mysqlpp/port/xmake.lua b/packages/m/mysqlpp/port/xmake.lua new file mode 100644 index 000000000..15adc6d00 --- /dev/null +++ b/packages/m/mysqlpp/port/xmake.lua @@ -0,0 +1,19 @@ +add_rules("mode.debug", "mode.release") +add_requires("mysql", "zlib", "zstd") + +target("mysqlpp") + set_kind("shared") + add_files("lib/beemutex.cpp", "lib/cmdline.cpp", "lib/connection.cpp", "lib/cpool.cpp", "lib/datetime.cpp") + add_files("lib/dbdriver.cpp", "lib/field_names.cpp", "lib/field_types.cpp", "lib/manip.cpp", "lib/myset.cpp") + add_files("lib/mysql++.cpp", "lib/mystring.cpp", "lib/null.cpp", "lib/options.cpp", "lib/qparms.cpp", "lib/query.cpp") + add_files("lib/result.cpp", "lib/row.cpp", "lib/scopedconnection.cpp", "lib/sql_buffer.cpp", "lib/sqlstream.cpp") + add_files("lib/ssqls2.cpp", "lib/stadapter.cpp", "lib/tcp_connection.cpp", "lib/transaction.cpp", "lib/type_info.cpp") + add_files("lib/uds_connection.cpp", "lib/utility.cpp", "lib/vallist.cpp", "lib/wnp_connection.cpp") + add_packages("mysql", "zlib", "zstd") + if is_plat("windows") then + add_syslinks("advapi32") + add_defines("_USRDLL", "DLL_EXPORTS", "UNICODE", "_UNICODE", "MYSQLPP_MAKING_DLL", "HAVE_MYSQL_SSL_SET") + elseif is_plat("mingw") then + add_syslinks("pthread") + add_defines("UNICODE", "_UNICODE", "MYSQLPP_NO_DLL", "HAVE_MYSQL_SSL_SET") + end diff --git a/packages/m/mysqlpp/xmake.lua b/packages/m/mysqlpp/xmake.lua new file mode 100644 index 000000000..14ff0e138 --- /dev/null +++ b/packages/m/mysqlpp/xmake.lua @@ -0,0 +1,39 @@ +package("mysqlpp") + set_homepage("https://tangentsoft.com/mysqlpp/wiki?name=MySQL%2B%2B&p&nsm") + set_description("MySQL++ is a C++ wrapper for the MySQL and MariaDB C APIs") + + set_urls("https://tangentsoft.com/mysqlpp/releases/mysql++-$(version).tar.gz") + add_versions("3.3.0", "449cbc46556cc2cc9f9d6736904169a8df6415f6960528ee658998f96ca0e7cf") + + add_configs("shared", {description = "Build shared binaries.", default = true, type = "boolean", readonly = true}) + + add_deps("mysql") + + on_install("windows", "mingw", function (package) + os.cp(path.join(package:scriptdir(), "port", "xmake.lua"), "xmake.lua") + local configs = {} + if package:config("shared") then + configs.kind = "shared" + end + import("package.tools.xmake").install(package, configs) + os.cp(path.join("lib", "*.h"), package:installdir(path.join("include", "mysql++"))) + end) + + on_install("linux", function (package) + local configs = {} + table.insert(configs, "--enable-shared") + local mysql = package:dep("mysql") + if mysql and not mysql:is_system() then + table.insert(configs, "--with-mysql=" .. package:dep("mysql"):installdir()) + end + import("package.tools.autoconf").install(package, configs) + end) + + on_test(function (package) + assert(package:check_cxxsnippets({test = [[ + #include + void test() { + mysqlpp::String greeting("Hello, world!"); + } + ]]})) + end)