# SPDX-License-Identifier: MIT # Copyright (c) 2024 John Watts and the LuminaSensum contributors cmake_minimum_required(VERSION 3.25) # Enable tracing if wanted, on by default option(ENABLE_TRACING "Enable trace logging for debugging" ON) if(ENABLE_TRACING) add_compile_options(-DMBED_CONF_MBED_TRACE_ENABLE=1) add_compile_options(-DMBED_TRACE_MAX_LEVEL=TRACE_LEVEL_DEBUG) endif() # Globally enable some compiler sanity add_compile_options(-fwrapv -fno-strict-aliasing -fsigned-char) # Initialize Mbed OS build system set(MBED_TARGET "DISCO_F769NI") set(MBED_APP_JSON_PATH mbed_app.json) include(mbed-os/tools/cmake/app.cmake) add_subdirectory(mbed-os) # Load TardisLang set(BUILD_TARDISLANG_APP OFF CACHE INTERNAL "") add_subdirectory(lang) # Create SNTP project project(sntp) file(GLOB SNTP_FILES "${PROJECT_SOURCE_DIR}/third_party/sntp/*.cpp") add_library(sntp STATIC ${SNTP_FILES}) target_link_libraries(sntp PRIVATE mbed-netsocket) target_include_directories(sntp PUBLIC "${PROJECT_SOURCE_DIR}/third_party/sntp/") # Create Tardis project project(Tardis) file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/src/*.cpp") add_executable(Tardis ${SRC_FILES}) target_include_directories(Tardis PRIVATE "${PROJECT_SOURCE_DIR}/include") target_link_libraries(Tardis PRIVATE mbed-netsocket mbed-os mbed-storage-qspif mbed-usb-msd mbed-storage-littlefs-v2 sntp TardisLang) target_compile_options(Tardis PRIVATE -Wall -Wextra -Wpedantic -Werror) mbed_set_post_build(Tardis) mbed_finalize_build()