1# SPDX-License-Identifier: Apache-2.0 2 3if(CONFIG_FILE_SYSTEM_LIB_LINK) 4 zephyr_interface_library_named(FS) 5 6 if(CONFIG_FILE_SYSTEM) 7 zephyr_library() 8 zephyr_library_include_directories(${CMAKE_CURRENT_SOURCE_DIR}) 9 zephyr_library_sources(fs.c fs_impl.c) 10 zephyr_library_sources_ifdef(CONFIG_FAT_FILESYSTEM_ELM fat_fs.c) 11 zephyr_library_sources_ifdef(CONFIG_FILE_SYSTEM_LITTLEFS littlefs_fs.c) 12 zephyr_library_sources_ifdef(CONFIG_FILE_SYSTEM_SHELL shell.c) 13 14 zephyr_library_compile_definitions_ifdef(CONFIG_FILE_SYSTEM_LITTLEFS 15 LFS_CONFIG=zephyr_lfs_config.h 16 ) 17 endif() 18 19 add_subdirectory_ifdef(CONFIG_FILE_SYSTEM_EXT2 ext2) 20 add_subdirectory_ifdef(CONFIG_FUSE_CLIENT fuse_client) 21 add_subdirectory_ifdef(CONFIG_FILE_SYSTEM_VIRTIOFS virtiofs) 22 23 zephyr_library_link_libraries(FS) 24 25 target_link_libraries_ifdef(CONFIG_FAT_FILESYSTEM_ELM FS INTERFACE ELMFAT) 26 target_link_libraries_ifdef(CONFIG_FILE_SYSTEM_LITTLEFS FS INTERFACE LITTLEFS) 27 target_link_libraries_ifdef(CONFIG_FILE_SYSTEM_EXT2 FS INTERFACE EXT2) 28 target_link_libraries_ifdef(CONFIG_FUSE_CLIENT FS INTERFACE FUSE_CLIENT) 29 target_link_libraries_ifdef(CONFIG_FILE_SYSTEM_VIRTIOFS FS INTERFACE VIRTIOFS) 30endif() 31 32add_subdirectory_ifdef(CONFIG_FCB ./fcb) 33add_subdirectory_ifdef(CONFIG_NVS ./nvs) 34add_subdirectory_ifdef(CONFIG_ZMS ./zms) 35 36if(CONFIG_FUSE_FS_ACCESS) 37 zephyr_library_named(FS_FUSE) 38 find_package(PkgConfig REQUIRED) 39 pkg_search_module(FUSE REQUIRED fuse) 40 zephyr_include_directories(${FUSE_INCLUDE_DIRS}) 41 target_link_options(native_simulator INTERFACE "-l${FUSE_LIBRARIES}") 42 target_sources(native_simulator INTERFACE fuse_fs_access_bottom.c) 43 target_compile_options(native_simulator INTERFACE "-D_FILE_OFFSET_BITS=64") 44 zephyr_library_sources(fuse_fs_access.c) 45endif() 46