xmake.lua 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package("uchardet")
  2. set_homepage("https://www.freedesktop.org/wiki/Software/uchardet/")
  3. set_description("uchardet is an encoding detector library, which takes a sequence of bytes in an unknown character encoding without any additional information, and attempts to determine the encoding of the text. ")
  4. set_license("MPL-1.1")
  5. add_urls("https://www.freedesktop.org/software/uchardet/releases/uchardet-$(version).tar.xz")
  6. add_versions("0.0.7", "3fc79408ae1d84b406922fa9319ce005631c95ca0f34b205fad867e8b30e45b1")
  7. add_versions("0.0.8", "e97a60cfc00a1c147a674b097bb1422abd9fa78a2d9ce3f3fdcc2e78a34ac5f0")
  8. on_load(function (package)
  9. package:addenv("PATH", "bin")
  10. end)
  11. on_install(function (package)
  12. io.writefile("xmake.lua", [[
  13. add_rules("mode.debug", "mode.release")
  14. if is_plat("windows") then
  15. add_requires("cgetopt")
  16. end
  17. target("uchardet")
  18. set_kind("$(kind)")
  19. add_includedirs("src")
  20. add_headerfiles("src/uchardet.h")
  21. if is_kind("shared") then
  22. add_defines("UCHARDET_SHARED")
  23. end
  24. add_defines("BUILDING_UCHARDET")
  25. add_files("src/*.cpp", "src/LangModels/*.cpp")
  26. target("uchardet_bin")
  27. set_kind("binary")
  28. set_basename("uchardet")
  29. add_files("src/tools/uchardet.cpp")
  30. add_deps("uchardet")
  31. if is_plat("windows") then
  32. add_packages("cgetopt")
  33. end
  34. ]])
  35. local configs = {}
  36. if package:config("shared") then
  37. configs.kind = "shared"
  38. end
  39. import("package.tools.xmake").install(package, configs)
  40. end)
  41. on_test(function (package)
  42. if not package:is_cross() then
  43. os.vrun("uchardet -v")
  44. end
  45. assert(package:has_cfuncs("uchardet_get_charset", {includes = "uchardet.h"}))
  46. end)