mirror of
https://github.com/arabine/open-story-teller.git
synced 2025-12-06 17:09:06 +01:00
133 lines
5.1 KiB
CMake
133 lines
5.1 KiB
CMake
# ==================================================================================================
|
|
# OPEN STORY TELLER MAIN CMAKE BUILD FILE
|
|
# (see README.md for invokable options)
|
|
# Default target: TBD ?
|
|
# ==================================================================================================
|
|
|
|
cmake_minimum_required(VERSION 3.12)
|
|
|
|
set(CMAKE_VERBOSE_MAKEFILE ON)
|
|
set(CMAKE_COLOR_MAKEFILE ON)
|
|
set(PROJECT_NAME open-story-teller)
|
|
|
|
# ==================================================================================================
|
|
# BUILD TYPE
|
|
# ==================================================================================================
|
|
if(NOT CMAKE_BUILD_TYPE)
|
|
set(CMAKE_BUILD_TYPE Release)
|
|
endif(NOT CMAKE_BUILD_TYPE)
|
|
|
|
# ==================================================================================================
|
|
# OST COMMON FILES
|
|
# ==================================================================================================
|
|
set(OST_SRCS
|
|
src/main.c
|
|
src/sdcard.c
|
|
src/debug.c
|
|
src/picture.c
|
|
src/filesystem.c
|
|
src/ost_tasker.c
|
|
src/ff/ff.c
|
|
src/ff/ffsystem.c
|
|
src/ff/ff_stubs.c
|
|
)
|
|
include_directories(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
${CMAKE_CURRENT_SOURCE_DIR}/library
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/ff
|
|
)
|
|
|
|
# ==================================================================================================
|
|
# BUNDLE LONGAN NANO
|
|
# ==================================================================================================
|
|
if(${OST_BUNDLE} STREQUAL "LONGAN_NANO")
|
|
message("============= TARGET: LONGAN NANO =============")
|
|
|
|
add_definitions(-DOST_USE_FF_LIBRARY)
|
|
|
|
# ------ CPU
|
|
SET(CPU_TARGET_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cpu/gigadevice-gd32vf103)
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/cpu/gigadevice-gd32vf103/include.cmake)
|
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/cpu/gigadevice-gd32vf103)
|
|
|
|
# ------ PLATFORM
|
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/platform/sipeed-longan-nano)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/platform/sipeed-longan-nano)
|
|
|
|
# ------ MIDDLEWARE
|
|
target_sources(${PROJECT_NAME} PRIVATE library/ili9341.c)
|
|
|
|
# link with gcc for software library such as float calculation (__udivdi3 ...)
|
|
add_library(BUNDLE_LIBRARIES INTERFACE)
|
|
target_link_libraries(BUNDLE_LIBRARIES INTERFACE "-Wl,--start-group"
|
|
gcc m c gigadevice-gd32vf103 sipeed-longan-nano
|
|
"-Wl,--end-group")
|
|
|
|
# ==================================================================================================
|
|
# BUNDLE MKR ZERO
|
|
# ==================================================================================================
|
|
elseif(${OST_BUNDLE} STREQUAL "MKR_ZERO")
|
|
message("============= TARGET: MKR ZERO =============")
|
|
|
|
add_definitions(-DOST_USE_FF_LIBRARY)
|
|
|
|
# ------ CPU
|
|
SET(CPU_TARGET_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cpu/atmel-samd21)
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/cpu/atmel-samd21/include.cmake)
|
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/cpu/atmel-samd21)
|
|
|
|
# ------ PLATFORM
|
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/platform/arduino-mkr-zero)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/platform/arduino-mkr-zero)
|
|
|
|
# ------ MIDDLEWARE
|
|
target_sources(${PROJECT_NAME} PRIVATE library/st7789.c)
|
|
|
|
add_library(BUNDLE_LIBRARIES INTERFACE)
|
|
target_link_libraries(BUNDLE_LIBRARIES INTERFACE "-Wl,--start-group"
|
|
gcc m c stdc++ atmel-samd21 arduino-mkr-zero "-Wl,--end-group")
|
|
|
|
project(${PROJECT_NAME} LANGUAGES CXX C ASM)
|
|
|
|
# target_link_directories(BUNDLE_LIBRARIES INTERFACE ${CMAKE_SOURCE_DIR}/libs/CMSIS/CMSIS/Lib/GCC)
|
|
|
|
# ==================================================================================================
|
|
# BUNDLE RASPBERRY PICO
|
|
# ==================================================================================================
|
|
elseif(${OST_BUNDLE} STREQUAL "RASPI_PICO")
|
|
message("============= TARGET: RASPBERRY PICO =============")
|
|
|
|
add_definitions(-DOST_USE_FF_LIBRARY)
|
|
|
|
# initialize the SDK based on PICO_SDK_PATH
|
|
# note: this must happen before project()
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/platform/raspberry-pico-w/pico_sdk_import.cmake)
|
|
|
|
# add_library(BUNDLE_LIBRARIES INTERFACE)
|
|
# target_link_libraries(BUNDLE_LIBRARIES INTERFACE )
|
|
project(${PROJECT_NAME} LANGUAGES CXX C ASM)
|
|
|
|
# initialize the Raspberry Pi Pico SDK
|
|
# after project!
|
|
pico_sdk_init()
|
|
|
|
# ------ PLATFORM
|
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/platform/raspberry-pico-w)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/platform/raspberry-pico-w)
|
|
|
|
# ------ MIDDLEWARE
|
|
set(MIDDLEWARE_SRCS library/st7789.c)
|
|
|
|
add_executable(${PROJECT_NAME} ${OST_SRCS} ${MIDDLEWARE_SRCS})
|
|
|
|
# ------ Link
|
|
target_link_libraries(${PROJECT_NAME} PUBLIC "-Wl,--start-group"
|
|
gcc m c stdc++ raspberry-pico-w pico_stdlib hardware_spi hardware_dma "-Wl,--end-group")
|
|
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
|
|
|
|
pico_add_extra_outputs(${PROJECT_NAME})
|
|
else()
|
|
message("============= DEFAULT TARGET: LINUX CONSOLE ============= ")
|
|
endif()
|