aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rtos/CMakeLists.txt18
1 files changed, 18 insertions, 0 deletions
diff --git a/rtos/CMakeLists.txt b/rtos/CMakeLists.txt
index 941ba32..299474d 100644
--- a/rtos/CMakeLists.txt
+++ b/rtos/CMakeLists.txt
@@ -21,3 +21,21 @@ if(CORE_SOFTWARE_RTOS_LOWER STREQUAL "freertos" OR CORE_SOFTWARE_RTOS_LOWER STRE
set(FREERTOS_KERNEL_PATH "${CMAKE_CURRENT_SOURCE_DIR}/freertos/freertos_kernel" CACHE PATH "Path to FreeRTOS kernel.")
add_subdirectory(freertos_config)
endif()
+
+# Include ThreadX
+if(CORE_SOFTWARE_RTOS_LOWER STREQUAL "threadx" OR CORE_SOFTWARE_RTOS_LOWER STREQUAL "all")
+ #threadx build requires 2 defines: THREADX_ARCH (format: cortex_m4) and THREADX_TOOLCHAIN (ac5/ac6/gnu).
+ #set them according to existing defines CMAKE_SYSTEM_PROCESSOR and CMAKE_CXX_COMPILER_ID:
+ string(REPLACE "-" "_" THREADX_ARCH ${CMAKE_SYSTEM_PROCESSOR})
+ string(TOLOWER ${CMAKE_CXX_COMPILER_ID} THREADX_TOOLCHAIN)
+ #if armclang, change the format to "ac6".
+ if(THREADX_TOOLCHAIN STREQUAL "armclang")
+ set(THREADX_TOOLCHAIN "ac6")
+ endif()
+ #if ThreadX supports this configuration, build ThreadX.
+ if (EXISTS ${CMAKE_CURRENT_LIST_DIR}/threadx/ports/${THREADX_ARCH}/${THREADX_TOOLCHAIN}/CMakeLists.txt)
+ add_subdirectory(threadx)
+ else()
+ message(STATUS "Skipping ThreadX build - doesn't support toolchain=${THREADX_TOOLCHAIN} and cpu=${THREADX_ARCH}")
+ endif()
+endif()