Using find_package to locate Zephyr.
Old behavior was to use $ENV{ZEPHYR_BASE} for inclusion of boiler plate
code.
Whenever an automatic run of CMake happend by the build system / IDE
then it was required that ZEPHYR_BASE was defined.
Using ZEPHYR_BASE only to locate the Zephyr package allows CMake to
cache the base variable and thus allowing subsequent invocation even
if ZEPHYR_BASE is not set in the environment.
It also removes the risk of strange build results if a user switchs
between different Zephyr based project folders and forgetting to reset
ZEPHYR_BASE before running ninja / make.
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
34 lines
1.3 KiB
CMake
34 lines
1.3 KiB
CMake
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
cmake_minimum_required(VERSION 3.13.1)
|
|
|
|
find_package(Zephyr HINTS $ENV{ZEPHYR_BASE})
|
|
project(sockets_echo_client)
|
|
|
|
if(CONFIG_MBEDTLS_KEY_EXCHANGE_PSK_ENABLED AND
|
|
(CONFIG_NET_SAMPLE_PSK_HEADER_FILE STREQUAL "dummy_psk.h"))
|
|
add_custom_target(development_psk
|
|
COMMAND ${CMAKE_COMMAND} -E echo "----------------------------------------------------------"
|
|
COMMAND ${CMAKE_COMMAND} -E echo "--- WARNING: Using dummy PSK! Only suitable for ---"
|
|
COMMAND ${CMAKE_COMMAND} -E echo "--- development. Set NET_SAMPLE_PSK_HEADER_FILE to use ---"
|
|
COMMAND ${CMAKE_COMMAND} -E echo "--- own pre-shared key. ---"
|
|
COMMAND ${CMAKE_COMMAND} -E echo "----------------------------------------------------------"
|
|
)
|
|
add_dependencies(app development_psk)
|
|
endif()
|
|
|
|
target_sources( app PRIVATE src/echo-client.c)
|
|
target_sources_ifdef(CONFIG_NET_UDP app PRIVATE src/udp.c)
|
|
target_sources_ifdef(CONFIG_NET_TCP app PRIVATE src/tcp.c)
|
|
target_sources_ifdef(CONFIG_NET_VLAN app PRIVATE src/vlan.c)
|
|
|
|
include(${ZEPHYR_BASE}/samples/net/common/common.cmake)
|
|
|
|
set(gen_dir ${ZEPHYR_BINARY_DIR}/include/generated/)
|
|
|
|
generate_inc_file_for_target(
|
|
app
|
|
src/echo-apps-cert.der
|
|
${gen_dir}/echo-apps-cert.der.inc
|
|
)
|