FindFATFS.cmake 2.6 KB

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