1234567891011121314151617181920212223242526272829303132333435363738394041 |
- 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.
- message("-- Building version ${VERSION}")
- ADD_COMPILE_DEFINITIONS(VERSION="${VERSION}")
- 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 PRIVATE includes/)
- target_compile_definitions(miniffs PRIVATE BUILD_PLATFORM_${BUILD_PLATFORM})
- if (BUILD_HOST_TOOLS)
- set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
- add_subdirectory(external/cJSON)
- # 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 miniffs_tools.c mffs.c)
- target_link_libraries(mffs ${CJSON_LIB})
- target_include_directories(mffs PRIVATE includes/ external/)
- target_compile_definitions(mffs PRIVATE BUILD_PLATFORM_FILE)
- target_compile_definitions(mffs PRIVATE BUILD_HOST_TOOLS)
- endif()
|