1cmake_minimum_required(VERSION 3.13 FATAL_ERROR) 2cmake_policy(SET CMP0054 NEW) 3cmake_policy(SET CMP0057 NEW) 4 5project(threadx_test LANGUAGES C) 6 7# Set build configurations 8set(BUILD_CONFIGURATIONS default_build_coverage disable_notify_callbacks_build 9 stack_checking_build stack_checking_rand_fill_build trace_build) 10set(CMAKE_CONFIGURATION_TYPES 11 ${BUILD_CONFIGURATIONS} 12 CACHE STRING "list of supported configuration types" FORCE) 13set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS 14 ${CMAKE_CONFIGURATION_TYPES}) 15list(GET CMAKE_CONFIGURATION_TYPES 0 BUILD_TYPE) 16if((NOT CMAKE_BUILD_TYPE) OR (NOT ("${CMAKE_BUILD_TYPE}" IN_LIST 17 CMAKE_CONFIGURATION_TYPES))) 18 set(CMAKE_BUILD_TYPE 19 "${BUILD_TYPE}" 20 CACHE STRING "Build Type of the project" FORCE) 21endif() 22 23message(STATUS "Build type: ${CMAKE_BUILD_TYPE}") 24message(STATUS "Using toolchain file: ${CMAKE_TOOLCHAIN_FILE}.") 25set(default_build_coverage "") 26set(disable_notify_callbacks_build -DTX_DISABLE_NOTIFY_CALLBACKS) 27set(stack_checking_build -DTX_ENABLE_STACK_CHECKING) 28set(stack_checking_rand_fill_build -DTX_ENABLE_STACK_CHECKING -DTX_ENABLE_RANDOM_NUMBER_STACK_FILLING) 29set(trace_build -DTX_ENABLE_EVENT_TRACE) 30 31add_compile_options( 32 -m32 33 -std=c99 34 -ggdb 35 -g3 36 -gdwarf-2 37 -fdiagnostics-color 38 -Werror 39 -DTX_REGRESSION_TEST 40 -DTEST_STACK_SIZE_PRINTF=4096 41 ${${CMAKE_BUILD_TYPE}}) 42add_link_options(-m32) 43 44enable_testing() 45 46add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../../.. threadx) 47add_subdirectory(regression) 48add_subdirectory(samples) 49 50# Coverage 51if(CMAKE_BUILD_TYPE MATCHES ".*_coverage") 52 target_compile_options(threadx PRIVATE -fprofile-arcs -ftest-coverage) 53 target_link_options(threadx PRIVATE -fprofile-arcs -ftest-coverage) 54endif() 55 56target_compile_options( 57 threadx 58 PRIVATE -Werror 59 -Wall 60 -Wextra 61 -pedantic 62 -fmessage-length=0 63 -fsigned-char 64 -ffunction-sections 65 -fdata-sections 66 -Wunused 67 -Wuninitialized 68 -Wmissing-declarations 69 -Wconversion 70 -Wpointer-arith 71 # -Wshadow 72 -Wlogical-op 73 -Waggregate-return 74 -Wfloat-equal) 75