1# SPDX-License-Identifier: Apache-2.0
2
3cmake_minimum_required(VERSION 3.20.0)
4
5find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
6project(sockets_echo_server)
7
8if(CONFIG_NET_SOCKETS_SOCKOPT_TLS AND
9   CONFIG_MBEDTLS_KEY_EXCHANGE_PSK_ENABLED AND
10   (CONFIG_NET_SAMPLE_PSK_HEADER_FILE STREQUAL "dummy_psk.h"))
11  add_custom_target(development_psk
12    COMMAND ${CMAKE_COMMAND} -E echo "----------------------------------------------------------"
13    COMMAND ${CMAKE_COMMAND} -E echo "--- WARNING: Using dummy PSK! Only suitable for        ---"
14    COMMAND ${CMAKE_COMMAND} -E echo "--- development. Set NET_SAMPLE_PSK_HEADER_FILE to use ---"
15    COMMAND ${CMAKE_COMMAND} -E echo "--- own pre-shared key.                                ---"
16    COMMAND ${CMAKE_COMMAND} -E echo "----------------------------------------------------------"
17  )
18  add_dependencies(app development_psk)
19endif()
20
21target_sources(                     app PRIVATE src/echo-server.c)
22target_sources_ifdef(CONFIG_NET_UDP app PRIVATE src/udp.c)
23target_sources_ifdef(CONFIG_NET_TCP app PRIVATE src/tcp.c)
24
25if (CONFIG_USB_DEVICE_STACK_NEXT)
26  target_sources(app PRIVATE src/usb.c)
27  include(${ZEPHYR_BASE}/samples/subsys/usb/common/common.cmake)
28endif()
29
30include(${ZEPHYR_BASE}/samples/net/common/common.cmake)
31
32set(gen_dir ${ZEPHYR_BINARY_DIR}/include/generated/)
33
34foreach(inc_file
35	ca.der
36	server.der
37	server_privkey.der
38	echo-apps-cert.der
39	echo-apps-key.der
40    )
41  generate_inc_file_for_target(
42    app
43    src/${inc_file}
44    ${gen_dir}/${inc_file}.inc
45    )
46endforeach()
47
48if(CONFIG_NET_SAMPLE_WEBSOCKET_CONSOLE)
49  zephyr_linker_sources(SECTIONS src/ws_console/sections-rom.ld)
50  target_sources(app PRIVATE src/ws_console/ws.c)
51  generate_inc_file_for_target(app src/ws_console/index.html ${gen_dir}/index.html.gz.inc --gzip)
52  generate_inc_file_for_target(app src/ws_console/style.css ${gen_dir}/style.css.gz.inc --gzip)
53  generate_inc_file_for_target(app src/ws_console/favicon-16x16.png ${gen_dir}/favicon-16x16.png.gz.inc --gzip)
54endif()
55if(CONFIG_NET_SAMPLE_HTTPS_SERVICE)
56  zephyr_linker_section_ifdef(CONFIG_NET_SAMPLE_WEBSOCKET_CONSOLE NAME
57			      http_resource_desc_wss_console_service
58			      KVMA RAM_REGION GROUP RODATA_REGION)
59endif()
60zephyr_linker_section_ifdef(CONFIG_NET_SAMPLE_WEBSOCKET_CONSOLE NAME
61			    http_resource_desc_ws_console_service
62			    KVMA RAM_REGION GROUP RODATA_REGION)
63