FindFATFS.cmake 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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. CMAKE_POLICY(SET CMP0057 NEW)
  11. IF(NOT STORAGE_DRIVER)
  12. MESSAGE(STATUS "No storage driver specified, please SET STORAGE_DRIVER to {SDCARD, SDRAM, SRAM, USBH}")
  13. else()
  14. if("SDCARD" IN_LIST STORAGE_DRIVER)
  15. LIST(APPEND FATFS_DRIVER_SOURCES sd_diskio.c)
  16. endif()
  17. if("SDRAM" IN_LIST STORAGE_DRIVER)
  18. LIST(APPEND FATFS_DRIVER_SOURCES sdram_diskio.c)
  19. endif()
  20. if("SRAM" IN_LIST STORAGE_DRIVER)
  21. LIST(APPEND FATFS_DRIVER_SOURCES sram_diskio.c)
  22. endif()
  23. if("USBH" IN_LIST STORAGE_DRIVER)
  24. LIST(APPEND FATFS_DRIVER_SOURCES usbh_diskio.c)
  25. endif()
  26. endif()
  27. MESSAGE(STATUS "debug1 : " ${STORAGE_DRIVER})
  28. MESSAGE(STATUS "debug2 : " ${FATFS_DRIVER_SOURCES})
  29. SET(FATFS_OPTION_SOURCES syscall.c unicode.c)
  30. #if(CODE_PAGE EQUAL CP932)
  31. #list(APPEND FATFS_OPTION_SOURCES cc932.c)
  32. #( cc936.c
  33. # cc949.c
  34. # cc950.c
  35. # ccsbcs.c
  36. # unicode.c
  37. #)
  38. SET(FATFS_COMMON_HEADERS
  39. diskio.h
  40. ff.h
  41. ff_gen_drv.h
  42. ffconf_template.h
  43. integer.h
  44. )
  45. SET(FATFS_DRIVER_HEADERS
  46. sd_diskio.h
  47. sdram_diskio.h
  48. sram_diskio.h
  49. usbh_diskio.h
  50. )
  51. FIND_PATH(FATFS_COMMON_INCLUDE_DIR ${FATFS_COMMON_HEADERS}
  52. HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FatFs/src
  53. CMAKE_FIND_ROOT_PATH_BOTH
  54. )
  55. FIND_PATH(FATFS_DRIVER_INCLUDE_DIR ${FATFS_DRIVER_HEADERS}
  56. HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FatFs/src/drivers/
  57. CMAKE_FIND_ROOT_PATH_BOTH
  58. )
  59. SET(FATFS_INCLUDE_DIRS
  60. ${FATFS_COMMON_INCLUDE_DIR}
  61. ${FATFS_DRIVER_INCLUDE_DIR}
  62. )
  63. FOREACH(SRC ${FATFS_COMMON_SOURCES})
  64. SET(SRC_FILE SRC_FILE-NOTFOUND)
  65. FIND_FILE(SRC_FILE ${SRC}
  66. HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FatFs/src/
  67. CMAKE_FIND_ROOT_PATH_BOTH
  68. )
  69. LIST(APPEND FATFS_SOURCES ${SRC_FILE})
  70. ENDFOREACH()
  71. FOREACH(SRC ${FATFS_DRIVER_SOURCES})
  72. SET(SRC_FILE SRC_FILE-NOTFOUND)
  73. FIND_FILE(SRC_FILE ${SRC}
  74. HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FatFs/src/drivers/
  75. CMAKE_FIND_ROOT_PATH_BOTH
  76. )
  77. LIST(APPEND FATFS_SOURCES ${SRC_FILE})
  78. ENDFOREACH()
  79. FOREACH(SRC ${FATFS_OPTION_SOURCES})
  80. SET(SRC_FILE SRC_FILE-NOTFOUND)
  81. FIND_FILE(SRC_FILE ${SRC}
  82. HINTS ${STM32Cube_DIR}/Middlewares/Third_Party/FatFs/src/option/
  83. CMAKE_FIND_ROOT_PATH_BOTH
  84. )
  85. LIST(APPEND FATFS_SOURCES ${SRC_FILE})
  86. ENDFOREACH()
  87. message(STATUS "fatfs include " ${FATFS_INCLUDE_DIRS})
  88. message(STATUS "fatfs sources " ${FATFS_SOURCES})
  89. INCLUDE(FindPackageHandleStandardArgs)
  90. FIND_PACKAGE_HANDLE_STANDARD_ARGS(FATFS DEFAULT_MSG FATFS_INCLUDE_DIRS FATFS_SOURCES)