1*4a64e381SAndroid Build Coastguard Worker# 2*4a64e381SAndroid Build Coastguard Worker# Copyright (c) 2020-2021, The OpenThread Authors. 3*4a64e381SAndroid Build Coastguard Worker# All rights reserved. 4*4a64e381SAndroid Build Coastguard Worker# 5*4a64e381SAndroid Build Coastguard Worker# Redistribution and use in source and binary forms, with or without 6*4a64e381SAndroid Build Coastguard Worker# modification, are permitted provided that the following conditions are met: 7*4a64e381SAndroid Build Coastguard Worker# 1. Redistributions of source code must retain the above copyright 8*4a64e381SAndroid Build Coastguard Worker# notice, this list of conditions and the following disclaimer. 9*4a64e381SAndroid Build Coastguard Worker# 2. Redistributions in binary form must reproduce the above copyright 10*4a64e381SAndroid Build Coastguard Worker# notice, this list of conditions and the following disclaimer in the 11*4a64e381SAndroid Build Coastguard Worker# documentation and/or other materials provided with the distribution. 12*4a64e381SAndroid Build Coastguard Worker# 3. Neither the name of the copyright holder nor the 13*4a64e381SAndroid Build Coastguard Worker# names of its contributors may be used to endorse or promote products 14*4a64e381SAndroid Build Coastguard Worker# derived from this software without specific prior written permission. 15*4a64e381SAndroid Build Coastguard Worker# 16*4a64e381SAndroid Build Coastguard Worker# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17*4a64e381SAndroid Build Coastguard Worker# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18*4a64e381SAndroid Build Coastguard Worker# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19*4a64e381SAndroid Build Coastguard Worker# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 20*4a64e381SAndroid Build Coastguard Worker# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21*4a64e381SAndroid Build Coastguard Worker# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22*4a64e381SAndroid Build Coastguard Worker# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23*4a64e381SAndroid Build Coastguard Worker# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24*4a64e381SAndroid Build Coastguard Worker# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25*4a64e381SAndroid Build Coastguard Worker# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26*4a64e381SAndroid Build Coastguard Worker# POSSIBILITY OF SUCH DAMAGE. 27*4a64e381SAndroid Build Coastguard Worker# 28*4a64e381SAndroid Build Coastguard Worker 29*4a64e381SAndroid Build Coastguard Workeradd_executable(otbr-agent 30*4a64e381SAndroid Build Coastguard Worker application.cpp 31*4a64e381SAndroid Build Coastguard Worker main.cpp 32*4a64e381SAndroid Build Coastguard Worker uris.hpp 33*4a64e381SAndroid Build Coastguard Worker vendor.hpp 34*4a64e381SAndroid Build Coastguard Worker) 35*4a64e381SAndroid Build Coastguard Worker 36*4a64e381SAndroid Build Coastguard Workertarget_link_libraries(otbr-agent PRIVATE 37*4a64e381SAndroid Build Coastguard Worker $<$<BOOL:${OTBR_BORDER_AGENT}>:otbr-border-agent> 38*4a64e381SAndroid Build Coastguard Worker $<$<BOOL:${OTBR_BACKBONE_ROUTER}>:otbr-backbone-router> 39*4a64e381SAndroid Build Coastguard Worker $<$<BOOL:${OTBR_DBUS}>:otbr-dbus-server> 40*4a64e381SAndroid Build Coastguard Worker $<$<BOOL:${OTBR_MDNS}>:otbr-mdns> 41*4a64e381SAndroid Build Coastguard Worker $<$<BOOL:${OTBR_OPENWRT}>:otbr-ubus> 42*4a64e381SAndroid Build Coastguard Worker $<$<BOOL:${OTBR_REST}>:otbr-rest> 43*4a64e381SAndroid Build Coastguard Worker openthread-cli-ftd 44*4a64e381SAndroid Build Coastguard Worker openthread-ftd 45*4a64e381SAndroid Build Coastguard Worker openthread-spinel-rcp 46*4a64e381SAndroid Build Coastguard Worker openthread-radio-spinel 47*4a64e381SAndroid Build Coastguard Worker openthread-hdlc 48*4a64e381SAndroid Build Coastguard Worker openthread-posix 49*4a64e381SAndroid Build Coastguard Worker otbr-sdp-proxy 50*4a64e381SAndroid Build Coastguard Worker otbr-ncp 51*4a64e381SAndroid Build Coastguard Worker otbr-common 52*4a64e381SAndroid Build Coastguard Worker otbr-utils 53*4a64e381SAndroid Build Coastguard Worker) 54*4a64e381SAndroid Build Coastguard Worker 55*4a64e381SAndroid Build Coastguard Workeradd_dependencies(otbr-agent ot-ctl print-ot-config otbr-sdp-proxy otbr-utils otbr-ncp) 56*4a64e381SAndroid Build Coastguard Workerif (OTBR_BORDER_AGENT) 57*4a64e381SAndroid Build Coastguard Worker add_dependencies(otbr-agent otbr-border-agent) 58*4a64e381SAndroid Build Coastguard Workerendif() 59*4a64e381SAndroid Build Coastguard Worker 60*4a64e381SAndroid Build Coastguard Workerinstall(TARGETS otbr-agent DESTINATION sbin) 61*4a64e381SAndroid Build Coastguard Worker 62*4a64e381SAndroid Build Coastguard Workerif(CMAKE_VERSION VERSION_LESS 3.13) 63*4a64e381SAndroid Build Coastguard Worker install(PROGRAMS $<TARGET_FILE:ot-ctl> DESTINATION sbin) 64*4a64e381SAndroid Build Coastguard Workerelse() 65*4a64e381SAndroid Build Coastguard Worker install(TARGETS ot-ctl DESTINATION sbin) 66*4a64e381SAndroid Build Coastguard Workerendif() 67*4a64e381SAndroid Build Coastguard Worker 68*4a64e381SAndroid Build Coastguard Workerset(OTBR_AGENT_USER "root" CACHE STRING "set the username running otbr-agent service") 69*4a64e381SAndroid Build Coastguard Workerset(OTBR_AGENT_GROUP "root" CACHE STRING "set the group using otbr-agent client") 70*4a64e381SAndroid Build Coastguard Worker 71*4a64e381SAndroid Build Coastguard Workerif(OTBR_MDNS STREQUAL "mDNSResponder") 72*4a64e381SAndroid Build Coastguard Worker set(EXEC_START_PRE "ExecStartPre=/usr/sbin/service mdns start\n") 73*4a64e381SAndroid Build Coastguard Workerelseif(OTBR_MDNS STREQUAL "avahi") 74*4a64e381SAndroid Build Coastguard Worker set(EXEC_START_PRE "ExecStartPre=/usr/sbin/service avahi-daemon start\n") 75*4a64e381SAndroid Build Coastguard Workerelse() 76*4a64e381SAndroid Build Coastguard Worker message(WARNING "OTBR_MDNS=\"${OTBR_MDNS}\" is not supported") 77*4a64e381SAndroid Build Coastguard Workerendif() 78*4a64e381SAndroid Build Coastguard Worker 79*4a64e381SAndroid Build Coastguard Workerconfigure_file(openthread-otbr-posix-config.h.in openthread-otbr-posix-config.h) 80*4a64e381SAndroid Build Coastguard Worker 81*4a64e381SAndroid Build Coastguard Workerif(OTBR_DBUS) 82*4a64e381SAndroid Build Coastguard Worker configure_file(otbr-agent.conf.in otbr-agent.conf) 83*4a64e381SAndroid Build Coastguard Worker install(FILES ${CMAKE_CURRENT_BINARY_DIR}/otbr-agent.conf 84*4a64e381SAndroid Build Coastguard Worker DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/dbus-1/system.d) 85*4a64e381SAndroid Build Coastguard Workerendif() 86*4a64e381SAndroid Build Coastguard Worker 87*4a64e381SAndroid Build Coastguard Workerif(OTBR_SYSTEMD_UNIT_DIR) 88*4a64e381SAndroid Build Coastguard Worker configure_file(otbr-agent.service.in otbr-agent.service) 89*4a64e381SAndroid Build Coastguard Worker install(FILES ${CMAKE_CURRENT_BINARY_DIR}/otbr-agent.service 90*4a64e381SAndroid Build Coastguard Worker DESTINATION ${OTBR_SYSTEMD_UNIT_DIR} 91*4a64e381SAndroid Build Coastguard Worker ) 92*4a64e381SAndroid Build Coastguard Workerelseif(NOT OTBR_OPENWRT) 93*4a64e381SAndroid Build Coastguard Worker configure_file(otbr-agent.init.in otbr-agent.init) 94*4a64e381SAndroid Build Coastguard Worker install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/otbr-agent.init 95*4a64e381SAndroid Build Coastguard Worker DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/init.d 96*4a64e381SAndroid Build Coastguard Worker RENAME otbr-agent) 97*4a64e381SAndroid Build Coastguard Workerendif() 98*4a64e381SAndroid Build Coastguard Worker 99*4a64e381SAndroid Build Coastguard Workerset(OTBR_NO_AUTO_ATTACH "0" CACHE STRING "Set to 1 to disable auto Thread attach") 100*4a64e381SAndroid Build Coastguard Worker 101*4a64e381SAndroid Build Coastguard Workerconfigure_file(otbr-agent.default.in otbr-agent.default) 102*4a64e381SAndroid Build Coastguard Workerinstall(FILES ${CMAKE_CURRENT_BINARY_DIR}/otbr-agent.default 103*4a64e381SAndroid Build Coastguard Worker DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/default 104*4a64e381SAndroid Build Coastguard Worker RENAME otbr-agent 105*4a64e381SAndroid Build Coastguard Worker) 106*4a64e381SAndroid Build Coastguard Worker 107*4a64e381SAndroid Build Coastguard Workerpkg_check_modules(LIBSYSTEMD libsystemd) 108*4a64e381SAndroid Build Coastguard Workerif(LIBSYSTEMD_FOUND) 109*4a64e381SAndroid Build Coastguard Worker target_compile_definitions(otbr-config INTERFACE "HAVE_LIBSYSTEMD=1") 110*4a64e381SAndroid Build Coastguard Worker target_link_libraries(otbr-agent PUBLIC ${LIBSYSTEMD_LIBRARIES}) 111*4a64e381SAndroid Build Coastguard Workerendif() 112