src.dualinventive.com/dinet/libdi-php/common/cmake/modules_fw/FindFATFS.cmake

104 lines
2.6 KiB
CMake

IF(NOT STM32Cube_DIR)
SET(STM32Cube_DIR "/opt/STM32Cube_FW_F1_V1.2.0")
MESSAGE(STATUS "No STM32Cube_DIR specified, using default: " ${STM32Cube_DIR})
ENDIF()
SET(FATFS_COMMON_SOURCES
diskio.c
ff.c
ff_gen_drv.c
)
IF(NOT STORAGE_DRIVER)
MESSAGE(STATUS "No storage driver specified")
else()
if("SDCARD" IN_LIST STORAGE_DRIVER)
LIST(APPEND FATFS_DRIVER_SOURCES sd_diskio.c)
endif()
if("SDRAM" IN_LIST STORAGE_DRIVER)
LIST(APPEND FATFS_DRIVER_SOURCES sdram_diskio.c)
endif()
if("SRAM" IN_LIST STORAGE_DRIVER)
LIST(APPEND FATFS_DRIVER_SOURCES sram_diskio.c)
endif()
if("USBH" IN_LIST STORAGE_DRIVER)
LIST(APPEND FATFS_DRIVER_SOURCES usbh_diskio.c)
endif()
endif()
MESSAGE(STATUS "debug1 : " ${STORAGE_DRIVER})
MESSAGE(STATUS "debug2 : " ${FATFS_DRIVER_SOURCES})
SET(FATFS_OPTION_SOURCES syscall.c unicode.c)
#if(CODE_PAGE EQUAL CP932)
#list(APPEND FATFS_OPTION_SOURCES cc932.c)
#( cc936.c
# cc949.c
# cc950.c
# ccsbcs.c
# unicode.c
#)
SET(FATFS_COMMON_HEADERS
diskio.h
ff.h
ff_gen_drv.h
ffconf_template.h
integer.h
)
SET(FATFS_DRIVER_HEADERS
sd_diskio.h
sdram_diskio.h
sram_diskio.h
usbh_diskio.h
)
FIND_PATH(FATFS_COMMON_INCLUDE_DIR ${FATFS_COMMON_HEADERS}
HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FatFs/src
CMAKE_FIND_ROOT_PATH_BOTH
)
FIND_PATH(FATFS_DRIVER_INCLUDE_DIR ${FATFS_DRIVER_HEADERS}
HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FatFs/src/drivers/
CMAKE_FIND_ROOT_PATH_BOTH
)
SET(FATFS_INCLUDE_DIRS
${FATFS_COMMON_INCLUDE_DIR}
${FATFS_DRIVER_INCLUDE_DIR}
)
FOREACH(SRC ${FATFS_COMMON_SOURCES})
SET(SRC_FILE SRC_FILE-NOTFOUND)
FIND_FILE(SRC_FILE ${SRC}
HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FatFs/src/
CMAKE_FIND_ROOT_PATH_BOTH
)
LIST(APPEND FATFS_SOURCES ${SRC_FILE})
ENDFOREACH()
FOREACH(SRC ${FATFS_DRIVER_SOURCES})
SET(SRC_FILE SRC_FILE-NOTFOUND)
FIND_FILE(SRC_FILE ${SRC}
HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FatFs/src/drivers/
CMAKE_FIND_ROOT_PATH_BOTH
)
LIST(APPEND FATFS_SOURCES ${SRC_FILE})
ENDFOREACH()
FOREACH(SRC ${FATFS_OPTION_SOURCES})
SET(SRC_FILE SRC_FILE-NOTFOUND)
FIND_FILE(SRC_FILE ${SRC}
HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FatFs/src/option/
CMAKE_FIND_ROOT_PATH_BOTH
)
LIST(APPEND FATFS_SOURCES ${SRC_FILE})
ENDFOREACH()
message(STATUS "fatfs include " ${FATFS_INCLUDE_DIRS})
message(STATUS "fatfs sources " ${FATFS_SOURCES})
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(FATFS DEFAULT_MSG FATFS_INCLUDE_DIRS FATFS_SOURCES)