@ -13,8 +13,8 @@ set(CMAKE_C_STANDARD_REQUIRED ON)
set ( CMAKE_CXX_EXTENSIONS OFF )
set ( CMAKE_CXX_STANDARD_REQUIRED ON )
set ( CMAKE_EXPORT_COMPILE_COMMANDS ON )
set ( NRF_TARGET "nrf52" )
cmake_policy ( SET CMP0140 NEW )
if ( NOT ARM_NONE_EABI_TOOLCHAIN_PATH )
message ( FATAL_ERROR "The path to the toolchain (arm-none-eabi) must be specified on the command line (add -DARM_NONE_EABI_TOOLCHAIN_PATH=<path>" )
@ -35,6 +35,19 @@ endif()
set ( TARGET_DEVICE "PINETIME" CACHE STRING "Target device" )
set_property ( CACHE TARGET_DEVICE PROPERTY STRINGS PINETIME MOY_TFK5 MOY_TIN5 MOY_TON5 MOY_UNK )
option ( ENABLE_APP_STOPWATCH "Enable the Stopwatch application" True )
option ( ENABLE_APP_ALARM "Enable the Alarm application" True )
option ( ENABLE_APP_TIMER "Enable the Timer application" True )
option ( ENABLE_APP_STEPS "Enable the Steps application" True )
option ( ENABLE_APP_HEARTRATE "Enable the HeartRate application" True )
option ( ENABLE_APP_MUSIC "Enable the Music application" True )
option ( ENABLE_APP_PAINT "Enable the Paint application" True )
option ( ENABLE_APP_PADDLE "Enable the Paddle game" True )
option ( ENABLE_APP_TWOS "Enable the Twos game" True )
option ( ENABLE_APP_METRONOME "Enable the Metronome application" True )
option ( ENABLE_APP_NAVIGATION "Enable the Navigation application" True )
option ( ENABLE_APP_MOTION "Enable the Motion application" False )
set ( PROJECT_GIT_COMMIT_HASH "" )
execute_process ( COMMAND git rev-parse --short HEAD
@ -70,5 +83,28 @@ set(VERSION_EDIT_WARNING "// Do not edit this file, it is automatically generate
configure_file ( ${ CMAKE_CURRENT_SOURCE_DIR } /src/Version.h.in ${ CMAKE_CURRENT_BINARY_DIR } /src/Version.h )
configure_file ( ${ CMAKE_CURRENT_SOURCE_DIR } /docker/post_build.sh.in ${ CMAKE_CURRENT_BINARY_DIR } /post_build.sh )
function ( AddToListIfEnabled list enabled type )
if ( ${ enabled } )
list ( APPEND ${ list } ${ type } )
endif ( )
return ( PROPAGATE ${ list } )
endfunction ( )
# G e n e r a t e t h e l i s t o f u s e r a p p s t o b e c o m p i l e d i n t o t h e f i r m w a r e
AddToListIfEnabled ( USERAPP_TYPES_LIST ${ ENABLE_APP_STOPWATCH } "Apps::StopWatch" )
AddToListIfEnabled ( USERAPP_TYPES_LIST ${ ENABLE_APP_ALARM } "Apps::Alarm" )
AddToListIfEnabled ( USERAPP_TYPES_LIST ${ ENABLE_APP_TIMER } "Apps::Timer" )
AddToListIfEnabled ( USERAPP_TYPES_LIST ${ ENABLE_APP_STEPS } "Apps::Steps" )
AddToListIfEnabled ( USERAPP_TYPES_LIST ${ ENABLE_APP_HEARTRATE } "Apps::HeartRate" )
AddToListIfEnabled ( USERAPP_TYPES_LIST ${ ENABLE_APP_MUSIC } "Apps::Music" )
AddToListIfEnabled ( USERAPP_TYPES_LIST ${ ENABLE_APP_PAINT } "Apps::Paint" )
AddToListIfEnabled ( USERAPP_TYPES_LIST ${ ENABLE_APP_PADDLE } "Apps::Paddle" )
AddToListIfEnabled ( USERAPP_TYPES_LIST ${ ENABLE_APP_TWOS } "Apps::Twos" )
AddToListIfEnabled ( USERAPP_TYPES_LIST ${ ENABLE_APP_METRONOME } "Apps::Metronome" )
AddToListIfEnabled ( USERAPP_TYPES_LIST ${ ENABLE_APP_NAVIGATION } "Apps::Navigation" )
AddToListIfEnabled ( USERAPP_TYPES_LIST ${ ENABLE_APP_MOTION } "Apps::Motion" )
list ( JOIN USERAPP_TYPES_LIST "," USERAPP_TYPES )
configure_file ( ${ CMAKE_CURRENT_SOURCE_DIR } /src/displayapp/Apps.h.in ${ CMAKE_CURRENT_BINARY_DIR } /src/displayapp/Apps.h )
add_subdirectory ( src )