1#
2#  Copyright (c) 2020, The OpenThread Authors.
3#  All rights reserved.
4#
5#  Redistribution and use in source and binary forms, with or without
6#  modification, are permitted provided that the following conditions are met:
7#  1. Redistributions of source code must retain the above copyright
8#     notice, this list of conditions and the following disclaimer.
9#  2. Redistributions in binary form must reproduce the above copyright
10#     notice, this list of conditions and the following disclaimer in the
11#     documentation and/or other materials provided with the distribution.
12#  3. Neither the name of the copyright holder nor the
13#     names of its contributors may be used to endorse or promote products
14#     derived from this software without specific prior written permission.
15#
16#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17#  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19#  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20#  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21#  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22#  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23#  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24#  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26#  POSSIBILITY OF SUCH DAMAGE.
27#
28
29add_executable(ot-daemon
30    main.c
31)
32
33target_include_directories(ot-daemon PRIVATE ${COMMON_INCLUDES})
34
35target_compile_options(ot-daemon PRIVATE
36    ${OT_CFLAGS}
37)
38
39target_link_libraries(ot-daemon PRIVATE
40    openthread-cli-ftd
41    openthread-posix
42    openthread-ftd
43    openthread-posix
44    openthread-hdlc
45    openthread-radio-spinel
46    openthread-spinel-rcp
47    ${OT_MBEDTLS}
48    ot-posix-config
49    ot-config-ftd
50    ot-config
51)
52
53if(OT_LINKER_MAP)
54    if("${CMAKE_CXX_COMPILER_ID}" MATCHES "AppleClang")
55        target_link_libraries(ot-daemon PRIVATE -Wl,-map,ot-daemon.map)
56    else()
57        target_link_libraries(ot-daemon PRIVATE -Wl,-Map=ot-daemon.map)
58    endif()
59endif()
60
61add_executable(ot-ctl
62    client.cpp
63)
64
65if (READLINE)
66target_compile_definitions(ot-ctl PRIVATE
67    $<$<BOOL:${READLINE}>:HAVE_LIB$<UPPER_CASE:${OT_READLINE}>=1>)
68endif()
69
70target_compile_options(ot-ctl PRIVATE
71    ${OT_CFLAGS}
72)
73
74target_link_libraries(ot-ctl PRIVATE
75    ${READLINE_LINK_LIBRARIES}
76    ot-posix-config
77    ot-config
78)
79
80if(OT_LINKER_MAP)
81    if("${CMAKE_CXX_COMPILER_ID}" MATCHES "AppleClang")
82        target_link_libraries(ot-ctl PRIVATE -Wl,-map,ot-ctl.map)
83    else()
84        target_link_libraries(ot-ctl PRIVATE -Wl,-Map=ot-ctl.map)
85    endif()
86endif()
87
88target_include_directories(ot-ctl PRIVATE ${COMMON_INCLUDES})
89
90install(TARGETS ot-daemon
91    DESTINATION sbin)
92install(TARGETS ot-ctl
93    DESTINATION bin)
94