| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
- cmake_policy(SET CMP0054 NEW)
- cmake_policy(SET CMP0057 NEW)
- project(threadx_test LANGUAGES C)
- # Set build configurations
- set(BUILD_CONFIGURATIONS
- default_build_coverage no_cache_build no_cache_standalone_build
- fault_tolerant_build_coverage no_check_build no_cache_fault_tolerant_build
- standalone_build_coverage standalone_fault_tolerant_build_coverage
- standalone_no_cache_fault_tolerant_build)
- set(CMAKE_CONFIGURATION_TYPES
- ${BUILD_CONFIGURATIONS}
- CACHE STRING "list of supported configuration types" FORCE)
- set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
- ${CMAKE_CONFIGURATION_TYPES})
- list(GET CMAKE_CONFIGURATION_TYPES 0 BUILD_TYPE)
- if((NOT CMAKE_BUILD_TYPE) OR (NOT ("${CMAKE_BUILD_TYPE}" IN_LIST
- CMAKE_CONFIGURATION_TYPES)))
- set(CMAKE_BUILD_TYPE
- "${BUILD_TYPE}"
- CACHE STRING "Build Type of the project" FORCE)
- endif()
- message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
- message(STATUS "Using toolchain file: ${CMAKE_TOOLCHAIN_FILE}.")
- set(FX_FAULT_TOLERANT_DEFINITIONS
- -DFX_ENABLE_FAULT_TOLERANT -DFX_UPDATE_FILE_SIZE_ON_ALLOCATE
- -DFX_FAULT_TOLERANT_TRANSACTION_FAIL_FUNCTION)
- set(default_build_coverage "")
- set(no_cache_build -DFX_DISABLE_CACHE -DFX_DISABLE_FAT_ENTRY_REFRESH)
- set(fault_tolerant_build_coverage ${FX_FAULT_TOLERANT_DEFINITIONS})
- set(standalone_build_coverage -DFX_STANDALONE_ENABLE)
- set(standalone_fault_tolerant_build_coverage ${FX_FAULT_TOLERANT_DEFINITIONS}
- -DFX_STANDALONE_ENABLE)
- set(no_cache_standalone_build -DFX_DISABLE_CACHE -DFX_STANDALONE_ENABLE)
- set(no_check_build ${FX_COMPILE_DEFINITIONS} -DFX_DISABLE_ERROR_CHECKING)
- set(no_cache_fault_tolerant_build ${no_cache_build} ${FX_FAULT_TOLERANT_DEFINITIONS})
- set(standalone_no_cache_fault_tolerant_build ${no_cache_build} ${FX_FAULT_TOLERANT_DEFINITIONS} -DFX_STANDALONE_ENABLE)
- add_compile_options(
- -m32
- -std=c99
- -ggdb
- -g3
- -gdwarf-2
- -fdiagnostics-color
- -Werror
- -DFX_REGRESSION_TEST
- ${${CMAKE_BUILD_TYPE}})
- add_link_options(-m32)
- if(CMAKE_BUILD_TYPE MATCHES ".*standalone.*")
- set(FX_STANDALONE_ENABLE
- ON
- CACHE BOOL "Enable Filex in standalone mode")
- endif()
- enable_testing()
- add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../.. filex)
- add_subdirectory(regression)
- add_subdirectory(samples)
- # Coverage
- if(CMAKE_BUILD_TYPE MATCHES ".*_coverage")
- target_compile_options(filex PRIVATE -fprofile-arcs -ftest-coverage)
- target_link_options(filex PRIVATE -fprofile-arcs -ftest-coverage)
- endif()
- # Build ThreadX library once
- if(NOT FX_STANDALONE_ENABLE)
- execute_process(COMMAND ${CMAKE_CURRENT_LIST_DIR}/run.sh build_libs)
- add_custom_target(build_libs ALL COMMAND ${CMAKE_CURRENT_LIST_DIR}/run.sh
- build_libs)
- add_dependencies(filex build_libs)
- target_include_directories(filex PUBLIC ${CMAKE_BINARY_DIR}/../libs/inc)
- add_library(threadx SHARED IMPORTED GLOBAL)
- add_library("azrtos::threadx" ALIAS threadx)
- set_target_properties(
- threadx PROPERTIES IMPORTED_LOCATION
- ${CMAKE_BINARY_DIR}/../libs/threadx/libthreadx.so)
- endif()
- target_compile_options(
- filex
- PRIVATE -Werror
- -Wall
- -Wextra
- -pedantic
- -fmessage-length=0
- -fsigned-char
- -ffunction-sections
- -fdata-sections
- -Wunused
- -Wuninitialized
- -Wmissing-declarations
- -Wconversion
- -Wpointer-arith
- -Wshadow
- -Wlogical-op
- -Waggregate-return
- -Wfloat-equal)
|