xmake.lua 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. set_project("LuatOS-BSP")
  2. set_xmakever("2.6.3")
  3. set_version("0.0.3", {build = "%Y%m%d%H%M"})
  4. add_rules("mode.debug", "mode.release")
  5. -- 这里用llvm和clang了,尝试一下
  6. add_requires("llvm")
  7. set_toolchains("@llvm")
  8. local luatos = "../../"
  9. -- set warning all as error
  10. set_warnings("allextra")
  11. set_optimize("fastest")
  12. -- set language: c11
  13. set_languages("c11", "cxx11")
  14. add_defines("__LUATOS__", "__XMAKE_BUILD__")
  15. add_cflags("-ffunction-sections","-fdata-sections", "-Wl,--gc-sections","-D_POSIX_C_SOURCE=199309L")
  16. add_ldflags("-ffunction-sections","-fdata-sections", "-Wl,--gc-sections", "-lreadline","-lm","-pthread")
  17. add_requires("libsdl2")
  18. add_packages("libsdl2")
  19. target("luatos")
  20. -- set kind
  21. set_kind("binary")
  22. set_targetdir("$(buildir)/out")
  23. -- add deps
  24. add_files("src/*.c",{public = true})
  25. add_files("port/*.c",{public = true})
  26. add_includedirs("include",{public = true})
  27. -- printf
  28. add_includedirs(luatos.."components/printf",{public = true})
  29. add_files(luatos.."components/printf/*.c")
  30. add_files(luatos.."lua/src/*.c")
  31. add_files(luatos.."luat/modules/*.c")
  32. add_files(luatos.."luat/vfs/*.c")
  33. add_files(luatos.."components/common/*.c")
  34. -- add_files(luatos.."components/lcd/*.c")
  35. -- add_files(luatos.."components/sfd/*.c")
  36. -- add_files(luatos.."components/sfud/*.c")
  37. -- add_files(luatos.."components/statem/*.c")
  38. -- add_files(luatos.."components/nr_micro_shell/*.c")
  39. -- add_files(luatos.."components/eink/*.c")
  40. -- add_files(luatos.."components/epaper/*.c")
  41. -- add_files(luatos.."components/iconv/*.c")
  42. add_files(luatos.."components/lfs/*.c")
  43. add_files(luatos.."components/lua-cjson/*.c")
  44. -- add_files(luatos.."components/minmea/*.c")
  45. -- add_files(luatos.."components/u8g2/*.c")
  46. -- add_files(luatos.."components/fatfs/*.c")
  47. add_files(luatos.."luat/weak/*.c")
  48. -- add_files(luatos.."components/coremark/*.c")
  49. add_files(luatos.."components/cjson/*.c")
  50. add_includedirs(luatos.."lua/include",{public = true})
  51. add_includedirs(luatos.."luat/include",{public = true})
  52. add_includedirs(luatos.."components/common",{public = true})
  53. add_includedirs(luatos.."components/lcd",{public = true})
  54. add_includedirs(luatos.."components/sfud",{public = true})
  55. add_includedirs(luatos.."components/statem",{public = true})
  56. add_includedirs(luatos.."components/coremark",{public = true})
  57. add_includedirs(luatos.."components/cjson",{public = true})
  58. add_includedirs(luatos.."components/eink")
  59. add_includedirs(luatos.."components/epaper")
  60. add_includedirs(luatos.."components/iconv")
  61. add_includedirs(luatos.."components/lfs")
  62. add_includedirs(luatos.."components/lua-cjson")
  63. add_includedirs(luatos.."components/minmea")
  64. add_includedirs(luatos.."components/u8g2")
  65. add_includedirs(luatos.."components/fatfs")
  66. -- -- gtfont
  67. -- add_includedirs(luatos.."components/gtfont",{public = true})
  68. -- add_files(luatos.."components/gtfont/*.c")
  69. -- add_files(luatos.."components/i2c-tools/*.c")
  70. -- add_includedirs(luatos.."components/i2c-tools")
  71. -- add_files(luatos.."components/flashdb/src/*.c")
  72. -- add_files(luatos.."components/fal/src/*.c")
  73. -- add_includedirs(luatos.."components/flashdb/inc",{public = true})
  74. -- add_includedirs(luatos.."components/fal/inc",{public = true})
  75. add_files(luatos.."components/mbedtls/library/*.c")
  76. add_includedirs(luatos.."components/mbedtls/include")
  77. -- add_files(luatos.."components/zlib/*.c")
  78. -- add_includedirs(luatos.."components/zlib")
  79. -- add_files(luatos.."components/mlx90640-library/*.c")
  80. -- add_includedirs(luatos.."components/mlx90640-library")
  81. -- add_files(luatos.."components/camera/*.c")
  82. -- add_includedirs(luatos.."components/camera")
  83. -- add_files(luatos.."components/soft_keyboard/*.c")
  84. -- add_includedirs(luatos.."components/soft_keyboard")
  85. -- add_files(luatos.."components/multimedia/*.c")
  86. -- add_includedirs(luatos.."components/multimedia")
  87. -- add_files(luatos.."components/io_queue/*.c")
  88. -- add_includedirs(luatos.."components/io_queue")
  89. -- add_files(luatos.."components/tjpgd/*.c")
  90. -- add_includedirs(luatos.."components/tjpgd")
  91. -- -- shell & cmux
  92. -- add_includedirs(luatos.."components/shell",{public = true})
  93. -- add_includedirs(luatos.."components/cmux",{public = true})
  94. -- add_files(luatos.."components/shell/*.c")
  95. -- add_files(luatos.."components/cmux/*.c")
  96. -- -- ymodem
  97. -- add_includedirs(luatos.."components/ymodem",{public = true})
  98. -- add_files(luatos.."components/ymodem/*.c")
  99. -- -- usbapp
  100. -- add_includedirs(luatos.."components/usbapp",{public = true})
  101. -- add_files(luatos.."components/usbapp/*.c")
  102. -- -- network
  103. -- add_includedirs(luatos.."components/ethernet/common",{public = true})
  104. -- add_includedirs(luatos.."components/ethernet/w5500",{public = true})
  105. -- add_includedirs(luatos.."components/network/adapter",{public = true})
  106. -- add_files(luatos.."components/ethernet/**.c")
  107. -- add_files(luatos.."components/network/adapter/*.c")
  108. -- -- mqtt
  109. -- add_includedirs(luatos.."components/network/libemqtt",{public = true})
  110. -- add_files(luatos.."components/network/libemqtt/*.c")
  111. -- -- sntp
  112. -- add_includedirs(luatos.."components/network/libsntp",{public = true})
  113. -- add_files(luatos.."components/network/libsntp/*.c")
  114. -- -- http_parser
  115. -- add_includedirs(luatos.."components/network/http_parser",{public = true})
  116. -- add_files(luatos.."components/network/http_parser/*.c")
  117. -- -- libftp
  118. -- add_includedirs(luatos.."components/network/libftp",{public = true})
  119. -- add_files(luatos.."components/network/libftp/*.c")
  120. -- -- websocket
  121. -- add_includedirs(luatos.."components/network/websocket",{public = true})
  122. -- add_files(luatos.."components/network/websocket/*.c")
  123. -- -- http
  124. -- add_includedirs(luatos.."components/network/libhttp",{public = true})
  125. -- -- add_files(luatos.."components/network/libhttp/luat_lib_http.c")
  126. -- add_files(luatos.."components/network/libhttp/*.c")
  127. -- iotauth
  128. add_files(luatos.."components/iotauth/luat_lib_iotauth.c")
  129. -- qrcode
  130. add_includedirs(luatos.."components/qrcode",{public = true})
  131. add_files(luatos.."components/qrcode/*.c")
  132. -- -- lora
  133. -- add_includedirs(luatos.."components/lora",{public = true})
  134. -- add_files(luatos.."components/lora/**.c")
  135. -- -- fonts
  136. -- add_includedirs(luatos.."components/luatfonts",{public = true})
  137. -- add_files(luatos.."components/luatfonts/**.c")
  138. -- crypto
  139. add_files(luatos.."components/crypto/**.c")
  140. -- protobuf
  141. add_includedirs(luatos.."components/serialization/protobuf")
  142. add_files(luatos.."components/serialization/protobuf/*.c")
  143. -- rsa
  144. add_includedirs(luatos.."components/rsa/inc")
  145. add_files(luatos.."components/rsa/**.c")
  146. -- -- 添加fskv
  147. -- add_includedirs(luatos.."components/fskv")
  148. -- add_files(luatos.."components/fskv/*.c")
  149. -- sdl2
  150. add_includedirs(luatos.."components/ui/sdl2")
  151. add_files(luatos.."components/ui/sdl2/*.c")
  152. -- u8g2
  153. add_includedirs(luatos.."components/u8g2")
  154. add_files(luatos.."components/u8g2/*.c")
  155. -- lcd
  156. add_includedirs(luatos.."components/lcd")
  157. add_files(luatos.."components/lcd/*.c")
  158. -- lvgl
  159. add_includedirs(luatos.."components/lvgl")
  160. add_includedirs(luatos.."components/lvgl/binding")
  161. add_includedirs(luatos.."components/lvgl/gen")
  162. add_includedirs(luatos.."components/lvgl/src")
  163. add_includedirs(luatos.."components/lvgl/font")
  164. add_includedirs(luatos.."components/lvgl/src/lv_font")
  165. add_files(luatos.."components/lvgl/**.c")
  166. -- 默认不编译lv的demos, 节省大量的编译时间
  167. remove_files(luatos.."components/lvgl/lv_demos/**.c")
  168. -- tjpgd
  169. add_files(luatos.."components/tjpgd/*.c")
  170. add_includedirs(luatos.."components/tjpgd")
  171. target_end()