CMakeLists.txt 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. cmake_minimum_required(VERSION 3.12)
  2. # initialize the SDK based on PICO_SDK_PATH
  3. # note: this must happen before project()
  4. include(pico_sdk_import.cmake)
  5. include(${PICO_SDK_PATH}/pico_sdk_init.cmake)
  6. project(pico-luatos)
  7. # initialize the Pico SDK
  8. pico_sdk_init()
  9. set(LUATOS_ROOT ../../)
  10. set(FreeRTOS ../../components/freertos)
  11. add_library(FreeRTOS STATIC ${FreeRTOS}/croutine.c
  12. ${FreeRTOS}/event_groups.c
  13. ${FreeRTOS}/list.c
  14. ${FreeRTOS}/queue.c
  15. ${FreeRTOS}/stream_buffer.c
  16. ${FreeRTOS}/tasks.c
  17. ${FreeRTOS}/timers.c
  18. ${FreeRTOS}/portable/GCC/ARM_CM0/port.c
  19. ${FreeRTOS}/heap_4.c
  20. src/FreeRTOS_Support_Files/IdleMemory.c)
  21. target_include_directories(FreeRTOS PUBLIC include/ ${FreeRTOS}/portable/GCC/ARM_CM0)
  22. include_directories(port)
  23. include_directories(${LUATOS_ROOT}/luat/include)
  24. include_directories(${LUATOS_ROOT}/lua/include)
  25. include_directories(${LUATOS_ROOT}/luat/packages/lfs)
  26. aux_source_directory(src DIR_SRCS)
  27. aux_source_directory(port PORT_SRCS)
  28. aux_source_directory(${LUATOS_ROOT}/lua/src LUA_SRCS)
  29. aux_source_directory(${LUATOS_ROOT}/luat/packages/lua-cjson CJSON_SRCS)
  30. aux_source_directory(${LUATOS_ROOT}/luat/packages/lfs LFS_SRCS)
  31. aux_source_directory(${LUATOS_ROOT}/luat/modules MODULES_SRCS)
  32. add_library(port ${PORT_SRCS})
  33. add_library(lua ${LUA_SRCS})
  34. add_library(cjson ${CJSON_SRCS})
  35. add_library(lfs ${LFS_SRCS})
  36. add_library(luat ${MODULES_SRCS}
  37. ${LUATOS_ROOT}/luat/packages/lfs/lfs_sfd.c
  38. ${LUATOS_ROOT}/luat/packages/lfs/lfs_util.c
  39. ${LUATOS_ROOT}/luat/packages/lfs/lfs.c
  40. ${LUATOS_ROOT}/luat/packages/lfs/luat_lib_lfs2.c
  41. )
  42. add_executable(pico-luatos ${DIR_SRCS})
  43. # Add pico_stdlib library which aggregates commonly used features
  44. target_link_libraries(pico-luatos pico_stdlib)
  45. # create map/bin/hex/uf2 file in addition to ELF.
  46. pico_add_extra_outputs(pico-luatos)
  47. target_link_libraries(port pico_stdlib hardware_pio hardware_flash FreeRTOS lfs lua luat)
  48. target_link_libraries(luat lua port cjson FreeRTOS)
  49. target_link_libraries(pico-luatos FreeRTOS luat)
  50. add_custom_command(TARGET pico-luatos
  51. POST_BUILD
  52. COMMAND arm-none-eabi-size pico-luatos.elf
  53. )
  54. # rest of your project