~aleteoryx/muditaos

bfd50c58862da3c9db7eeb48715f5a218df96abc — Lucjan Bryndza 5 years ago 4e546ac
[EGD-4762] Add littlefs library (#1152)

Create library with littlefs filesystem
M .gitmodules => .gitmodules +3 -0
@@ 65,3 65,6 @@
[submodule "module-vfs/thirdparty/fatfs"]
	path = module-vfs/thirdparty/fatfs
	url = ../fatfs.git
[submodule "module-vfs/thirdparty/littlefs"]
	path = module-vfs/thirdparty/littlefs
	url = https://github.com/littlefs-project/littlefs.git

M module-vfs/CMakeLists.txt => module-vfs/CMakeLists.txt +2 -1
@@ 1,5 1,6 @@
cmake_minimum_required(VERSION 3.12)
include(thirdparty)
include(thirdparty/littlefs.cmake)

project(module-vfs VERSION 1.0
        DESCRIPTION "VFS module library")


@@ 119,7 120,7 @@ target_include_directories(${PROJECT_NAME}
        ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/fatfs/source
)

target_link_libraries(${PROJECT_NAME} ${TARGET_LIBRARIES} module-bsp module-utils)
target_link_libraries(${PROJECT_NAME} ${TARGET_LIBRARIES} module-bsp module-utils littlefs)

if(${PROJECT_TARGET} STREQUAL "TARGET_Linux")
    target_link_libraries(${PROJECT_NAME} -lstdc++fs)

A module-vfs/thirdparty/littlefs => module-vfs/thirdparty/littlefs +1 -0
@@ 0,0 1,1 @@
Subproject commit 4c9146ea539f72749d6cc3ea076372a81b12cb11

A module-vfs/thirdparty/littlefs.cmake => module-vfs/thirdparty/littlefs.cmake +30 -0
@@ 0,0 1,30 @@
include(thirdparty)

set(LIBLITTLEFS_TARGET littlefs)


set(LIBLITTLEFS_SRCDIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/littlefs)

set(LIBLITTLEFS_SOURCES
        ${LIBLITTLEFS_SRCDIR}/lfs.c
        ${LIBLITTLEFS_SRCDIR}/lfs_util.c
        ${LIBLITTLEFS_SRCDIR}/bd/lfs_filebd.c
        ${LIBLITTLEFS_SRCDIR}/bd/lfs_rambd.c
        ${LIBLITTLEFS_SRCDIR}/bd/lfs_testbd.c
)

set( LIBLITTLEFS_PUBLIC_INCLUDES  ${LIBLITTLEFS_SRCDIR})
set( LIBLITTLEFS_PRIVATE_INCLUDES ${LIBLITTLEFS_SRCDIR}/bd)


add_library( ${LIBLITTLEFS_TARGET} STATIC ${LIBLITTLEFS_SOURCES} )
third_party_target_setup( ${LIBLITTLEFS_TARGET} )

target_include_directories( ${LIBLITTLEFS_TARGET}
        PUBLIC
        ${LIBLITTLEFS_PUBLIC_INCLUDES}
        PRIVATE
        ${LIBLITTLEFS_PRIVATE_INCLUDES}
)

third_party_source_optimization( ${LIBLITTLEFS_SOURCES} )