cmake_minimum_required(VERSION 3.10) project(MiniFFS C) set(CMAKE_C_STANDARD 99) set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/external/cmake ${CMAKE_MODULE_PATH}) # Generate version from Git Tag include(GetGitRevisionDescription) git_describe(VERSION --tags --dirty=-dirty) #parse the version information into pieces. string(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" VERSION_MAJOR "${VERSION}") string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${VERSION}") string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_MICRO "${VERSION}") string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+-(.*)" "\\1" VERSION_SHA1 "${VERSION}") message("-- Building version ${VERSION}") add_compile_options(-DV_MAJOR=${VERSION_MAJOR}) add_compile_options(-DV_MINOR=${VERSION_MINOR}) add_compile_options(-DV_MICRO=${VERSION_MICRO}) add_compile_options(-DV_TEXT="${VERSION_SHA1}") set(VALID_BUILD_PLATFORM MEMORY FILE) set(BUILD_PLATFORM MEMORY CACHE STRING "Platform to build for") set_property(CACHE BUILD_PLATFORM PROPERTY STRINGS ${VALID_BUILD_PLATFORM}) option(BUILD_HOST_TOOLS "Build offline tools" ON) string(TOLOWER ${BUILD_PLATFORM} PLATFORM_FILE) add_library(miniffs) target_sources(miniffs PRIVATE platform/${PLATFORM_FILE}.c miniffs.c) target_include_directories(miniffs PUBLIC includes/) if (BUILD_HOST_TOOLS) # Offline tools use the file backend so we have to include the lib by hand. add_executable(mffs) target_sources(mffs PRIVATE platform/file.c miniffs.c mffs.c) target_include_directories(mffs PRIVATE includes/) endif()