cmake_minimum_required(VERSION 3.7.1) project(umcumgr C) set(CMAKE_C_STANDARD 99) OPTION(DO_UPLOAD_SHA "Send data SHA with update packets" OFF) OPTION(SANITIZE "ASAN" OFF) OPTION(STATIC "Build static binary" OFF) add_executable(umcumgr src/base64.c src/image.c src/main.c src/crc16_sw.c src/termios_util.c) if(SANITIZE) message(STATUS "SANITIZE Enabled") set(STATIC OFF) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fsanitize=undefined") endif(SANITIZE) if(STATIC) SET(CMAKE_EXE_LINKER_FLAGS "-static") endif(STATIC) if (DO_UPLOAD_SHA) message(STATUS "Enabled data SHA on update packets") add_definitions(-DDO_UPLOAD_SHA) target_sources(umcumgr PRIVATE src/sha256.c) endif () target_include_directories(umcumgr PRIVATE tinycbor/src) target_link_libraries(umcumgr ${CMAKE_SOURCE_DIR}/tinycbor/lib/libtinycbor.a)