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