cmake: moved unittest.cmake to Zephyr CMake modules dir
Move the unittest.cmake to the new Zephyr CMake modules dir. This allows us to have a single Zephyr CMake package and load unittest module as: 'find_package(Zephyr COMPONENTS unittest)' This unifies the way Zephyr package is sourced and removes the need for a dedicated ZephyrUnittest package. Deprecate the use of: 'find_package(ZephyrUnittest)' Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
This commit is contained in:
parent
61453e4a58
commit
e4ccde3774
2 changed files with 6 additions and 5 deletions
|
@ -1,116 +0,0 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
cmake_minimum_required(VERSION 3.20.0)
|
||||
|
||||
enable_language(C CXX ASM)
|
||||
|
||||
# Parameters:
|
||||
# SOURCES: list of source files, default main.c
|
||||
# INCLUDE: list of additional include paths relative to ZEPHYR_BASE
|
||||
|
||||
separate_arguments( EXTRA_CFLAGS_AS_LIST UNIX_COMMAND ${EXTRA_CFLAGS})
|
||||
separate_arguments( EXTRA_AFLAGS_AS_LIST UNIX_COMMAND ${EXTRA_AFLAGS})
|
||||
separate_arguments(EXTRA_CPPFLAGS_AS_LIST UNIX_COMMAND ${EXTRA_CPPFLAGS})
|
||||
separate_arguments(EXTRA_CXXFLAGS_AS_LIST UNIX_COMMAND ${EXTRA_CXXFLAGS})
|
||||
separate_arguments(EXTRA_LDFLAGS_AS_LIST UNIX_COMMAND ${EXTRA_LDFLAGS})
|
||||
|
||||
set(ENV_ZEPHYR_BASE $ENV{ZEPHYR_BASE})
|
||||
# This add support for old style boilerplate include.
|
||||
if((NOT DEFINED ZEPHYR_BASE) AND (DEFINED ENV_ZEPHYR_BASE))
|
||||
set(ZEPHYR_BASE ${ENV_ZEPHYR_BASE} CACHE PATH "Zephyr base")
|
||||
endif()
|
||||
|
||||
if(NOT SOURCES)
|
||||
set(SOURCES main.c)
|
||||
endif()
|
||||
|
||||
add_executable(testbinary ${SOURCES})
|
||||
|
||||
set(KOBJ_TYPES_H_TARGET kobj_types_h_target)
|
||||
include(${ZEPHYR_BASE}/cmake/kobj.cmake)
|
||||
add_dependencies(testbinary ${KOBJ_TYPES_H_TARGET})
|
||||
gen_kobj(KOBJ_GEN_DIR)
|
||||
|
||||
list(APPEND INCLUDE
|
||||
subsys/testsuite/ztest/include
|
||||
subsys/testsuite/include
|
||||
include
|
||||
.
|
||||
)
|
||||
|
||||
if(CMAKE_HOST_APPLE)
|
||||
else()
|
||||
|
||||
if(M64_MODE)
|
||||
set (CMAKE_C_FLAGS "-m64")
|
||||
set (CMAKE_CXX_FLAGS "-m64")
|
||||
else()
|
||||
set (CMAKE_C_FLAGS "-m32") #deprecated on macOS
|
||||
set (CMAKE_CXX_FLAGS "-m32") #deprecated on macOS
|
||||
endif(M64_MODE)
|
||||
|
||||
endif()
|
||||
|
||||
target_compile_options(testbinary PRIVATE
|
||||
-Wall
|
||||
-I ${KOBJ_GEN_DIR}
|
||||
${EXTRA_CPPFLAGS_AS_LIST}
|
||||
${EXTRA_CFLAGS_AS_LIST}
|
||||
$<$<COMPILE_LANGUAGE:CXX>:${EXTRA_CXXFLAGS_AS_LIST}>
|
||||
$<$<COMPILE_LANGUAGE:ASM>:${EXTRA_AFLAGS_AS_LIST}>
|
||||
)
|
||||
|
||||
target_link_options(testbinary PRIVATE
|
||||
-T "${ZEPHYR_BASE}/subsys/testsuite/include/ztest.ld"
|
||||
)
|
||||
|
||||
target_link_libraries(testbinary PRIVATE
|
||||
${EXTRA_LDFLAGS_AS_LIST}
|
||||
)
|
||||
|
||||
if(COVERAGE)
|
||||
target_compile_options(testbinary PRIVATE
|
||||
-fno-default-inline
|
||||
-fno-inline
|
||||
-fprofile-arcs
|
||||
-ftest-coverage
|
||||
)
|
||||
|
||||
target_link_libraries(testbinary PRIVATE
|
||||
-lgcov
|
||||
)
|
||||
endif()
|
||||
|
||||
if(LIBS)
|
||||
message(FATAL_ERROR "This variable is not supported, see SOURCES instead")
|
||||
endif()
|
||||
|
||||
target_sources(testbinary PRIVATE
|
||||
${ZEPHYR_BASE}/subsys/testsuite/ztest/src/ztest.c
|
||||
${ZEPHYR_BASE}/subsys/testsuite/ztest/src/ztest_mock.c
|
||||
)
|
||||
|
||||
target_compile_definitions(testbinary PRIVATE ZTEST_UNITTEST)
|
||||
|
||||
foreach(inc ${INCLUDE})
|
||||
target_include_directories(testbinary PRIVATE ${ZEPHYR_BASE}/${inc})
|
||||
endforeach()
|
||||
|
||||
find_program(VALGRIND_PROGRAM valgrind)
|
||||
if(VALGRIND_PROGRAM)
|
||||
set(VALGRIND ${VALGRIND_PROGRAM})
|
||||
set(VALGRIND_FLAGS
|
||||
--leak-check=full
|
||||
--error-exitcode=1
|
||||
--log-file=valgrind.log
|
||||
)
|
||||
endif()
|
||||
|
||||
add_custom_target(run-test
|
||||
COMMAND
|
||||
${VALGRIND} ${VALGRIND_FLAGS}
|
||||
$<TARGET_FILE:testbinary>
|
||||
DEPENDS testbinary
|
||||
WORKING_DIRECTORY ${APPLICATION_BINARY_DIR}
|
||||
)
|
||||
# TODO: Redirect output to unit.log
|
Loading…
Add table
Add a link
Reference in a new issue