xmake.lua 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. add_rules("mode.debug", "mode.release")
  2. option("enable_tools")
  3. set_default(false)
  4. set_showmenu(true)
  5. target("bz2")
  6. set_kind("$(kind)")
  7. set_languages("c89")
  8. add_headerfiles("bzlib.h")
  9. add_files("blocksort.c")
  10. add_files("bzlib.c")
  11. add_files("compress.c")
  12. add_files("crctable.c")
  13. add_files("decompress.c")
  14. add_files("huffman.c")
  15. add_files("randtable.c")
  16. if is_plat("windows") and is_kind("shared") then
  17. set_filename("libbz2.dll")
  18. add_files("libbz2.def")
  19. end
  20. if has_config("enable_tools") then
  21. target("bzip2")
  22. set_kind("binary")
  23. add_deps("bz2")
  24. add_files("bzip2.c")
  25. after_install(function (target)
  26. -- copy/link additional executables/scripts (behavior is altered by checking the program name)
  27. if target:is_plat("windows", "mingw") then
  28. local binarydir = path.join(target:installdir(), "bin")
  29. os.vcp(path.join(binarydir, "bzip2.exe"), path.join(binarydir, "bzcat.exe"))
  30. os.vcp(path.join(binarydir, "bzip2.exe"), path.join(binarydir, "bunzip2.exe"))
  31. else
  32. local binarydir = path.join(target:installdir(), "bin")
  33. os.ln(path.join(binarydir, "bzip2"), path.join(binarydir, "bzcat"))
  34. os.ln(path.join(binarydir, "bzip2"), path.join(binarydir, "bunzip2"))
  35. -- copy shell scripts
  36. os.vcp("bzdiff", binarydir)
  37. os.vcp("bzgrep", binarydir)
  38. os.vcp("bzmore", binarydir)
  39. -- and renamed copies
  40. os.ln(path.join(binarydir, "bzdiff"), path.join(binarydir, "bzcmp"))
  41. os.ln(path.join(binarydir, "bzgrep"), path.join(binarydir, "bzegrep"))
  42. os.ln(path.join(binarydir, "bzgrep"), path.join(binarydir, "bzfgrep"))
  43. os.ln(path.join(binarydir, "bzmore"), path.join(binarydir, "bzless"))
  44. end
  45. end)
  46. target("bzip2recover")
  47. set_kind("binary")
  48. add_deps("bz2")
  49. add_files("bzip2recover.c")
  50. end