88 lines
2.6 KiB
CMake
88 lines
2.6 KiB
CMake
#
|
|
# Copyright 2024 NXP
|
|
#
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
#
|
|
|
|
# Generate ERPC shim code and add sources and includes to app target.
|
|
# If APP_TYPE is client, also add gtest. Link the config directory to erpc a rpmsg_lite.
|
|
|
|
set_ifndef(TEST_ERPC_FILES
|
|
${TEST_ERPC_OUT_DIR}/${ERPC_NAME_APP}_interface.cpp
|
|
${TEST_ERPC_OUT_DIR}/${ERPC_NAME}_unit_test_common_interface.cpp
|
|
|
|
${TEST_ERPC_OUT_DIR}/${ERPC_NAME_APP}_${APP_TYPE}.cpp
|
|
${TEST_ERPC_OUT_DIR}/${ERPC_NAME}_unit_test_common_${APP_TYPE}.cpp
|
|
|
|
${TEST_ERPC_OUT_DIR}/c_${ERPC_NAME_APP}_${APP_TYPE}.cpp
|
|
${TEST_ERPC_OUT_DIR}/c_${ERPC_NAME}_unit_test_common_${APP_TYPE}.cpp
|
|
)
|
|
|
|
if(GENERATE_ERPC_IDL_FILES)
|
|
add_custom_command(
|
|
OUTPUT ${TEST_ERPC_FILES}
|
|
COMMAND erpcgen -g c -o ${ERPC_OUT_ROOT_DIR} ${IDL_FILE} # TODO: add builded erpcgen if not found in path
|
|
WORKING_DIRECTORY ${TEST_SOURCE_DIR}
|
|
DEPENDS ${IDL_FILE}
|
|
COMMENT "Generating eRPC files from: ${IDL_FILE} to ${ERPC_OUT_ROOT_DIR}"
|
|
)
|
|
endif()
|
|
|
|
set_ifndef(TEST_SOURCES
|
|
${TEST_COMMON_DIR}/unit_test_${TRANSPORT}_${APP_TYPE}.cpp
|
|
${TEST_SOURCE_DIR}/${TEST_NAME}_${APP_TYPE}_impl.cpp
|
|
|
|
${TEST_ERPC_FILES}
|
|
${TEST_EXT_SOURCES}
|
|
)
|
|
|
|
set_ifndef(TEST_INCLUDES
|
|
${TEST_ERPC_OUT_DIR}
|
|
${TEST_COMMON_DIR}
|
|
${TEST_SOURCE_DIR}
|
|
${CONFIG_DIR}/
|
|
${TEST_EXT_INCLUDES}
|
|
)
|
|
|
|
target_include_directories(app PRIVATE ${TEST_INCLUDES})
|
|
target_sources(app PRIVATE ${TEST_SOURCES})
|
|
|
|
# Include gtest
|
|
if(APP_TYPE STREQUAL "client")
|
|
target_sources(app
|
|
PRIVATE ${TEST_COMMON_DIR}/gtest/gtest.cpp
|
|
PRIVATE ${TEST_COMMON_DIR}/gtest/gtimer.c
|
|
)
|
|
|
|
target_include_directories(app PUBLIC ${TEST_COMMON_DIR}/gtest/)
|
|
|
|
target_compile_definitions(app PUBLIC
|
|
GTEST_OS_BARE_METAL=1
|
|
GTEST_HAS_CLONE=0
|
|
GTEST_HAS_EXCEPTIONS=0
|
|
GTEST_HAS_GLOBAL_STRING=0
|
|
GTEST_HAS_GLOBAL_WSTRING=0
|
|
GTEST_HAS_POSIX_RE=0
|
|
GTEST_HAS_PTHREAD=0
|
|
GTEST_HAS_RTTI=0
|
|
GTEST_HAS_STD_WSTRING=1
|
|
GTEST_HAS_TR1_TUPLE=0
|
|
GTEST_HAS_SEH=0
|
|
GTEST_HAS_STREAM_REDIRECTION=0
|
|
GTEST_USE_OWN_TR1_TUPLE=1
|
|
GTEST_LANG_CXX11=1
|
|
GTEST_LINKED_AS_SHARED_LIBRARY=0
|
|
GTEST_CREATE_SHARED_LIBRARY=0
|
|
UNITY_DUMP_RESULTS=1
|
|
)
|
|
endif()
|
|
|
|
# Also include this directory into rpmsg_lite library because of project specific include rpsmg_config.h
|
|
if(CONFIG_RPMSGLITE)
|
|
target_include_directories(rpmsg_lite PRIVATE ${CONFIG_DIR})
|
|
endif()
|
|
|
|
# Same for erpc library and erpc_config.h
|
|
if(CONFIG_ERPC)
|
|
target_include_directories(erpc PRIVATE ${CONFIG_DIR})
|
|
endif() |