xmake.lua 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. add_rules("mode.debug", "mode.release")
  2. option("enable_float", {default = true, showmenu = true})
  3. option("HAS_OPEN_MEMSTREAM")
  4. add_cfuncs("open_memstream")
  5. add_cincludes("stdio.h")
  6. add_defines("_GNU_SOURCE")
  7. option("HAS_FOPENCOOKIE")
  8. add_cfuncs("fopencookie")
  9. add_cincludes("stdio.h")
  10. add_defines("_GNU_SOURCE")
  11. option("HAS_FUNOPEN")
  12. add_cfuncs("funopen")
  13. add_cincludes("stdio.h")
  14. add_defines("_GNU_SOURCE")
  15. target("tinycbor")
  16. set_kind("$(kind)")
  17. add_files("src/cbor*.c")
  18. add_includedirs("src")
  19. if not has_config("HAS_OPEN_MEMSTREAM") then
  20. if has_config("HAS_FOPENCOOKIE") and has_config("HAS_FUNOPEN") then
  21. add_files("src/open_memstream.c")
  22. else
  23. add_defines("WITHOUT_OPEN_MEMSTREAM")
  24. end
  25. end
  26. if not has_config("enable_float") then
  27. add_defines("CBOR_NO_FLOATING_POINT")
  28. end
  29. if is_plat("mingw") and is_arch("i386") then
  30. add_vectorexts("all")
  31. end
  32. if is_plat("windows") and is_kind("shared") then
  33. add_defines("CBOR_API=__declspec(dllexport)")
  34. end
  35. add_headerfiles("src/cbor.h", "src/cborjson.h", "src/tinycbor-version.h")