xmake.lua 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package("telebot")
  2. set_homepage("https://elmurod.net/telebot")
  3. set_description("Telegram Bot API in C")
  4. set_license("Apache-2.0")
  5. add_urls("https://github.com/smartnode/telebot.git")
  6. add_versions("2024.05.11", "63693b4f9bcdc3fd0b0f2b37104b6694d723b5b4")
  7. if is_plat("linux") then
  8. add_syslinks("pthread")
  9. end
  10. add_deps("json-c", "libcurl")
  11. if is_plat("windows", "mingw@macosx,linux") then
  12. add_deps("pthreads4w")
  13. end
  14. on_install("windows|x64", "windows|x86", "mingw@macosx,linux", "linux", function (package)
  15. if package:is_plat("windows") then
  16. io.replace("src/telebot.c", "#include <unistd.h>", "", {plain = true})
  17. io.replace("src/telebot-core.c", "#include <unistd.h>", "", {plain = true})
  18. end
  19. io.replace("src/telebot.c", "#include <json.h>", "#include <json-c/json.h>", {plain = true})
  20. io.replace("src/telebot-core.c", "#include <json.h>", "#include <json-c/json.h>", {plain = true})
  21. io.replace("src/telebot-parser.c", "#include <json.h>", "#include <json-c/json.h>", {plain = true})
  22. io.replace("src/telebot.c", "#include <json_object.h>", "#include <json-c/json_object.h>", {plain = true})
  23. io.replace("src/telebot-parser.c", "#include <json_object.h>", "#include <json-c/json_object.h>", {plain = true})
  24. io.writefile("xmake.lua", [[
  25. add_rules("mode.debug", "mode.release")
  26. set_encodings("utf-8")
  27. if is_plat("windows", "mingw@macosx,linux") then
  28. add_requires("pthreads4w")
  29. add_packages("pthreads4w")
  30. end
  31. add_requires("json-c", "libcurl")
  32. add_packages("json-c", "libcurl")
  33. target("telebot")
  34. set_kind("$(kind)")
  35. add_files("src/*.c")
  36. add_headerfiles("include/*.h")
  37. add_includedirs("include")
  38. if is_plat("windows") and is_kind("shared") then
  39. add_rules("utils.symbols.export_all")
  40. end
  41. ]])
  42. import("package.tools.xmake").install(package)
  43. end)
  44. on_test(function (package)
  45. assert(package:has_cfuncs("telebot_create", {includes = "telebot.h"}))
  46. end)