Newer
Older
Tardis / CMakeLists.txt
@Jookia Jookia on 22 Mar 2023 1 KB BSP import
# SPDX-License-Identifier: MIT
# Copyright (c) 2023 John Watts and the LuminaSensum contributors

cmake_minimum_required(VERSION 3.25)

# 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)

# Globally enable some compiler sanity
add_compile_options(-fwrapv -fno-strict-aliasing -fsigned-char)

# Create BSP project
project(STBSP)
file(GLOB BSP_FILES "${PROJECT_SOURCE_DIR}/BSP/*.c")
add_library(STBSP STATIC ${BSP_FILES})
target_link_libraries(STBSP PRIVATE mbed-os)
target_include_directories(STBSP PUBLIC "${PROJECT_SOURCE_DIR}/BSP")

# 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-os mbed-storage-qspif mbed-usb-msd mbed-storage-littlefs-v2 STBSP)
target_compile_options(Tardis PRIVATE -Wall -Wextra -Wpedantic -Werror)
mbed_set_post_build(Tardis)

mbed_finalize_build()