xmake.lua 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. set_project("libcroco")
  2. add_rules("mode.debug", "mode.release")
  3. add_requires("glib", "libxml2")
  4. option("installprefix")
  5. set_default("")
  6. set_showmenu(true)
  7. option_end()
  8. if has_config("installprefix") then
  9. local prefix = get_config("installprefix")
  10. set_configvar("prefix", prefix)
  11. set_configvar("CROCO_CFLAGS", "-I" .. prefix .. "/include")
  12. set_configvar("CROCO_LIBS", "-L" .. prefix .. "/lib -lglib-2.0 -pthread -lm -lpcre -lxml2")
  13. end
  14. set_configvar("exec_prefix", "${prefix}")
  15. set_configvar("libdir", "${exec_prefix}/lib")
  16. set_configvar("includedir", "${prefix}/include")
  17. set_configvar("GLIB2_CFLAGS", "")
  18. set_configvar("GLIB2_LIBS", "")
  19. set_configvar("LIBXML2_CFLAGS", "")
  20. set_configvar("LIBXML2_LIBS", "")
  21. local mver = ""
  22. local major_ver = ""
  23. local minor_ver = ""
  24. option("vers")
  25. set_default("")
  26. set_showmenu(true)
  27. option_end()
  28. if has_config("vers") then
  29. set_version(get_config("vers"))
  30. set_configvar("VERSION", get_config("vers"))
  31. set_configvar("LIBCROCO_VERSION", get_config("vers"))
  32. set_configvar("LIBCROCO_VERSION_NUMBER", get_config("vers"))
  33. local spvers = get_config("vers"):split("%.")
  34. major_ver = spvers[1] or ""
  35. minor_ver = spvers[2] or ""
  36. mver = major_ver .. "." .. minor_ver
  37. set_configvar("LIBCROCO_MAJOR_VERSION", major_ver)
  38. set_configvar("LIBCROCO_MINOR_VERSION", minor_ver)
  39. end
  40. set_configvar("G_DISABLE_CHECKS", 0)
  41. target("croco")
  42. set_basename("croco-" .. mver)
  43. set_kind("$(kind)")
  44. add_files("src/*.c")
  45. add_includedirs("src", {public = true})
  46. add_packages("glib", "libxml2", {public = true})
  47. set_configdir("src")
  48. add_configfiles("src/libcroco-config.h.in", {pattern = "@(.-)@"})
  49. add_headerfiles("src/*.h", {prefixdir = "libcroco-" .. mver .. "/libcroco"})
  50. target_end()
  51. target("csslint")
  52. set_basename("csslint-" .. mver)
  53. set_kind("binary")
  54. add_deps("croco")
  55. add_files("csslint/csslint.c")
  56. set_configdir(".")
  57. if not is_plat("windows") then
  58. add_configfiles("croco-config.in", {pattern = "@(.-)@"})
  59. add_configfiles("libcroco.pc.in", {pattern = "@(.-)@"})
  60. after_install(function (target)
  61. os.cp("croco-config", path.join(target:installdir(), "bin", "croco-" .. mver .. "-config"))
  62. os.cp("libcroco.pc", path.join(target:installdir(), "lib", "pkgconfig", "libcroco-" .. mver .. ".pc"))
  63. end)
  64. end
  65. target_end()