xmake.lua 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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 is_plat("wasm") then
  21. add_defines("BZ_STRICT_ANSI")
  22. end
  23. if has_config("enable_tools") then
  24. target("bzip2")
  25. set_kind("binary")
  26. add_deps("bz2")
  27. add_files("bzip2.c")
  28. after_install(function (target)
  29. -- copy/link additional executables/scripts (behavior is altered by checking the program name)
  30. if target:is_plat("windows", "mingw") then
  31. local binarydir = path.join(target:installdir(), "bin")
  32. os.vcp(path.join(binarydir, "bzip2.exe"), path.join(binarydir, "bzcat.exe"))
  33. os.vcp(path.join(binarydir, "bzip2.exe"), path.join(binarydir, "bunzip2.exe"))
  34. elseif is_subhost("windows") then
  35. -- when cross-compiling (ex: android from windows), we need to copy the binaries too
  36. local binarydir = path.join(target:installdir(), "bin")
  37. os.vcp(path.join(binarydir, "bzip2"), path.join(binarydir, "bzcat"))
  38. os.vcp(path.join(binarydir, "bzip2"), path.join(binarydir, "bunzip2"))
  39. else
  40. local binarydir = path.join(target:installdir(), "bin")
  41. os.ln(path.join(binarydir, "bzip2"), path.join(binarydir, "bzcat"))
  42. os.ln(path.join(binarydir, "bzip2"), path.join(binarydir, "bunzip2"))
  43. -- copy shell scripts
  44. os.vcp("bzdiff", binarydir)
  45. os.vcp("bzgrep", binarydir)
  46. os.vcp("bzmore", binarydir)
  47. -- and renamed copies
  48. os.ln(path.join(binarydir, "bzdiff"), path.join(binarydir, "bzcmp"))
  49. os.ln(path.join(binarydir, "bzgrep"), path.join(binarydir, "bzegrep"))
  50. os.ln(path.join(binarydir, "bzgrep"), path.join(binarydir, "bzfgrep"))
  51. os.ln(path.join(binarydir, "bzmore"), path.join(binarydir, "bzless"))
  52. end
  53. end)
  54. target("bzip2recover")
  55. set_kind("binary")
  56. add_deps("bz2")
  57. add_files("bzip2recover.c")
  58. end