FindFATFS.cmake 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. IF(NOT STM32Cube_DIR)
  2. SET(STM32Cube_DIR "/opt/STM32Cube_FW_F1_V1.2.0")
  3. MESSAGE(STATUS "No STM32Cube_DIR specified, using default: " ${STM32Cube_DIR})
  4. ENDIF()
  5. SET(FATFS_COMMON_SOURCES
  6. diskio.c
  7. ff.c
  8. ff_gen_drv.c
  9. )
  10. if(STORAGE_DRIVER EQUAL SDCARD)
  11. SET(FATFS_DIRVER_SOURCES sd_diskio.c)
  12. elseif(STORAGE_DRIVER EQUAL SDRAM)
  13. SET(FATFS_DIRVER_SOURCES sdram_diskio.c)
  14. elseif(STORAGE_DRIVER EQUAL SRAM)
  15. SET(FATFS_DIRVER_SOURCES sram_diskio.c)
  16. elseif(STORAGE_DRIVER EQUAL USB)
  17. SET(FATFS_DIRVER_SOURCES usbh_diskio.c)
  18. endif()
  19. SET(FATFS_OPTION_SOURCES syscall.c unicode.c)
  20. #if(CODE_PAGE EQUAL CP932)
  21. #list(APPEND FATFS_OPTION_SOURCES cc932.c)
  22. #( cc936.c
  23. # cc949.c
  24. # cc950.c
  25. # ccsbcs.c
  26. # unicode.c
  27. #)
  28. SET(FATFS_COMMON_HEADERS
  29. diskio.h
  30. ff.h
  31. ff_gen_drv.h
  32. ffconf_template.h
  33. integer.h
  34. )
  35. SET(FATFS_DRIVER_HEADERS
  36. sd_diskio.h
  37. sdram_diskio.h
  38. sram_diskio.h
  39. usbh_diskio.h
  40. )
  41. FIND_PATH(FATFS_COMMON_INCLUDE_DIR ${FATFS_COMMON_HEADERS}
  42. HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FatFs/src
  43. CMAKE_FIND_ROOT_PATH_BOTH
  44. )
  45. FIND_PATH(FATFS_DRIVER_INCLUDE_DIR ${FATFS_DRIVER_HEADERS}
  46. HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FatFs/src/drivers/
  47. CMAKE_FIND_ROOT_PATH_BOTH
  48. )
  49. SET(FATFS_INCLUDE_DIRS
  50. ${FATFS_COMMON_INCLUDE_DIR}
  51. ${FATFS_DRIVER_INCLUDE_DIR}
  52. )
  53. FOREACH(SRC ${FATFS_COMMON_SOURCES})
  54. SET(SRC_FILE SRC_FILE-NOTFOUND)
  55. FIND_FILE(SRC_FILE ${SRC}
  56. HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FatFs/src/
  57. CMAKE_FIND_ROOT_PATH_BOTH
  58. )
  59. LIST(APPEND FATFS_SOURCES ${SRC_FILE})
  60. ENDFOREACH()
  61. FOREACH(SRC ${FATFS_DIRVER_SOURCES})
  62. SET(SRC_FILE SRC_FILE-NOTFOUND)
  63. FIND_FILE(SRC_FILE ${SRC}
  64. HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FatFs/src/drivers/
  65. CMAKE_FIND_ROOT_PATH_BOTH
  66. )
  67. LIST(APPEND FATFS_SOURCES ${SRC_FILE})
  68. ENDFOREACH()
  69. FOREACH(SRC ${FATFS_OPTION_SOURCES})
  70. SET(SRC_FILE SRC_FILE-NOTFOUND)
  71. FIND_FILE(SRC_FILE ${SRC}
  72. HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FatFs/src/option/
  73. CMAKE_FIND_ROOT_PATH_BOTH
  74. )
  75. LIST(APPEND FATFS_SOURCES ${SRC_FILE})
  76. ENDFOREACH()
  77. #message(STATUS "fatfs include " ${FATFS_INCLUDE_DIRS})
  78. #message(STATUS "fatfs sources " ${FATFS_SOURCES})
  79. INCLUDE(FindPackageHandleStandardArgs)
  80. FIND_PACKAGE_HANDLE_STANDARD_ARGS(FATFS DEFAULT_MSG FATFS_INCLUDE_DIRS FATFS_SOURCES)