blob: 99c58cdea648adc2bdc20581b12acaf60a77c1ed [file] [log] [blame]
#
# Copyright (c) 2019, The OpenThread Authors.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. Neither the name of the copyright holder nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
add_library(openthread-ftd)
add_library(openthread-mtd)
add_library(openthread-radio)
target_compile_definitions(openthread-ftd PRIVATE
${OT_PRIVATE_DEFINES}
OPENTHREAD_FTD=1
)
target_compile_definitions(openthread-mtd PRIVATE
${OT_PRIVATE_DEFINES}
OPENTHREAD_MTD=1
)
target_compile_definitions(openthread-radio PRIVATE
${OT_PRIVATE_DEFINES}
OPENTHREAD_RADIO=1
)
set(COMMON_INCLUDES
${OT_PRIVATE_INCLUDES}
${PROJECT_SOURCE_DIR}/src/core
)
set(COMMON_SOURCES
api/border_router_api.cpp
api/channel_manager_api.cpp
api/channel_monitor_api.cpp
api/child_supervision_api.cpp
api/coap_api.cpp
api/coap_secure_api.cpp
api/commissioner_api.cpp
api/crypto_api.cpp
api/dataset_api.cpp
api/dataset_ftd_api.cpp
api/diags_api.cpp
api/dns_api.cpp
api/entropy_api.cpp
api/heap_api.cpp
api/icmp6_api.cpp
api/instance_api.cpp
api/ip6_api.cpp
api/jam_detection_api.cpp
api/joiner_api.cpp
api/link_api.cpp
api/link_raw_api.cpp
api/logging_api.cpp
api/message_api.cpp
api/netdata_api.cpp
api/network_time_api.cpp
api/random_crypto_api.cpp
api/random_noncrypto_api.cpp
api/server_api.cpp
api/sntp_api.cpp
api/tasklet_api.cpp
api/thread_api.cpp
api/thread_ftd_api.cpp
api/udp_api.cpp
coap/coap.cpp
coap/coap_message.cpp
coap/coap_secure.cpp
common/crc16.cpp
common/instance.cpp
common/logging.cpp
common/message.cpp
common/notifier.cpp
common/random_manager.cpp
common/settings.cpp
common/string.cpp
common/tasklet.cpp
common/timer.cpp
common/tlvs.cpp
common/trickle_timer.cpp
crypto/aes_ccm.cpp
crypto/aes_ecb.cpp
crypto/ecdsa.cpp
crypto/hmac_sha256.cpp
crypto/mbedtls.cpp
crypto/pbkdf2_cmac.cpp
crypto/sha256.cpp
diags/factory_diags.cpp
mac/channel_mask.cpp
mac/data_poll_handler.cpp
mac/data_poll_sender.cpp
mac/link_raw.cpp
mac/mac.cpp
mac/mac_filter.cpp
mac/mac_frame.cpp
mac/mac_types.cpp
mac/sub_mac.cpp
mac/sub_mac_callbacks.cpp
meshcop/announce_begin_client.cpp
meshcop/border_agent.cpp
meshcop/commissioner.cpp
meshcop/dataset.cpp
meshcop/dataset_local.cpp
meshcop/dataset_manager.cpp
meshcop/dataset_manager_ftd.cpp
meshcop/dtls.cpp
meshcop/energy_scan_client.cpp
meshcop/joiner.cpp
meshcop/joiner_router.cpp
meshcop/leader.cpp
meshcop/meshcop.cpp
meshcop/meshcop_tlvs.cpp
meshcop/panid_query_client.cpp
meshcop/timestamp.cpp
net/dhcp6_client.cpp
net/dhcp6_server.cpp
net/dns_client.cpp
net/icmp6.cpp
net/ip6.cpp
net/ip6_address.cpp
net/ip6_filter.cpp
net/ip6_headers.cpp
net/ip6_mpl.cpp
net/netif.cpp
net/sntp_client.cpp
net/udp6.cpp
radio/radio_callbacks.cpp
radio/radio_platform.cpp
thread/address_resolver.cpp
thread/announce_begin_server.cpp
thread/announce_sender.cpp
thread/child_table.cpp
thread/device_mode.cpp
thread/energy_scan_server.cpp
thread/indirect_sender.cpp
thread/key_manager.cpp
thread/link_quality.cpp
thread/lowpan.cpp
thread/mesh_forwarder.cpp
thread/mesh_forwarder_ftd.cpp
thread/mesh_forwarder_mtd.cpp
thread/mle.cpp
thread/mle_router.cpp
thread/network_data.cpp
thread/network_data_leader.cpp
thread/network_data_leader_ftd.cpp
thread/network_data_local.cpp
thread/network_diagnostic.cpp
thread/panid_query_server.cpp
thread/router_table.cpp
thread/src_match_controller.cpp
thread/thread_netif.cpp
thread/time_sync_service.cpp
thread/topology.cpp
utils/channel_manager.cpp
utils/channel_monitor.cpp
utils/child_supervision.cpp
utils/heap.cpp
utils/jam_detector.cpp
utils/parse_cmdline.cpp
utils/slaac_address.cpp
)
target_include_directories(openthread-ftd PUBLIC ${OT_PUBLIC_INCLUDES} PRIVATE ${COMMON_INCLUDES})
target_include_directories(openthread-mtd PUBLIC ${OT_PUBLIC_INCLUDES} PRIVATE ${COMMON_INCLUDES})
target_include_directories(openthread-radio PUBLIC ${OT_PUBLIC_INCLUDES} PRIVATE ${COMMON_INCLUDES})
target_sources(openthread-ftd PRIVATE ${COMMON_SOURCES})
target_sources(openthread-mtd PRIVATE ${COMMON_SOURCES})
target_sources(openthread-radio PRIVATE
api/diags_api.cpp
api/instance_api.cpp
api/link_raw_api.cpp
api/logging_api.cpp
api/random_noncrypto_api.cpp
api/tasklet_api.cpp
common/instance.cpp
common/logging.cpp
common/random_manager.cpp
common/string.cpp
common/tasklet.cpp
common/timer.cpp
diags/factory_diags.cpp
mac/link_raw.cpp
mac/mac_frame.cpp
mac/mac_types.cpp
mac/sub_mac.cpp
mac/sub_mac_callbacks.cpp
radio/radio_callbacks.cpp
radio/radio_platform.cpp
thread/link_quality.cpp
utils/parse_cmdline.cpp
)