1# Copyright (c) 2022 Google LLC 2# SPDX-License-Identifier: Apache-2.0 3 4cmake_minimum_required(VERSION 3.20.0) 5 6set(KCONFIG_ROOT ${CMAKE_CURRENT_LIST_DIR}/../Kconfig) 7 8# Add the sources 9list(APPEND test_sources src/main.cpp) 10if(CONFIG_ZTEST_FAIL_TEST_ASSERT_AFTER) 11 list(APPEND test_sources src/assert_after.cpp) 12elseif(CONFIG_ZTEST_FAIL_TEST_ASSERT_TEARDOWN) 13 list(APPEND test_sources src/assert_teardown.cpp) 14elseif(CONFIG_ZTEST_FAIL_TEST_ASSUME_AFTER) 15 list(APPEND test_sources src/assume_after.cpp) 16elseif(CONFIG_ZTEST_FAIL_TEST_ASSUME_TEARDOWN) 17 list(APPEND test_sources src/assume_teardown.cpp) 18elseif(CONFIG_ZTEST_FAIL_TEST_PASS_AFTER) 19 list(APPEND test_sources src/pass_after.cpp) 20elseif(CONFIG_ZTEST_FAIL_TEST_PASS_TEARDOWN) 21 list(APPEND test_sources src/pass_teardown.cpp) 22elseif(CONFIG_ZTEST_FAIL_TEST_UNEXPECTED_ASSUME) 23 list(APPEND test_sources src/unexpected_assume.cpp) 24endif() 25 26if(CONFIG_ZTEST_FAIL_ON_ASSUME) 27 add_definitions(-DCONFIG_ZTEST_FAIL_ON_ASSUME=1) 28endif() 29 30if(BOARD STREQUAL "unit_testing" OR BOARD STREQUAL "unit_testing/unit_testing") 31 find_package(Zephyr COMPONENTS unittest REQUIRED HINTS $ENV{ZEPHYR_BASE}) 32 project(base) 33 34 target_sources(testbinary PRIVATE ${test_sources}) 35 target_include_directories(testbinary PRIVATE include) 36 install(TARGETS testbinary) 37else() 38 find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) 39 project(base) 40 41 target_sources(app PRIVATE ${test_sources}) 42 target_include_directories(app PRIVATE include) 43 install(FILES ${APPLICATION_BINARY_DIR}/zephyr/${KERNEL_EXE_NAME} 44 DESTINATION bin/ 45 PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ 46 WORLD_EXECUTE WORLD_READ 47 ) 48endif() 49