xmake.lua 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. add_rules("mode.debug", "mode.release")
  2. option("mimalloc", {default = false, showmenu = true, description = "Use mimalloc"})
  3. if has_config("mimalloc") then
  4. add_requires("mimalloc")
  5. end
  6. target("lzham_codec")
  7. set_kind("$(kind)")
  8. set_languages("cxx14")
  9. add_options("mimalloc")
  10. add_files(
  11. "lzhamlib/lzham_lib.cpp",
  12. "lzhamcomp/lzham_lzbase.cpp",
  13. "lzhamcomp/lzham_lzcomp_internal.cpp",
  14. "lzhamcomp/lzham_lzcomp_state.cpp",
  15. "lzhamcomp/lzham_lzcomp.cpp",
  16. "lzhamcomp/lzham_match_accel.cpp",
  17. "lzhamdecomp/lzham_assert.cpp",
  18. "lzhamdecomp/lzham_checksum.cpp",
  19. "lzhamdecomp/lzham_huffman_codes.cpp",
  20. "lzhamdecomp/lzham_lzdecomp.cpp",
  21. "lzhamdecomp/lzham_lzdecompbase.cpp",
  22. "lzhamdecomp/lzham_mem.cpp",
  23. "lzhamdecomp/lzham_platform.cpp",
  24. "lzhamdecomp/lzham_prefix_coding.cpp",
  25. "lzhamdecomp/lzham_symbol_codec.cpp",
  26. "lzhamdecomp/lzham_timer.cpp",
  27. "lzhamdecomp/lzham_vector.cpp"
  28. )
  29. add_headerfiles(
  30. "include/lzham_dynamic_lib.h",
  31. "include/lzham_static_lib.h",
  32. "include/lzham.h",
  33. "include/zlib.h",
  34. "lzhamcomp/lzham_comp.h",
  35. "lzhamcomp/lzham_lzbase.h",
  36. "lzhamcomp/lzham_lzcomp_internal.h",
  37. "lzhamcomp/lzham_match_accel.h",
  38. "lzhamcomp/lzham_null_threading.h",
  39. "lzhamcomp/lzham_threading.h",
  40. "lzhamdecomp/lzham_assert.h",
  41. "lzhamdecomp/lzham_checksum.h",
  42. "lzhamdecomp/lzham_config.h",
  43. "lzhamdecomp/lzham_core.h",
  44. "lzhamdecomp/lzham_decomp.h",
  45. "lzhamdecomp/lzham_helpers.h",
  46. "lzhamdecomp/lzham_huffman_codes.h",
  47. "lzhamdecomp/lzham_lzdecompbase.h",
  48. "lzhamdecomp/lzham_math.h",
  49. "lzhamdecomp/lzham_mem.h",
  50. "lzhamdecomp/lzham_platform.h",
  51. "lzhamdecomp/lzham_prefix_coding.h",
  52. "lzhamdecomp/lzham_symbol_codec.h",
  53. "lzhamdecomp/lzham_timer.h",
  54. "lzhamdecomp/lzham_traits.h",
  55. "lzhamdecomp/lzham_types.h",
  56. "lzhamdecomp/lzham_utils.h",
  57. "lzhamdecomp/lzham_vector.h"
  58. )
  59. add_includedirs("include", {public = true})
  60. add_includedirs("lzhamcomp", "lzhamdecomp")
  61. if has_config("mimalloc") then
  62. add_packages("mimalloc")
  63. add_defines("ASSERT_USE_MIMALLOC")
  64. end
  65. if is_arch("x86_64") then
  66. add_defines("__x86_64__")
  67. elseif is_arch("i386") then
  68. add_defines("__i386__")
  69. end
  70. if is_plat("mingw") then
  71. add_defines("__GNUC__")
  72. if is_arch("i386", "x86") then
  73. add_defines("__MINGW32__")
  74. else
  75. add_defines("__MINGW64__")
  76. end
  77. end
  78. if is_plat("windows") then
  79. add_defines("WIN32", "__WIN32__")
  80. if is_arch("arm64") then
  81. add_defines("__AARCH64__")
  82. elseif is_arch("x64") then
  83. add_defines("_WIN64")
  84. end
  85. add_files("lzhamcomp/lzham_win32_threading.cpp")
  86. add_headerfiles("lzhamcomp/lzham_win32_threading.h")
  87. else
  88. add_syslinks("pthread")
  89. if is_plat("linux") then
  90. add_defines("__linux__")
  91. elseif is_plat("freebsd") then
  92. add_defines("__FreeBSD__")
  93. end
  94. if is_plat("macosx", "iphoneos") then
  95. add_defines("__APPLE__")
  96. add_defines("__MACH__")
  97. if is_plat("macosx") then
  98. add_defines("TARGET_OS_MAC")
  99. else
  100. add_defines("TARGET_OS_IPHONE")
  101. end
  102. end
  103. add_files("lzhamcomp/lzham_pthreads_threading.cpp")
  104. add_headerfiles("lzhamcomp/lzham_pthreads_threading.h")
  105. end