CMakeLists.txt 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. # CMake 最低版本号要求
  2. cmake_minimum_required (VERSION 3.5)
  3. #set(CMAKE_BUILD_TYPE "Debug")
  4. set(CMAKE_BUILD_TYPE "Release")
  5. set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
  6. set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O2 -Wall")
  7. set(TOPROOT "../..")
  8. # 项目信息
  9. project (luatos)
  10. # 一定一定要先添加本地的头文件
  11. include_directories(./include)
  12. include_directories(${TOPROOT}/lua/include
  13. ${TOPROOT}/luat/include
  14. ${TOPROOT}/components/lcd
  15. ${TOPROOT}/luat/packages/u8g2
  16. ${TOPROOT}/luat/packages/qrcode
  17. )
  18. aux_source_directory(./port PORT_SRCS)
  19. aux_source_directory(${TOPROOT}/lua/src LUA_SRCS)
  20. aux_source_directory(${TOPROOT}/luat/packages/lua-cjson CJSON_SRCS)
  21. aux_source_directory(${TOPROOT}/components/lcd LCD_SRCS)
  22. aux_source_directory(${TOPROOT}/luat/packages/u8g2 U8G2_SRCS)
  23. aux_source_directory(${TOPROOT}/luat/packages/qrcode QRCODE_SRCS)
  24. add_library(lua ${LUA_SRCS})
  25. add_library(luatos_port ${PORT_SRCS})
  26. add_library(cjson ${CJSON_SRCS})
  27. add_library(luat ${TOPROOT}/luat/modules/luat_main.c
  28. ${TOPROOT}/luat/modules/luat_base.c
  29. ${TOPROOT}/luat/modules/luat_sysp.c
  30. ${TOPROOT}/luat/modules/luat_ota.c
  31. ${TOPROOT}/luat/modules/luat_luat_bin.c
  32. ${TOPROOT}/luat/modules/luat_lib_rtos.c
  33. ${TOPROOT}/luat/modules/luat_lib_timer.c
  34. ${TOPROOT}/luat/modules/luat_lib_log.c
  35. ${TOPROOT}/luat/modules/luat_lib_pack.c
  36. ${TOPROOT}/luat/modules/luat_lib_zbuff.c
  37. ${TOPROOT}/luat/modules/luat_lib_mqttcore.c
  38. ${TOPROOT}/luat/modules/luat_lib_libcoap.c
  39. ${TOPROOT}/luat/modules/luat_lib_crypto.c
  40. ${TOPROOT}/luat/modules/luat_lib_gpio.c
  41. ${TOPROOT}/luat/modules/luat_lib_i2c.c
  42. ${TOPROOT}/luat/modules/luat_lib_spi.c
  43. ${TOPROOT}/luat/modules/luat_lib_adc.c
  44. ${TOPROOT}/luat/modules/crc.c
  45. ${TOPROOT}/luat/vfs/luat_vfs.c
  46. ${TOPROOT}/luat/vfs/luat_fs_luadb.c
  47. ${TOPROOT}/luat/vfs/luat_fs_posix.c
  48. ${TOPROOT}/luat/vfs/luat_luadb_inline.c
  49. ${TOPROOT}/luat/vfs/luat_inline_sys.c
  50. ${TOPROOT}/luat/vfs/luat_fs_onefile.c
  51. ${LCD_SRCS}
  52. ${U8G2_SRCS}
  53. ${QRCODE_SRCS}
  54. )
  55. #-----------------------
  56. # mbedtls
  57. include_directories(${TOPROOT}/components/mbedtls/include)
  58. add_subdirectory(${TOPROOT}/components/mbedtls mbedtls.out)
  59. #-----------------------
  60. #-----------------------
  61. # lvgl
  62. include_directories(${TOPROOT}/components/lvgl)
  63. add_subdirectory(${TOPROOT}/components/lvgl lvgl.out)
  64. if( ${CMAKE_SYSTEM_NAME} MATCHES "Emscripten")
  65. set(USE_FLAGS "-s USE_SDL=2 -sEXPORTED_RUNTIME_METHODS=ccall,cwrap")
  66. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${USE_FLAGS}")
  67. set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${USE_FLAGS}")
  68. set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${USE_FLAGS}")
  69. #set(CMAKE_EXECUTABLE_SUFFIX .html)
  70. else()
  71. find_package(SDL2 REQUIRED)
  72. find_package(Freetype REQUIRED)
  73. endif()
  74. # 指定生成目标
  75. add_executable(luatos src/main_sysp.c)
  76. #add_library(luatos_wasm src/main_sysp.c)
  77. #target_link_libraries(luat luatos_port lua lvgl SDL2 m)
  78. #target_link_libraries(luatos_port luat lua lvgl SDL2 m)
  79. target_link_libraries(luatos luat lua luatos_port cjson lvgl m mbedtls)
  80. #target_link_libraries(luatos_wasm luat lua luatos_port cjson m)
  81. #target_link_libraries(luatos luat lua luatos_port cjson mbedtls lvgl SDL2 m)
  82. #target_link_libraries(luatos_wasm luat lua luatos_port cjson mbedtls lvgl SDL2 m)