xmake.lua 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. add_rules("plugin.compile_commands.autoupdate", {outputdir = ".vscode"})
  2. target("RyanMqtt",function()
  3. set_kind("binary")
  4. add_syslinks("pthread")
  5. set_toolchains("gcc") -- 确保使用 GCC
  6. -- set_toolchains("clang-20") -- 确保使用 GCC
  7. set_languages("gnu99") -- 关键!启用 GNU 扩展
  8. set_warnings("everything") -- 启用全部警告 -Wall -Wextra -Weffc++ / -Weverything
  9. set_optimize("smallest") -- -Os
  10. -- set_optimize("faster") -- -O2
  11. -- set_optimize("fastest") -- -O3
  12. add_defines("PKG_USING_RYANMQTT_IS_ENABLE_ASSERT") -- 开启assert
  13. add_ldflags("-Wl,-Map=$(buildir)/RyanMqtt.map")
  14. add_cxflags(
  15. "-pedantic",
  16. "-Wall",
  17. "-Wextra",
  18. "-Wno-unused-parameter",
  19. -- clang的
  20. -- "-Wno-gnu-zero-variadic-macro-arguments",
  21. -- "-Wno-c23-extensions",
  22. {force=true})
  23. --加入代码和头文件
  24. add_includedirs('./common', {public = true})
  25. add_includedirs('./coreMqtt', {public = true})
  26. add_includedirs('./mqttclient/include', {public = true})
  27. add_includedirs('./platform/linux', {public = true})
  28. add_includedirs('./platform/linux/valloc', {public = true})
  29. add_files('./test/*.c', {public = true})
  30. add_files('./common/*.c', {public = true})
  31. add_files('./coreMqtt/*.c', {public = true})
  32. add_files('./mqttclient/*.c', {public = true})
  33. add_files('./platform/linux/*.c', {public = true})
  34. add_files('./platform/linux/valloc/*.c', {public = true})
  35. end)