nodemcu-firmware/components/embedded_lfs/CMakeLists.txt

35 lines
1.1 KiB
CMake

if (CONFIG_NODEMCU_EMBED_LFS)
# Handle hex size in a shell agnostic manner
math(EXPR lfs_size ${CONFIG_NODEMCU_EMBEDDED_LFS_SIZE})
# The luac.out gets written by tools/embed_lfs.sh, but we need a non-empty
# file for the first build pass
add_custom_command(
OUTPUT ${BUILD_DIR}/luac.out
COMMAND [ -s "${BUILD_DIR}/luac.out" ] || echo "" > "${BUILD_DIR}/luac.out"
VERBATIM
)
add_custom_target(luac_out DEPENDS ${BUILD_DIR}/luac.out)
# We use the automatic file name to symbol generation here, to create the
# expected symbol lua_flash_store_reserved
add_custom_command(
OUTPUT ${BUILD_DIR}/lua.flash.store.reserved
COMMAND truncate --size=${lfs_size} ${BUILD_DIR}/lua.flash.store.reserved && dd if=${BUILD_DIR}/luac.out of=${BUILD_DIR}/lua.flash.store.reserved conv=notrunc status=none
DEPENDS luac_out
VERBATIM
)
add_custom_target(reserved_lfs DEPENDS ${BUILD_DIR}/lua.flash.store.reserved)
idf_component_register(
EMBED_FILES ${BUILD_DIR}/lua.flash.store.reserved
LDFRAGMENTS "embedded_lfs.lf"
)
add_dependencies(${COMPONENT_LIB} reserved_lfs)
else()
idf_component_register()
endif()