xmake.lua 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. on_install(function (package)
  8. io.writefile("xmake.lua", [[
  9. add_rules("mode.debug", "mode.release")
  10. target("llhttp")
  11. set_kind("$(kind)")
  12. if is_kind("shared") and is_plat("windows") then
  13. local funcs = {"llhttp_init",
  14. "llhttp_settings_init",
  15. "llhttp_execute",
  16. "llhttp_finish",
  17. "llhttp_message_needs_eof",
  18. "llhttp_should_keep_alive",
  19. "llhttp_pause",
  20. "llhttp_resume",
  21. "llhttp_resume_after_upgrade",
  22. "llhttp_get_errno",
  23. "llhttp_get_error_reason",
  24. "llhttp_set_error_reason",
  25. "llhttp_get_error_pos",
  26. "llhttp_errno_name",
  27. "llhttp_method_name",
  28. "llhttp_set_lenient_headers",
  29. "llhttp_set_lenient_chunked_length"}
  30. for _, func in ipairs(funcs) do
  31. add_shflags("/export:" .. func)
  32. end
  33. end
  34. add_files("src/*.c")
  35. add_includedirs("include")
  36. add_headerfiles("include/llhttp.h")
  37. ]])
  38. local configs = {}
  39. if package:config("shared") then
  40. configs.kind = "shared"
  41. end
  42. import("package.tools.xmake").install(package, configs)
  43. end)
  44. on_test(function (package)
  45. assert(package:has_cfuncs("llhttp_init", {includes = "llhttp.h"}))
  46. end)