@@ -11,29 +11,16 @@ 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
32- )
33- FetchContent_MakeAvailable (googletest)
34- add_library (GTest::GTest INTERFACE IMPORTED )
35- target_link_libraries (GTest::GTest INTERFACE gtest_main )
36- endif ()
3724
3825if (NOT CMAKE_CROSSCOMPILING )
3926 message (STATUS "Compiling for simulator" )
@@ -216,25 +203,25 @@ add_library(${STLIB_LIBRARY} STATIC
216203 $<$<AND :$<BOOL :${CMAKE_CROSSCOMPILING } >,$<BOOL :${USE_ETHERNET} >>:${LWIP_SOURCES} >
217204 $<$<AND :$<BOOL :${CMAKE_CROSSCOMPILING } >,$<BOOL :${USE_ETHERNET} >>:${USER_LWIP_SOURCES} >
218205
219- ${ HALAL_C_NO_ETH}
220- ${ HALAL_CPP_NO_ETH}
221- $<$<BOOL :${USE_ETHERNET} >:${HALAL_C_ETH} >
222- $<$<BOOL :${USE_ETHERNET} >:${HALAL_CPP_ETH} >
206+ $<$< BOOL : ${ CMAKE_CROSSCOMPILING } >: ${ HALAL_C_NO_ETH}>
207+ $<$< BOOL : ${ CMAKE_CROSSCOMPILING } >: ${ HALAL_CPP_NO_ETH}>
208+ $<$<AND :$< BOOL :${CMAKE_CROSSCOMPILING } >,$< BOOL : ${ USE_ETHERNET}> >:${HALAL_C_ETH} >
209+ $<$<AND :$< BOOL :${CMAKE_CROSSCOMPILING } >,$< BOOL : ${ USE_ETHERNET}> >:${HALAL_CPP_ETH} >
223210
224- ${ CPP_UTILITIES_C}
225- ${ CPP_UTILITIES_CPP}
211+ $<$< BOOL : ${ CMAKE_CROSSCOMPILING } >: ${ CPP_UTILITIES_C}>
212+ $<$< BOOL : ${ CMAKE_CROSSCOMPILING } >: ${ CPP_UTILITIES_CPP}>
226213
227- ${ STLIB_LOW_C_NO_ETH}
228- ${ STLIB_LOW_CPP_NO_ETH}
229- $<$<BOOL :${USE_ETHERNET} >:${STLIB_LOW_C_ETH} >
230- $<$<BOOL :${USE_ETHERNET} >:${STLIB_LOW_CPP_ETH} >
214+ $<$< BOOL : ${ CMAKE_CROSSCOMPILING } >: ${ STLIB_LOW_C_NO_ETH}>
215+ $<$< BOOL : ${ CMAKE_CROSSCOMPILING } >: ${ STLIB_LOW_CPP_NO_ETH}>
216+ $<$<AND :$< BOOL :${CMAKE_CROSSCOMPILING } >,$< BOOL : ${ USE_ETHERNET}> >:${STLIB_LOW_C_ETH} >
217+ $<$<AND :$< BOOL :${CMAKE_CROSSCOMPILING } >,$< BOOL : ${ USE_ETHERNET}> >:${STLIB_LOW_CPP_ETH} >
231218
232- ${ STLIB_HIGH_C_NO_ETH}
233- ${ STLIB_HIGH_CPP_NO_ETH}
234- $<$<BOOL :${USE_ETHERNET} >:${STLIB_HIGH_C_ETH} >
235- $<$<BOOL :${USE_ETHERNET} >:${STLIB_HIGH_CPP_ETH} >
219+ $<$< BOOL : ${ CMAKE_CROSSCOMPILING } >: ${ STLIB_HIGH_C_NO_ETH}>
220+ $<$< BOOL : ${ CMAKE_CROSSCOMPILING } >: ${ STLIB_HIGH_CPP_NO_ETH}>
221+ $<$<AND :$< BOOL :${CMAKE_CROSSCOMPILING } >,$< BOOL : ${ USE_ETHERNET}> >:${STLIB_HIGH_C_ETH} >
222+ $<$<AND :$< BOOL :${CMAKE_CROSSCOMPILING } >,$< BOOL : ${ USE_ETHERNET}> >:${STLIB_HIGH_CPP_ETH} >
236223
237- ${ CMAKE_CURRENT_LIST_DIR } /Src/ST-LIB.cpp
224+ $<$< BOOL : ${ CMAKE_CROSSCOMPILING } >: ${ CMAKE_CURRENT_LIST_DIR } /Src /ST -LIB .cpp >
238225)
239226
240227set_target_properties (${STLIB_LIBRARY} PROPERTIES
@@ -248,7 +235,7 @@ target_compile_definitions(${STLIB_LIBRARY} PUBLIC
248235 $<$<BOOL :${CMAKE_CROSSCOMPILING } >:USE_HAL_DRIVER >
249236 $<$<BOOL :${CMAKE_CROSSCOMPILING } >:STM32H723xx >
250237
251- $<$<NOT :$<BOOL :${CMAKE_CROSSCOMPILING } >>:SIM_ON >
238+ $<$<NOT :$<BOOL :${CMAKE_CROSSCOMPILING } >>:TESTING_ENV >
252239
253240 $<$<BOOL :${USE_ETHERNET} >:STLIB_ETH >
254241 $<IF :$<BOOL :${TARGET_NUCLEO} >,NUCLEO ,BOARD >
@@ -313,6 +300,23 @@ target_include_directories(${STLIB_LIBRARY} PUBLIC
313300 ${CMAKE_CURRENT_LIST_DIR } /Inc/ST-LIB_HIGH
314301)
315302
303+
304+ if (PROJECT_IS_TOP_LEVEL)
305+ configure_file (
306+ ${CMAKE_CURRENT_LIST_DIR } /Inc/stm32h7xx_hal_conf_template.h
307+ ${CMAKE_CURRENT_BINARY_DIR } /stm32h7xx_hal_conf.h
308+ COPYONLY
309+ )
310+
311+ target_include_directories (${STLIB_LIBRARY} PUBLIC
312+ ${CMAKE_CURRENT_BINARY_DIR }
313+ )
314+ else ()
315+ target_include_directories (${STLIB_LIBRARY} PUBLIC
316+ ${CMAKE_SOURCE_DIR } /Core/Inc
317+ )
318+ endif ()
319+
316320if (PROJECT_IS_TOP_LEVEL)
317321 execute_process (
318322 COMMAND ${CMAKE_COMMAND } -E create_symlink
0 commit comments