@@ -11,33 +11,38 @@ if(NOT PROJECT_IS_TOP_LEVEL)
1111 set (STLIB_LIBRARY ${STLIB_LIBRARY} PARENT_SCOPE )
1212endif ()
1313
14+ include (CTest )
15+ enable_testing ()
16+
1417option (USE_ETHERNET "Enable ethernet peripheral" OFF )
1518option (TARGET_NUCLEO "Targets the STM32H723 Nucleo development board" OFF )
1619
1720message (STATUS "${PROJECT_NAME} Ethernet: ${USE_ETHERNET} " )
1821message (STATUS "${PROJECT_NAME} Nucleo: ${TARGET_NUCLEO} " )
1922message (STATUS "${PROJECT_NAME} Crosscompiling: ${CMAKE_CROSSCOMPILING} " )
2023
21- # ============================
22- # Tests + GTest - Simulator
23- # ============================
24- if ((PROJECT_IS_TOP_LEVEL AND ( NOT CMAKE_CROSSCOMPILING )))
25- include ( FetchContent )
26- option ( BUILD_GMOCK OFF )
27- option ( INSTALL_GTEST OFF )
28- FetchContent_Declare (
29- googletest
30- GIT_REPOSITORY https://github.com/google/googletest.git
31- GIT_TAG v1.15.2
24+ if ( NOT EXISTS ${CMAKE_CURRENT_LIST_DIR} /STM32CubeH7/Drivers)
25+ execute_process (
26+ COMMAND git submodule update --init --depth 1
27+ WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
28+ )
29+ endif ( )
30+
31+ if ( NOT EXISTS ${CMAKE_CURRENT_LIST_DIR} /STM32CubeH7/Drivers/CMSIS/Device/ST/STM32H7xx/Include)
32+ execute_process (
33+ COMMAND git submodule update --init --depth 1 Drivers/CMSIS/Device/ST/STM32H7xx Drivers/STM32H7xx_HAL_Driver
34+ WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} /STM32CubeH7
3235 )
33- FetchContent_MakeAvailable (googletest)
34- add_library (GTest::GTest INTERFACE IMPORTED )
35- target_link_libraries (GTest::GTest INTERFACE gtest_main )
3636endif ()
3737
3838if (NOT CMAKE_CROSSCOMPILING )
3939 message (STATUS "Compiling for simulator" )
4040 add_subdirectory (Tests )
41+ else ()
42+ execute_process (
43+ COMMAND git submodule update --init --depth 1 Drivers/BSP/Components/lan8742
44+ WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} /STM32CubeH7
45+ )
4146endif ()
4247
4348# ============================
@@ -219,25 +224,31 @@ add_library(${STLIB_LIBRARY} STATIC
219224 $<$<AND :$<BOOL :${CMAKE_CROSSCOMPILING} >,$<BOOL :${USE_ETHERNET} >>:${LWIP_SOURCES} >
220225 $<$<AND :$<BOOL :${CMAKE_CROSSCOMPILING} >,$<BOOL :${USE_ETHERNET} >>:${USER_LWIP_SOURCES} >
221226
222- ${ HALAL_C_NO_ETH}
223- ${ HALAL_CPP_NO_ETH}
224- $<$<BOOL :${USE_ETHERNET} >:${HALAL_C_ETH} >
225- $<$<BOOL :${USE_ETHERNET} >:${HALAL_CPP_ETH} >
227+ $<$< BOOL : ${CMAKE_CROSSCOMPILING} >: ${ HALAL_C_NO_ETH}>
228+ $<$< BOOL : ${CMAKE_CROSSCOMPILING} >: ${ HALAL_CPP_NO_ETH}>
229+ $<$<AND :$< BOOL :${CMAKE_CROSSCOMPILING} >,$< BOOL : ${ USE_ETHERNET}> >:${HALAL_C_ETH} >
230+ $<$<AND :$< BOOL :${CMAKE_CROSSCOMPILING} >,$< BOOL : ${ USE_ETHERNET}> >:${HALAL_CPP_ETH} >
226231
227- ${ CPP_UTILITIES_C}
228- ${ CPP_UTILITIES_CPP}
232+ $<$< BOOL : ${CMAKE_CROSSCOMPILING} >: ${ CPP_UTILITIES_C}>
233+ $<$< BOOL : ${CMAKE_CROSSCOMPILING} >: ${ CPP_UTILITIES_CPP}>
229234
230- ${ STLIB_LOW_C_NO_ETH}
231- ${ STLIB_LOW_CPP_NO_ETH}
232- $<$<BOOL :${USE_ETHERNET} >:${STLIB_LOW_C_ETH} >
233- $<$<BOOL :${USE_ETHERNET} >:${STLIB_LOW_CPP_ETH} >
235+ $<$< BOOL : ${CMAKE_CROSSCOMPILING} >: ${ STLIB_LOW_C_NO_ETH}>
236+ $<$< BOOL : ${CMAKE_CROSSCOMPILING} >: ${ STLIB_LOW_CPP_NO_ETH}>
237+ $<$<AND :$< BOOL :${CMAKE_CROSSCOMPILING} >,$< BOOL : ${ USE_ETHERNET}> >:${STLIB_LOW_C_ETH} >
238+ $<$<AND :$< BOOL :${CMAKE_CROSSCOMPILING} >,$< BOOL : ${ USE_ETHERNET}> >:${STLIB_LOW_CPP_ETH} >
234239
235- ${ STLIB_HIGH_C_NO_ETH}
236- ${ STLIB_HIGH_CPP_NO_ETH}
237- $<$<BOOL :${USE_ETHERNET} >:${STLIB_HIGH_C_ETH} >
238- $<$<BOOL :${USE_ETHERNET} >:${STLIB_HIGH_CPP_ETH} >
240+ $<$< BOOL : ${CMAKE_CROSSCOMPILING} >: ${ STLIB_HIGH_C_NO_ETH}>
241+ $<$< BOOL : ${CMAKE_CROSSCOMPILING} >: ${ STLIB_HIGH_CPP_NO_ETH}>
242+ $<$<AND :$< BOOL :${CMAKE_CROSSCOMPILING} >,$< BOOL : ${ USE_ETHERNET}> >:${STLIB_HIGH_C_ETH} >
243+ $<$<AND :$< BOOL :${CMAKE_CROSSCOMPILING} >,$< BOOL : ${ USE_ETHERNET}> >:${STLIB_HIGH_CPP_ETH} >
239244
240- ${CMAKE_CURRENT_LIST_DIR} /Src/ST-LIB.cpp
245+ $<$<BOOL :${CMAKE_CROSSCOMPILING} >:${CMAKE_CURRENT_LIST_DIR} /Src /ST -LIB .cpp >
246+
247+ $<$<NOT :$<BOOL :${CMAKE_CROSSCOMPILING} >>:${CMAKE_CURRENT_LIST_DIR} /Src /HALAL /Services /Time /Scheduler .cpp >
248+ $<$<NOT :$<BOOL :${CMAKE_CROSSCOMPILING} >>:${CMAKE_CURRENT_LIST_DIR} /Src /MockedDrivers /mocked_ll_tim .cpp >
249+ $<$<NOT :$<BOOL :${CMAKE_CROSSCOMPILING} >>:${CMAKE_CURRENT_LIST_DIR} /Src /MockedDrivers /mocked_system_stm32h7xx .c >
250+ $<$<NOT :$<BOOL :${CMAKE_CROSSCOMPILING} >>:${CMAKE_CURRENT_LIST_DIR} /Src /MockedDrivers /stm32h723xx_wrapper .c >
251+ $<$<NOT :$<BOOL :${CMAKE_CROSSCOMPILING} >>:${CMAKE_CURRENT_LIST_DIR} /Src /MockedDrivers /NVIC .cpp >
241252)
242253
243254set_target_properties (${STLIB_LIBRARY} PROPERTIES
@@ -251,7 +262,7 @@ target_compile_definitions(${STLIB_LIBRARY} PUBLIC
251262 $<$<BOOL :${CMAKE_CROSSCOMPILING} >:USE_HAL_DRIVER >
252263 $<$<BOOL :${CMAKE_CROSSCOMPILING} >:STM32H723xx >
253264
254- $<$<NOT :$<BOOL :${CMAKE_CROSSCOMPILING} >>:SIM_ON >
265+ $<$<NOT :$<BOOL :${CMAKE_CROSSCOMPILING} >>:TESTING_ENV >
255266
256267 $<$<BOOL :${USE_ETHERNET} >:STLIB_ETH >
257268 $<IF :$<BOOL :${TARGET_NUCLEO} >,NUCLEO ,BOARD >
@@ -284,10 +295,13 @@ target_compile_options(${STLIB_LIBRARY} PRIVATE
284295
285296target_include_directories (${STLIB_LIBRARY} PUBLIC
286297 # CMSIS + HAL
287- $<$<BOOL :${CMAKE_CROSSCOMPILING} >:${STM32CUBEH7} /Drivers /CMSIS /Device /ST /STM32H7xx /Include >
288- $<$<BOOL :${CMAKE_CROSSCOMPILING} >:${STM32CUBEH7} /Drivers /CMSIS /Include >
298+ #$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${STM32CUBEH7}/Drivers/CMSIS/Device/ST/STM32H7xx/Include>
299+ #$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${STM32CUBEH7}/Drivers/CMSIS/Include>
300+ ${STM32CUBEH7} /Drivers/CMSIS/Device/ST/STM32H7xx/Include
301+ ${STM32CUBEH7} /Drivers/CMSIS/Include
289302 $<$<BOOL :${CMAKE_CROSSCOMPILING} >:${STM32CUBEH7} /Drivers /CMSIS /Core_A /Include >
290- $<$<BOOL :${CMAKE_CROSSCOMPILING} >:${STM32CUBEH7} /Drivers /STM32H7xx_HAL_Driver /Inc >
303+ #$<$<BOOL:${CMAKE_CROSSCOMPILING}>:${STM32CUBEH7}/Drivers/STM32H7xx_HAL_Driver/Inc>
304+ ${STM32CUBEH7} /Drivers/STM32H7xx_HAL_Driver/Inc
291305 $<$<BOOL :${CMAKE_CROSSCOMPILING} >:${STM32CUBEH7} /Drivers /STM32H7xx_HAL_Driver /Inc /Legacy >
292306
293307 # LWIP includes
@@ -316,6 +330,23 @@ target_include_directories(${STLIB_LIBRARY} PUBLIC
316330 ${CMAKE_CURRENT_LIST_DIR} /Inc/ST-LIB_HIGH
317331)
318332
333+
334+ if (PROJECT_IS_TOP_LEVEL)
335+ configure_file (
336+ ${CMAKE_CURRENT_LIST_DIR} /Inc/stm32h7xx_hal_conf_template.h
337+ ${CMAKE_CURRENT_BINARY_DIR} /stm32h7xx_hal_conf.h
338+ COPYONLY
339+ )
340+
341+ target_include_directories (${STLIB_LIBRARY} PUBLIC
342+ ${CMAKE_CURRENT_BINARY_DIR}
343+ )
344+ else ()
345+ target_include_directories (${STLIB_LIBRARY} PUBLIC
346+ ${CMAKE_SOURCE_DIR} /Core/Inc
347+ )
348+ endif ()
349+
319350if (PROJECT_IS_TOP_LEVEL)
320351 execute_process (
321352 COMMAND ${CMAKE_COMMAND} -E create_symlink
0 commit comments