xmake.lua 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package("llhttp")
  2. set_homepage("https://github.com/nodejs/llhttp")
  3. set_description("Port of http_parser to llparse")
  4. set_license("MIT")
  5. add_urls("https://github.com/nodejs/llhttp/archive/release/$(version).tar.gz")
  6. add_versions("v3.0.0", "02931556e69f8d075edb5896127099e70a093c104a994a57b4d72c85b48d25b0")
  7. add_versions("v8.1.0", "9da0d23453e8e242cf3b2bc5d6fb70b1517b8a70520065fcbad6be787e86638e")
  8. on_install(function (package)
  9. io.writefile("xmake.lua", [[
  10. add_rules("mode.debug", "mode.release")
  11. target("llhttp")
  12. set_kind("$(kind)")
  13. if is_kind("shared") and is_plat("windows") then
  14. local funcs = {"llhttp_init",
  15. "llhttp_settings_init",
  16. "llhttp_execute",
  17. "llhttp_finish",
  18. "llhttp_message_needs_eof",
  19. "llhttp_should_keep_alive",
  20. "llhttp_pause",
  21. "llhttp_resume",
  22. "llhttp_resume_after_upgrade",
  23. "llhttp_get_errno",
  24. "llhttp_get_error_reason",
  25. "llhttp_set_error_reason",
  26. "llhttp_get_error_pos",
  27. "llhttp_errno_name",
  28. "llhttp_method_name",
  29. "llhttp_set_lenient_headers",
  30. "llhttp_set_lenient_chunked_length"}
  31. for _, func in ipairs(funcs) do
  32. add_shflags("/export:" .. func)
  33. end
  34. end
  35. add_files("src/*.c")
  36. add_includedirs("include")
  37. add_headerfiles("include/llhttp.h")
  38. ]])
  39. local configs = {}
  40. if package:config("shared") then
  41. configs.kind = "shared"
  42. end
  43. import("package.tools.xmake").install(package, configs)
  44. end)
  45. on_test(function (package)
  46. assert(package:has_cfuncs("llhttp_init", {includes = "llhttp.h"}))
  47. end)