M .gitmodules => .gitmodules +1 -1
@@ 51,7 51,7 @@
path = module-bsp/board/rt1051/bsp/usb
url = ../usb_stack.git
[submodule "module-vfs/thirdparty/fatfs"]
- path = module-vfs/thirdparty/fatfs
+ path = third-party/fatfs/src
url = ../fatfs.git
[submodule "host-tools/littlefs-fuse/lfsfuse"]
path = host-tools/littlefs-fuse/lfsfuse
M module-vfs/CMakeLists.txt => module-vfs/CMakeLists.txt +34 -48
@@ 1,42 1,7 @@
-project(module-vfs VERSION 1.0
- DESCRIPTION "VFS module library")
+add_library(module-vfs STATIC)
module_is_test_entity()
-set(FF_FAT_SOURCES_THIRDPARTY
- ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/fatfs/source/ff.c
- ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/fatfs/source/ffunicode.c
-)
-
-set(FF_FAT_SOURCES
- ${FF_FAT_SOURCES_THIRDPARTY}
- ${CMAKE_CURRENT_SOURCE_DIR}/drivers/src/thirdparty/fatfs/ffsystem.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/drivers/src/thirdparty/fatfs/ff_glue.cpp
-)
-set(FF_LFS_SOURCES
- ${CMAKE_CURRENT_SOURCE_DIR}/drivers/src/thirdparty/littlefs/lfs_glue.cpp
-)
-
-set(SOURCES
- ${FF_FAT_SOURCES}
- ${FF_LFS_SOURCES}
- src/purefs/filesystem_paths.cpp
- src/purefs/blkdev/disk_manager.cpp
- src/purefs/blkdev/disk.cpp
- src/purefs/blkdev/partition_parser.cpp
- src/purefs/blkdev/disk_handle.cpp
- src/purefs/fs/filesystem.cpp
- src/purefs/fs/filesystem_operations.cpp
- src/purefs/fs/filesystem_syscalls.cpp
- src/purefs/fs/filesystem_cwd.cpp
- src/purefs/vfs_subsystem.cpp
- src/purefs/fs/notifier.cpp
- src/purefs/fs/fsnotify.cpp
- drivers/src/purefs/fs/filesystem_vfat.cpp
- drivers/src/purefs/fs/filesystem_littlefs.cpp
-)
-
-
if(${PROJECT_TARGET} STREQUAL "TARGET_RT1051")
include(targets/Target_RT1051.cmake)
elseif(${PROJECT_TARGET} STREQUAL "TARGET_Linux")
@@ 45,20 10,40 @@ else()
message(FATAL_ERROR "Invalid target!")
endif()
-add_library(${PROJECT_NAME} STATIC ${SOURCES} ${BOARD_SOURCES})
+target_sources(module-vfs
+ PRIVATE
+ drivers/src/thirdparty/fatfs/ffsystem.cpp
+ drivers/src/thirdparty/fatfs/ff_glue.cpp
+ drivers/src/thirdparty/littlefs/lfs_glue.cpp
+ src/purefs/filesystem_paths.cpp
+ src/purefs/blkdev/disk_manager.cpp
+ src/purefs/blkdev/disk.cpp
+ src/purefs/blkdev/partition_parser.cpp
+ src/purefs/blkdev/disk_handle.cpp
+ src/purefs/fs/filesystem.cpp
+ src/purefs/fs/filesystem_operations.cpp
+ src/purefs/fs/filesystem_syscalls.cpp
+ src/purefs/fs/filesystem_cwd.cpp
+ src/purefs/vfs_subsystem.cpp
+ src/purefs/fs/notifier.cpp
+ src/purefs/fs/fsnotify.cpp
+ drivers/src/purefs/fs/filesystem_vfat.cpp
+ drivers/src/purefs/fs/filesystem_littlefs.cpp
+ ${BOARD_SOURCES}
+)
# Board specific compilation definitions,options,include directories and features
-target_compile_definitions(${PROJECT_NAME} PUBLIC ${PROJECT_CONFIG_DEFINITIONS})
-target_compile_definitions(${PROJECT_NAME} PUBLIC ${PROJECT_TARGET})
-target_compile_definitions(${PROJECT_NAME} PUBLIC ${TARGET_COMPILE_DEFINITIONS})
-target_include_directories(${PROJECT_NAME} PUBLIC ${BOARD_DIR_INCLUDES})
-target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_INCLUDES})
-target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_BINARY_DIR})
-target_compile_features(${PROJECT_NAME} PUBLIC ${TARGET_COMPILE_FEATURES})
-target_compile_options(${PROJECT_NAME} PUBLIC ${TARGET_COMPILE_OPTIONS})
-target_link_options(${PROJECT_NAME} PUBLIC ${TARGET_LINK_OPTIONS})
+target_compile_definitions(module-vfs PUBLIC ${PROJECT_CONFIG_DEFINITIONS})
+target_compile_definitions(module-vfs PUBLIC ${PROJECT_TARGET})
+target_compile_definitions(module-vfs PUBLIC ${TARGET_COMPILE_DEFINITIONS})
+target_include_directories(module-vfs PUBLIC ${BOARD_DIR_INCLUDES})
+target_include_directories(module-vfs PUBLIC ${PROJECT_INCLUDES})
+target_include_directories(module-vfs PUBLIC ${CMAKE_BINARY_DIR})
+target_compile_features(module-vfs PUBLIC ${TARGET_COMPILE_FEATURES})
+target_compile_options(module-vfs PUBLIC ${TARGET_COMPILE_OPTIONS})
+target_link_options(module-vfs PUBLIC ${TARGET_LINK_OPTIONS})
-target_include_directories(${PROJECT_NAME}
+target_include_directories(module-vfs
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include/user/
${CMAKE_CURRENT_SOURCE_DIR}/drivers/include
@@ 69,7 54,7 @@ target_include_directories(${PROJECT_NAME}
${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/fatfs/source
)
-target_link_libraries(${PROJECT_NAME}
+target_link_libraries(module-vfs
PUBLIC
${TARGET_LIBRARIES}
module-os
@@ 79,6 64,7 @@ target_link_libraries(${PROJECT_NAME}
PRIVATE
littlefs::littlefs
json::json
+ fatfs::fatfs
)
if (${ENABLE_TESTS})
M module-vfs/tests/CMakeLists.txt => module-vfs/tests/CMakeLists.txt +1 -1
@@ 103,6 103,6 @@ foreach(ASSET ${ASSETS_LIST})
string(REPLACE "/" "_" target_name ${ASSET})
add_custom_target(${target_name} DEPENDS ${ASSET} ${outfile})
- add_dependencies(${PROJECT_NAME} ${target_name})
+ add_dependencies(module-vfs ${target_name})
endforeach()
D module-vfs/thirdparty/fatfs => module-vfs/thirdparty/fatfs +0 -1
@@ 1,1 0,0 @@
-Subproject commit 4fc3b8531bbdbe924ab2a64982ffb08ce12fb49c
M third-party/CMakeLists.txt => third-party/CMakeLists.txt +1 -0
@@ 17,3 17,4 @@ add_subdirectory(utz)
if (${PROJECT_TARGET} STREQUAL "TARGET_RT1051")
add_subdirectory(CrashDebug)
endif()
+add_subdirectory(fatfs)
A third-party/fatfs/CMakeLists.txt => third-party/fatfs/CMakeLists.txt +11 -0
@@ 0,0 1,11 @@
+add_library(fatfs INTERFACE)
+add_library(fatfs::fatfs ALIAS fatfs)
+target_sources(fatfs
+ INTERFACE
+ src/source/ff.c
+ src/source/ffunicode.c
+)
+target_include_directories(fatfs
+ INTERFACE
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/source>
+)
A third-party/fatfs/src => third-party/fatfs/src +1 -0
@@ 0,0 1,1 @@
+Subproject commit 4fc3b8531bbdbe924ab2a64982ffb08ce12fb49c