xmake.lua 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. option("ver", {default = "0.21.4"})
  2. option("thread_safe", {default = false})
  3. option("libjpeg", {default = false})
  4. option("lcms", {default = false})
  5. option("jasper", {default = false})
  6. if has_config("libjpeg") then
  7. add_requires("libjpeg")
  8. end
  9. if has_config("lcms") then
  10. add_requires("lcms")
  11. end
  12. if has_config("jasper") then
  13. add_requires("jasper")
  14. end
  15. add_rules("mode.debug", "mode.release")
  16. set_languages("c++11")
  17. if is_kind("shared") then
  18. add_defines("LIBRAW_BUILDLIB")
  19. else
  20. add_defines("LIBRAW_NODLL")
  21. end
  22. if is_plat("windows") then
  23. add_defines("WIN32")
  24. elseif is_plat("mingw") then
  25. add_defines(
  26. "M_PI=3.14159265358979323846",
  27. "M_SQRT1_2=0.70710678118654752440"
  28. )
  29. end
  30. if is_plat("windows", "mingw") then
  31. add_syslinks("ws2_32")
  32. end
  33. add_headerfiles("(libraw/*.h)")
  34. add_includedirs(".")
  35. set_version(get_config("ver"), {soname = true})
  36. if has_config("libjpeg") then
  37. add_defines("USE_JPEG", "USE_JPEG8")
  38. add_packages("libjpeg")
  39. end
  40. if has_config("lcms") then
  41. add_defines("USE_LCMS2")
  42. add_packages("lcms")
  43. end
  44. if has_config("jasper") then
  45. add_defines("USE_JASPER")
  46. add_packages("jasper")
  47. end
  48. on_load(function (target)
  49. local version = import("core.base.semver").new(get_config("ver"))
  50. if version:ge("0.21") then
  51. target:add("files", "src/**.cpp")
  52. target:remove("files", "src/**_ph.cpp")
  53. else
  54. target:add("files",
  55. "src/libraw_cxx.cpp", "src/libraw_datastream.cpp", "src/libraw_c_api.cpp",
  56. "internal/dcraw_common.cpp", "internal/dcraw_fileio.cpp", "internal/demosaic_packs.cpp"
  57. )
  58. end
  59. end)
  60. target("raw")
  61. set_kind("$(kind)")
  62. if has_config("thread_safe") then
  63. target("raw_r")
  64. set_kind("$(kind)")
  65. add_cxflags("-pthread")
  66. add_syslinks("pthread")
  67. add_deps("raw")
  68. end