@@ -50,22 +50,64 @@ configure_file(
5050 "${CMAKE_CURRENT_BINARY_DIR} /lv_conf.h"
5151 COPYONLY )
5252
53- file (GLOB_RECURSE INCLUDES "lv_drivers/*.h" "${InfiniTime_DIR} /src/libs/lvgl/src/*.h" "./*.h" )
54- file (GLOB_RECURSE SOURCES "lv_drivers/*.c" "${InfiniTime_DIR} /src/libs/lvgl/src/*.c" )
53+ file (GLOB_RECURSE LVGL_INCLUDES "lv_drivers/*.h" "${InfiniTime_DIR} /src/libs/lvgl/src/*.h" "./*.h" )
54+ file (GLOB_RECURSE LVGL_SOURCES "lv_drivers/*.c" "${InfiniTime_DIR} /src/libs/lvgl/src/*.c" )
55+
56+ add_library (sim-base STATIC
57+ # LVGL sources
58+ ${LVGL_SOURCES} ${LVGL_INCLUDES}
59+ # FreeRTOS
60+ sim/FreeRTOS.h
61+ sim/FreeRTOS.cpp
62+ sim/task.h
63+ sim/task.cpp
64+ sim/timers.h
65+ sim/timers.cpp
66+ sim/queue.h
67+ sim/queue.cpp
68+ # src/FreeRTOS
69+ sim/portmacro_cmsis.h
70+ sim/portmacro_cmsis.cpp
71+ # nrf
72+ sim/libraries/log /nrf_log.h
73+ sim/libraries/delay/nrf_delay.h
74+ sim/libraries/delay/nrf_delay.cpp
75+ sim/nrfx/nrfx_log.h
76+ sim/nrfx/drivers/include /nrfx_twi.h
77+ sim/nrfx/hal/nrf_gpio.h
78+ sim/nrfx/hal/nrf_gpio.cpp
79+ sim/nrfx/hal/nrfx_gpiote.h # includes hal/nrf_gpio.h
80+ sim/nrfx/hal/nrf_rtc.h
81+ sim/nrfx/hal/nrf_rtc.cpp
82+ # nrf/components/libraries/timer
83+ sim/libraries/timer/app_timer.h
84+ sim/libraries/timer/app_timer.cpp
85+ sim/libraries/gpiote/app_gpiote.h # includes hal/nrf_gpio.h
86+ )
87+ # include the generated lv_conf.h file before anything else
88+ target_include_directories (sim-base PUBLIC "${CMAKE_CURRENT_BINARY_DIR} " ) # lv_conf.h
89+ target_include_directories (sim-base PUBLIC "sim" )
90+ target_include_directories (sim-base PUBLIC "sim/libraries/log" ) # for nrf_log.h
91+ target_include_directories (sim-base PUBLIC "sim/libraries/timer" ) # for app_timer.h
92+ target_include_directories (sim-base PUBLIC "sim/nrfx" ) # for nrfx_log.h and others
93+ target_include_directories (sim-base PUBLIC "sim/nrfx/hal" ) # for nrfx_log.h
94+
95+ target_include_directories (sim-base PUBLIC "${CMAKE_CURRENT_SOURCE_DIR} " ) # lv_drv_conf.h
96+ target_include_directories (sim-base PUBLIC "${InfiniTime_DIR} /src/libs" )
97+ target_include_directories (sim-base PUBLIC "lv_drivers" )
98+
99+ target_include_directories (sim-base PUBLIC "${InfiniTime_DIR} /src" ) # InfiniTime drivers, components and all
55100
56- add_executable (infinisim main.cpp ${SOURCES} ${INCLUDES} )
57101
58102set (MONITOR_ZOOM 1 CACHE STRING "Scale simulator window by this factor" )
59103if (MONITOR_ZOOM MATCHES "^[0-9]\. ?[0-9]*" )
60104 message (STATUS "Using MONITOR_ZOOM=${MONITOR_ZOOM} " )
61- target_compile_definitions (infinisim PRIVATE MONITOR_ZOOM=${MONITOR_ZOOM} )
105+ target_compile_definitions (sim-base PUBLIC MONITOR_ZOOM=${MONITOR_ZOOM} )
62106else ()
63107 message (FATAL_ERROR "variable MONITOR_ZOOM=${MONITOR_ZOOM} must be a positive number" )
64108endif ()
65109
66- # include the generated lv_conf.h file before anything else
67- target_include_directories (infinisim PRIVATE "${CMAKE_CURRENT_BINARY_DIR} " )
68-
110+ add_executable (infinisim main.cpp)
69111# add simulator files
70112target_sources (infinisim PUBLIC
71113 sim/displayapp/LittleVgl.h
@@ -108,45 +150,8 @@ target_sources(infinisim PUBLIC
108150 sim/drivers/SpiNorFlash.cpp
109151 sim/heartratetask/HeartRateTask.h
110152 sim/heartratetask/HeartRateTask.cpp
111- # FreeRTOS
112- sim/FreeRTOS.h
113- sim/FreeRTOS.cpp
114- sim/task.h
115- sim/task.cpp
116- sim/timers.h
117- sim/timers.cpp
118- sim/queue.h
119- sim/queue.cpp
120- # src/FreeRTOS
121- sim/portmacro_cmsis.h
122- sim/portmacro_cmsis.cpp
123- # nrf
124- sim/libraries/log /nrf_log.h
125- sim/libraries/delay/nrf_delay.h
126- sim/libraries/delay/nrf_delay.cpp
127- sim/nrfx/nrfx_log.h
128- sim/nrfx/drivers/include /nrfx_twi.h
129- sim/nrfx/hal/nrf_gpio.h
130- sim/nrfx/hal/nrf_gpio.cpp
131- sim/nrfx/hal/nrfx_gpiote.h # includes hal/nrf_gpio.h
132- sim/nrfx/hal/nrf_rtc.h
133- sim/nrfx/hal/nrf_rtc.cpp
134- # nrf/components/libraries/timer
135- sim/libraries/timer/app_timer.h
136- sim/libraries/timer/app_timer.cpp
137- sim/libraries/gpiote/app_gpiote.h # includes hal/nrf_gpio.h
138- )
139- target_include_directories (infinisim PRIVATE "sim" )
140- target_include_directories (infinisim PRIVATE "sim/libraries/log" ) # for nrf_log.h
141- target_include_directories (infinisim PRIVATE "sim/libraries/timer" ) # for app_timer.h
142- target_include_directories (infinisim PRIVATE "sim/nrfx" ) # for nrfx_log.h and others
143- target_include_directories (infinisim PRIVATE "sim/nrfx/hal" ) # for nrfx_log.h
144-
145- target_compile_definitions (infinisim PRIVATE LV_CONF_INCLUDE_SIMPLE)
146-
147- target_include_directories (infinisim PRIVATE "${CMAKE_CURRENT_SOURCE_DIR} " )
148- target_include_directories (infinisim PRIVATE "${InfiniTime_DIR} /src/libs" )
149- target_include_directories (infinisim PRIVATE "lv_drivers" )
153+ )
154+ target_link_libraries (infinisim PUBLIC sim-base)
150155
151156# add dates library
152157if (EXISTS "${InfiniTime_DIR} /src/libs/date/includes" )
@@ -175,21 +180,12 @@ file(GLOB InfiniTime_WIDGETS
175180 "${InfiniTime_DIR} /src/displayapp/widgets/*.cpp"
176181 "${InfiniTime_DIR} /src/displayapp/widgets/*.h"
177182)
178- set (LITTLEFS_SRC
179- ${InfiniTime_DIR} /src/libs/littlefs/lfs_util.h
180- ${InfiniTime_DIR} /src/libs/littlefs/lfs.h
181- ${InfiniTime_DIR} /src/libs/littlefs/lfs_util.c
182- ${InfiniTime_DIR} /src/libs/littlefs/lfs.c
183- )
184183target_sources (infinisim PUBLIC ${InfiniTime_SCREENS} )
185184target_sources (infinisim PUBLIC ${InfiniTime_FONTS} )
186185target_sources (infinisim PUBLIC ${InfiniTime_ICONS} )
187186target_sources (infinisim PUBLIC ${InfiniTime_WIDGETS} )
188- target_sources (infinisim PUBLIC ${LITTLEFS_SRC} )
189187
190188# add files directly from InfiniTime sources
191- target_include_directories (infinisim PRIVATE "${InfiniTime_DIR} /src" )
192- target_include_directories (infinisim PRIVATE "${InfiniTime_DIR} /src/libs/littlefs" )
193189target_sources (infinisim PUBLIC
194190 ${InfiniTime_DIR} /src/BootloaderVersion.h
195191 ${InfiniTime_DIR} /src/BootloaderVersion.cpp
@@ -242,6 +238,16 @@ else()
242238 )
243239endif ()
244240
241+ # littlefs
242+ add_library (littlefs STATIC
243+ ${InfiniTime_DIR} /src/libs/littlefs/lfs_util.h
244+ ${InfiniTime_DIR} /src/libs/littlefs/lfs.h
245+ ${InfiniTime_DIR} /src/libs/littlefs/lfs_util.c
246+ ${InfiniTime_DIR} /src/libs/littlefs/lfs.c
247+ )
248+ target_include_directories (littlefs PUBLIC "${InfiniTime_DIR} /src/libs/littlefs" )
249+ target_link_libraries (infinisim PRIVATE littlefs)
250+
245251# QCBOR
246252add_library (QCBOR STATIC
247253 ${InfiniTime_DIR} /src/libs/QCBOR/src/ieee754.c
@@ -305,3 +311,28 @@ endif()
305311target_include_directories (infinisim PRIVATE "${CMAKE_CURRENT_SOURCE_DIR} /gif-h" )
306312
307313install (TARGETS infinisim DESTINATION bin)
314+
315+ # helper library to manipulate littlefs raw image
316+ add_executable (littlefs-do
317+ littlefs-do-main.cpp
318+ # want to use FS.h
319+ ${InfiniTime_DIR} /src/components/fs/FS.h
320+ ${InfiniTime_DIR} /src/components/fs/FS.cpp
321+ # dependencies for FS.h
322+ sim/drivers/SpiNorFlash.h
323+ sim/drivers/SpiNorFlash.cpp
324+ # dependencies for SpiNorFlash.h
325+ ${InfiniTime_DIR} /src/drivers/Spi.h
326+ ${InfiniTime_DIR} /src/drivers/Spi.cpp
327+ sim/drivers/SpiMaster.h
328+ sim/drivers/SpiMaster.cpp
329+
330+ ${InfiniTime_DIR} /src/components/settings/Settings.h
331+ ${InfiniTime_DIR} /src/components/settings/Settings.cpp
332+ )
333+
334+ target_link_libraries (littlefs-do PUBLIC sim-base)
335+ target_link_libraries (littlefs-do PUBLIC littlefs)
336+
337+ target_link_libraries (littlefs-do PRIVATE SDL2::SDL2)
338+ target_link_libraries (littlefs-do PRIVATE infinitime_fonts)
0 commit comments