blob: 3caf2b260f1f26fa4d43ef873013aeff01ee1f51 [file] [log] [blame]
Summer Qin153f3df2022-11-17 15:51:02 +08001#-------------------------------------------------------------------------------
2# Copyright (c) 2023, Arm Limited. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8cmake_minimum_required(VERSION 3.15)
9
10project("ERPC Host" LANGUAGES CXX C)
11set(CMAKE_CXX_FLAGS "-m32")
12set(CMAKE_C_FLAGS "-m32")
13
14add_executable(erpc_main)
15
16add_subdirectory(../client client)
17
18if (NOT DEFINED ERPC_TRANSPORT)
19 message(FATAL_ERROR "Please select ERPC_TRANSPORT, currently only UART and TCP are supported!")
20endif()
21
22if (ERPC_TRANSPORT STREQUAL "UART")
23 if (NOT DEFINED PORT_NAME)
24 message(FATAL_ERROR "Please provide PORT_NAME!")
25 endif()
26elseif (ERPC_TRANSPORT STREQUAL "TCP")
27 if((NOT DEFINED ERPC_HOST) OR (NOT DEFINED ERPC_PORT))
28 message(FATAL_ERROR "Please provide ERPC_HOST and ERPC_PORT!")
29 endif()
30else()
31 message(FATAL_ERROR "Please provided supported transportation type (UART and TCP)!")
32endif()
33
34target_sources(erpc_main
35 PRIVATE
36 main.c
37 ${ERPC_REPO_PATH}/erpc_c/port/erpc_threading_pthreads.cpp
38 $<$<STREQUAL:${ERPC_TRANSPORT},UART>:${ERPC_REPO_PATH}/erpc_c/setup/erpc_setup_serial.cpp>
39 $<$<STREQUAL:${ERPC_TRANSPORT},UART>:${ERPC_REPO_PATH}/erpc_c/transports/erpc_serial_transport.cpp>
40 $<$<STREQUAL:${ERPC_TRANSPORT},TCP>:${ERPC_REPO_PATH}/erpc_c/setup/erpc_setup_tcp.cpp>
41 $<$<STREQUAL:${ERPC_TRANSPORT},TCP>:${ERPC_REPO_PATH}/erpc_c/transports/erpc_tcp_transport.cpp>
42)
43
44target_link_libraries(erpc_main
45 PRIVATE
46 erpc_client
47 pthread
48)
49
50target_compile_definitions(erpc_main
51 PRIVATE
52 $<$<STREQUAL:${ERPC_TRANSPORT},UART>:ERPC_TRANSPORT_UART>
53 $<$<STREQUAL:${ERPC_TRANSPORT},TCP>:ERPC_TRANSPORT_TCP>
54 $<$<AND:$<STREQUAL:${ERPC_TRANSPORT},UART>,$<BOOL:${PORT_NAME}>>:PORT_NAME="${PORT_NAME}">
55 $<$<AND:$<STREQUAL:${ERPC_TRANSPORT},TCP>,$<BOOL:${ERPC_HOST}>>:ERPC_HOST="${ERPC_HOST}">
56 $<$<AND:$<STREQUAL:${ERPC_TRANSPORT},TCP>,$<BOOL:${ERPC_PORT}>>:ERPC_PORT=${ERPC_PORT}>
57)