CMakeLists.txt 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. # CMake 最低版本号要求
  2. cmake_minimum_required (VERSION 3.5)
  3. set(CMAKE_BUILD_TYPE "Debug")
  4. set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
  5. set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O2 -Wall")
  6. set(TOPROOT "../..")
  7. # 项目信息
  8. project (luatos)
  9. # 一定一定要先添加本地的头文件
  10. include_directories(./include)
  11. include_directories(${TOPROOT}/lua/include
  12. ${TOPROOT}/luat/include
  13. ${TOPROOT}/components/freertos/include
  14. )
  15. IF (WIN32)
  16. include_directories(${TOPROOT}/components/freertos/portable/MSVC-MingW)
  17. aux_source_directory(${TOPROOT}/components/freertos/portable/MSVC-MingW MM_SRCS)
  18. ELSE ()
  19. include_directories(${TOPROOT}/components/freertos/portable/ThirdParty/GCC/Posix)
  20. include_directories(${TOPROOT}/components/freertos/portable/ThirdParty/GCC/Posix/utils)
  21. aux_source_directory(${TOPROOT}/components/freertos/portable/ThirdParty/GCC/Posix MM_SRCS)
  22. aux_source_directory(${TOPROOT}/components/freertos/portable/ThirdParty/GCC/Posix/utils
  23. MM2_SRCS)
  24. ENDIF ()
  25. include_directories(${TOPROOT}/luat/packages/lfs)
  26. include_directories(${TOPROOT}/components/lcd)
  27. aux_source_directory(./port PORT_SRCS)
  28. aux_source_directory(${TOPROOT}/lua/src LUA_SRCS)
  29. #aux_source_directory(${TOPROOT}/luat/freertos FTOS_T_SRCS)
  30. aux_source_directory(${TOPROOT}/components/freertos RTOS_SRCS)
  31. aux_source_directory(${TOPROOT}/components/freertos/port RTOS_PORT_SRCS)
  32. aux_source_directory(${TOPROOT}/luat/packages/lua-cjson CJSON_SRCS)
  33. aux_source_directory(${TOPROOT}/components/lcd LCD_SRCS)
  34. add_library(freertos10 ${PORT_SRCS} ${RTOS_SRCS} ${RTOS_PORT_SRCS} ${MM_SRCS} ${MM2_SRCS})
  35. add_library(lua ${LUA_SRCS})
  36. add_library(luatos_msys ${PORT_SRCS})
  37. add_library(cjson ${CJSON_SRCS})
  38. add_library(luat ${TOPROOT}/luat/modules/luat_main.c
  39. ${TOPROOT}/luat/modules/luat_ota.c
  40. ${TOPROOT}/luat/modules/luat_luat_bin.c
  41. ${TOPROOT}/luat/modules/luat_lib_rtos.c
  42. ${TOPROOT}/luat/modules/luat_lib_timer.c
  43. ${TOPROOT}/luat/modules/luat_lib_log.c
  44. ${TOPROOT}/luat/modules/luat_lib_gpio.c
  45. ${TOPROOT}/luat/modules/luat_lib_spi.c
  46. ${TOPROOT}/luat/modules/luat_lib_pack.c
  47. ${TOPROOT}/luat/modules/luat_lib_zbuff.c
  48. ${TOPROOT}/luat/modules/luat_lib_mqttcore.c
  49. ${TOPROOT}/luat/modules/luat_lib_libcoap.c
  50. ${TOPROOT}/luat/modules/luat_lib_crypto.c
  51. ${TOPROOT}/luat/modules/luat_lib_sfd.c
  52. ${TOPROOT}/luat/modules/luat_sfd.c
  53. ${TOPROOT}/luat/modules/crc.c
  54. ${TOPROOT}/luat/vfs/luat_vfs.c
  55. ${TOPROOT}/luat/vfs/luat_fs_luadb.c
  56. ${TOPROOT}/luat/vfs/luat_fs_posix.c
  57. ${TOPROOT}/luat/vfs/luat_fs_lfs2.c
  58. ${TOPROOT}/luat/vfs/luat_luadb_inline.c
  59. ${TOPROOT}/luat/packages/lfs/lfs_sfd.c
  60. ${TOPROOT}/luat/packages/lfs/lfs_util.c
  61. ${TOPROOT}/luat/packages/lfs/lfs.c
  62. ${TOPROOT}/luat/packages/lfs/luat_lib_lfs2.c
  63. ${LCD_SRCS}
  64. )
  65. IF (WIN32)
  66. #-----------------------
  67. # LuaFileSystem --> lfs
  68. aux_source_directory(./rock/LuaFileSystem ROCK_LFS_SRCS)
  69. add_library(rock_lfs ${ROCK_LFS_SRCS})
  70. #-----------------------
  71. #------------------------
  72. # librs232 -> rs232
  73. include_directories(./rock/librs232/include)
  74. aux_source_directory(./rock/librs232/src ROCK_LIB_RS232_SRCS)
  75. add_library(rock_librs232 ${ROCK_LIB_RS232_SRCS} ./rock/librs232/bindings/lua/luars232.c)
  76. #------------------------
  77. ENDIF ()
  78. include_directories(${TOPROOT}/luat/packages/fatfs)
  79. add_library(fatfs ${TOPROOT}/luat/packages/fatfs/ff.c
  80. ${TOPROOT}/luat/packages/fatfs/ffsystem.c
  81. ${TOPROOT}/luat/packages/fatfs/ffunicode.c
  82. ${TOPROOT}/luat/packages/fatfs/diskio_impl.c
  83. ${TOPROOT}/luat/packages/fatfs/diskio_ramdisk.c
  84. ${TOPROOT}/luat/packages/fatfs/diskio_spitf.c
  85. ${TOPROOT}/luat/vfs/luat_fs_fatfs.c
  86. ${TOPROOT}/luat/packages/fatfs/luat_lib_fatfs.c)
  87. #-----------------------
  88. # mbedtls
  89. include_directories(${TOPROOT}/components/mbedtls/include)
  90. add_subdirectory(${TOPROOT}/components/mbedtls mbedtls.out)
  91. #-----------------------
  92. #-----------------------
  93. # lvgl
  94. include_directories(${TOPROOT}/components/lvgl)
  95. add_subdirectory(${TOPROOT}/components/lvgl lvgl.out)
  96. #-----------------------
  97. #-----------------------
  98. # lwip
  99. include_directories(${TOPROOT}/components/network/lwip)
  100. add_subdirectory(${TOPROOT}/components/network/lwip lwip.out)
  101. #-----------------------
  102. IF (WIN32)
  103. # 指定生成目标
  104. add_executable(luatos src/main_win32.c)
  105. target_link_libraries(luat freertos10 winmm fatfs lvgl lwip)
  106. target_link_libraries(luatos freertos10 lua luatos_msys luat winmm cjson
  107. rock_lfs rock_librs232 mbedtls fatfs lvgl lwip
  108. lwipcontribexamples lwipcontribapps lwipcontribaddons
  109. lwipallapps lwipcore lwipcontribportwindows lwipmbedtls)
  110. ELSE ()
  111. add_executable(luatos src/main_posix.c)
  112. target_link_libraries(luat freertos10 pthread fatfs lvgl)
  113. target_link_libraries(luatos freertos10 lua luatos_msys fatfs luat pthread cjson mbedtls lvgl m)
  114. ENDIF ()