From 8f3233e0a0730b16f4fed3669d89954cbdd39ea2 Mon Sep 17 00:00:00 2001 From: chinglee-iot <61685396+chinglee-iot@users.noreply.github.com> Date: Fri, 16 Jun 2023 15:20:52 +0800 Subject: [PATCH] Adding CMakeList.txt in posix GCC demos (#1020) * Add cmake for posix GCC demo --------- Co-authored-by: Gaurav-Aggarwal-AWS <33462878+aggarg@users.noreply.github.com> --- FreeRTOS/Demo/Posix_GCC/CMakeLists.txt | 115 +++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 FreeRTOS/Demo/Posix_GCC/CMakeLists.txt diff --git a/FreeRTOS/Demo/Posix_GCC/CMakeLists.txt b/FreeRTOS/Demo/Posix_GCC/CMakeLists.txt new file mode 100644 index 0000000000..b2d6e2b551 --- /dev/null +++ b/FreeRTOS/Demo/Posix_GCC/CMakeLists.txt @@ -0,0 +1,115 @@ +cmake_minimum_required(VERSION 3.15) + +project( posix_demo ) + +add_compile_options( -D_WINDOWS_ ) + +if( TRACE_ON_ENTER ) + add_compile_options( -DTRACE_ON_ENTER=1 ) +else() + add_compile_options( -DTRACE_ON_ENTER=0 ) +endif() + +if( COVERAGE_TEST ) + set( COVERAGE_TEST 1 ) + add_compile_options( -DprojCOVERAGE_TEST=1 ) +else() + set( COVERAGE_TEST 0 ) + add_compile_options( -DprojCOVERAGE_TEST=0 ) +endif() + +if( PROFILE ) + set( CMAKE_BUILD_TYPE "release" ) +else() + set( CMAKE_BUILD_TYPE "debug" ) +endif() + +if( SANITIZE_ADDRESS ) + add_compile_options( -fsanitize=address -fsanitize=alignment ) +endif() + +if( SANITIZE_LEAK ) + add_compile_options( -fsanitize=leak ) +endif() + +set( FREERTOS_KERNEL_PATH "../../Source" ) +set( FREERTOS_PLUS_TRACE_PATH "../../../FreeRTOS-Plus/Source/FreeRTOS-Plus-Trace" ) + +# Add the freertos_config for FreeRTOS-Kernel +add_library( freertos_config INTERFACE ) + +target_include_directories( freertos_config + INTERFACE + ./ + ./Trace_Recorder_Configuration + ${FREERTOS_PLUS_TRACE_PATH}/Include +) + +# Select the heap port +set( FREERTOS_HEAP "4" CACHE STRING "" FORCE) + +# Select the native compile PORT +set( FREERTOS_PORT "GCC_POSIX" CACHE STRING "" FORCE) + +# Adding the FreeRTOS-Kernel subdirectory +add_subdirectory( ${FREERTOS_KERNEL_PATH} ${CMAKE_CURRENT_BINARY_DIR}/FreeRTOS-Kernel ) + +target_compile_options( freertos_kernel + PRIVATE + # Trace macro cast pointer to int to store memory management event + $ +) + +file( GLOB FREERTOS_PLUS_TRACE_SOURCES ${FREERTOS_PLUS_TRACE_PATH}/*.c ) + +add_executable( posix_demo + code_coverage_additions.c + console.c + main.c + main_blinky.c + main_full.c + run-time-stats-utils.c + $<$:${FREERTOS_PLUS_TRACE_SOURCES}> + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/AbortDelay.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/BlockQ.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/blocktim.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/countsem.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/death.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/dynamic.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/EventGroupsDemo.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/flop.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/GenQTest.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/integer.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/IntSemTest.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/MessageBufferAMP.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/MessageBufferDemo.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/PollQ.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/QPeek.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/QueueOverwrite.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/QueueSet.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/QueueSetPolling.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/recmutex.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/semtest.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/StaticAllocation.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/StreamBufferDemo.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/StreamBufferInterrupt.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/TaskNotify.c + ${CMAKE_CURRENT_LIST_DIR}/../Common/Minimal/TimerDemo.c + ) + +target_include_directories( posix_demo + PRIVATE + ${CMAKE_CURRENT_LIST_DIR} + ${CMAKE_CURRENT_LIST_DIR}/../Common/include + ${FREERTOS_PLUS_TRACE_PATH}/Include + ${FREERTOS_PLUS_TRACE_PATH}/streamports/File/include + ${FREERTOS_PLUS_TRACE_PATH}/streamports/File/config +) + +target_compile_definitions( posix_demo + PRIVATE + $,USER_DEMO=0,> + $,USER_DEMO=1,> +) + +target_link_libraries( posix_demo freertos_kernel freertos_config )