CMakeLists.txt 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. aux_source_directory(./port PORT_SRCS)
  26. aux_source_directory(${TOPROOT}/lua/src LUA_SRCS)
  27. #aux_source_directory(${TOPROOT}/luat/freertos FTOS_T_SRCS)
  28. aux_source_directory(${TOPROOT}/components/freertos RTOS_SRCS)
  29. aux_source_directory(${TOPROOT}/components/freertos/port RTOS_PORT_SRCS)
  30. aux_source_directory(${TOPROOT}/luat/packages/lua-cjson CJSON_SRCS)
  31. add_library(freertos10 ${PORT_SRCS} ${RTOS_SRCS} ${RTOS_PORT_SRCS} ${MM_SRCS} ${MM2_SRCS})
  32. add_library(lua ${LUA_SRCS})
  33. add_library(luatos_msys ${PORT_SRCS})
  34. add_library(cjson ${CJSON_SRCS})
  35. add_library(luat ${TOPROOT}/luat/modules/luat_main.c
  36. ${TOPROOT}/luat/modules/luat_luat_bin.c
  37. ${TOPROOT}/luat/modules/luat_lib_rtos.c
  38. ${TOPROOT}/luat/modules/luat_lib_timer.c
  39. ${TOPROOT}/luat/modules/luat_lib_log.c
  40. ${TOPROOT}/luat/modules/luat_lib_pack.c
  41. ${TOPROOT}/luat/modules/luat_lib_zbuff.c
  42. ${TOPROOT}/luat/modules/luat_lib_mqttcore.c
  43. ${TOPROOT}/luat/modules/luat_lib_libcoap.c
  44. ${TOPROOT}/luat/modules/luat_lib_crypto.c
  45. ${TOPROOT}/luat/modules/crc.c
  46. ${TOPROOT}/luat/modules/luat_vfs.c
  47. ${TOPROOT}/luat/modules/luat_luadb.c
  48. )
  49. IF (WIN32)
  50. #-----------------------
  51. # LuaFileSystem --> lfs
  52. aux_source_directory(./rock/LuaFileSystem ROCK_LFS_SRCS)
  53. add_library(rock_lfs ${ROCK_LFS_SRCS})
  54. #-----------------------
  55. #------------------------
  56. # librs232 -> rs232
  57. include_directories(./rock/librs232/include)
  58. aux_source_directory(./rock/librs232/src ROCK_LIB_RS232_SRCS)
  59. add_library(rock_librs232 ${ROCK_LIB_RS232_SRCS} ./rock/librs232/bindings/lua/luars232.c)
  60. #------------------------
  61. ENDIF ()
  62. #-----------------------
  63. # mbedtls
  64. include_directories(${TOPROOT}/components/mbedtls/include)
  65. add_subdirectory(${TOPROOT}/components/mbedtls mbedtls.out)
  66. #-----------------------
  67. IF (WIN32)
  68. # 指定生成目标
  69. add_executable(luatos src/main_win32.c)
  70. target_link_libraries(luat freertos10 winmm)
  71. target_link_libraries(luatos freertos10 lua luatos_msys luat winmm cjson rock_lfs rock_librs232 mbedtls)
  72. ELSE ()
  73. add_executable(luatos src/main_posix.c)
  74. target_link_libraries(luat freertos10 pthread)
  75. target_link_libraries(luatos freertos10 lua luatos_msys luat pthread cjson mbedtls m)
  76. ENDIF ()