CMakeLists.txt 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. cmake_minimum_required(VERSION 3.10)
  2. project(MiniFFS C)
  3. set(CMAKE_C_STANDARD 99)
  4. set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/external/cmake ${CMAKE_MODULE_PATH})
  5. # Generate version from Git Tag
  6. include(GetGitRevisionDescription)
  7. git_describe(VERSION --tags --dirty=-dirty)
  8. #parse the version information into pieces.
  9. string(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" VERSION_MAJOR "${VERSION}")
  10. string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${VERSION}")
  11. string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_MICRO "${VERSION}")
  12. string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+-(.*)" "\\1" VERSION_SHA1 "${VERSION}")
  13. message("-- Building version ${VERSION}")
  14. add_compile_options(-DV_MAJOR=${VERSION_MAJOR})
  15. add_compile_options(-DV_MINOR=${VERSION_MINOR})
  16. add_compile_options(-DV_MICRO=${VERSION_MICRO})
  17. add_compile_options(-DV_TEXT="${VERSION_SHA1}")
  18. set(VALID_BUILD_PLATFORM MEMORY FILE)
  19. set(BUILD_PLATFORM MEMORY CACHE STRING "Platform to build for")
  20. set_property(CACHE BUILD_PLATFORM PROPERTY STRINGS ${VALID_BUILD_PLATFORM})
  21. option(BUILD_HOST_TOOLS "Build offline tools" ON)
  22. string(TOLOWER ${BUILD_PLATFORM} PLATFORM_FILE)
  23. add_library(miniffs)
  24. target_sources(miniffs PRIVATE platform/${PLATFORM_FILE}.c miniffs.c)
  25. target_include_directories(miniffs PUBLIC includes/)
  26. if (BUILD_HOST_TOOLS)
  27. # Offline tools use the file backend so we have to include the lib by hand.
  28. add_executable(mffs)
  29. target_sources(mffs PRIVATE platform/file.c miniffs.c mffs.c)
  30. target_include_directories(mffs PRIVATE includes/)
  31. endif()