xmake.lua 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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_cxflags(
  14. "-pedantic",
  15. "-Wall",
  16. "-Wextra",
  17. "-Wno-unused-parameter",
  18. -- clang的
  19. -- "-Wno-gnu-zero-variadic-macro-arguments",
  20. -- "-Wno-c23-extensions",
  21. {force=true})
  22. --加入代码和头文件
  23. add_includedirs('./common', {public = true})
  24. add_includedirs('./coreMqtt', {public = true})
  25. add_includedirs('./mqttclient', {public = true})
  26. add_includedirs('./platform/linux', {public = true})
  27. add_includedirs('./platform/linux/valloc', {public = true})
  28. add_files('./test/*.c', {public = true})
  29. add_files('./common/*.c', {public = true})
  30. add_files('./coreMqtt/*.c', {public = true})
  31. add_files('./mqttclient/*.c', {public = true})
  32. add_files('./platform/linux/*.c', {public = true})
  33. add_files('./platform/linux/valloc/*.c', {public = true})
  34. add_ldflags("-Wl,-Map=$(buildir)/RyanMqtt.map")
  35. end)