xref: /aosp_15_r20/tools/netsim/proto/CMakeLists.txt (revision cf78ab8cffb8fc9207af348f23af247fb04370a6)
1*cf78ab8cSAndroid Build Coastguard Worker# Copyright 2022 The Android Open Source Project
2*cf78ab8cSAndroid Build Coastguard Worker#
3*cf78ab8cSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
4*cf78ab8cSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
5*cf78ab8cSAndroid Build Coastguard Worker# You may obtain a copy of the License at
6*cf78ab8cSAndroid Build Coastguard Worker#
7*cf78ab8cSAndroid Build Coastguard Worker#      http://www.apache.org/licenses/LICENSE-2.0
8*cf78ab8cSAndroid Build Coastguard Worker#
9*cf78ab8cSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*cf78ab8cSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
11*cf78ab8cSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*cf78ab8cSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
13*cf78ab8cSAndroid Build Coastguard Worker# limitations under the License.
14*cf78ab8cSAndroid Build Coastguard Worker
15*cf78ab8cSAndroid Build Coastguard Workercmake_minimum_required(VERSION 3.5)
16*cf78ab8cSAndroid Build Coastguard Worker
17*cf78ab8cSAndroid Build Coastguard Workerset(ROOTCANAL_PROTO_DIR
18*cf78ab8cSAndroid Build Coastguard Worker    ${AOSP_ROOT}/packages/modules/Bluetooth/tools/rootcanal/proto)
19*cf78ab8cSAndroid Build Coastguard Worker
20*cf78ab8cSAndroid Build Coastguard Worker# For netsimd (netsimd-proto-lib)
21*cf78ab8cSAndroid Build Coastguard Workerprotobuf_generate_grpc_cpp(
22*cf78ab8cSAndroid Build Coastguard Worker  SOURCE_DIR ${ROOTCANAL_PROTO_DIR} SOURCES rootcanal/configuration.proto
23*cf78ab8cSAndroid Build Coastguard Worker  OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} GENERATED ROOTCANAL_PROTO_SRC)
24*cf78ab8cSAndroid Build Coastguard Worker
25*cf78ab8cSAndroid Build Coastguard Worker# For netsimd (netsimd-proto-lib)
26*cf78ab8cSAndroid Build Coastguard Workerprotobuf_generate_grpc_cpp(
27*cf78ab8cSAndroid Build Coastguard Worker  SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}
28*cf78ab8cSAndroid Build Coastguard Worker  SOURCES netsim/common.proto netsim/config.proto netsim/hci_packet.proto
29*cf78ab8cSAndroid Build Coastguard Worker          netsim/model.proto netsim/startup.proto netsim/stats.proto
30*cf78ab8cSAndroid Build Coastguard Worker  INCLUDES ${ROOTCANAL_PROTO_DIR}
31*cf78ab8cSAndroid Build Coastguard Worker  OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}
32*cf78ab8cSAndroid Build Coastguard Worker  GENERATED NETSIM_PROTO_SRC)
33*cf78ab8cSAndroid Build Coastguard Worker
34*cf78ab8cSAndroid Build Coastguard Workerandroid_add_library(
35*cf78ab8cSAndroid Build Coastguard Worker  TARGET netsimd-proto-lib LICENSE Apache-2.0 SRC ${NETSIM_PROTO_SRC}
36*cf78ab8cSAndroid Build Coastguard Worker                                                  ${ROOTCANAL_PROTO_SRC}
37*cf78ab8cSAndroid Build Coastguard Worker  DEPS grpc++ protobuf::libprotobuf)
38*cf78ab8cSAndroid Build Coastguard Worker
39*cf78ab8cSAndroid Build Coastguard Workertarget_include_directories(netsimd-proto-lib PRIVATE ${PROTOBUF_INCLUDE_DIR} ..
40*cf78ab8cSAndroid Build Coastguard Worker                           PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
41*cf78ab8cSAndroid Build Coastguard Worker
42*cf78ab8cSAndroid Build Coastguard Worker# For netsim-cli (netsim-cli-proto-lib)
43*cf78ab8cSAndroid Build Coastguard Workerprotobuf_generate_grpc_cpp(
44*cf78ab8cSAndroid Build Coastguard Worker  SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR} SOURCES netsim/frontend.proto
45*cf78ab8cSAndroid Build Coastguard Worker  INCLUDES ${ROOTCANAL_PROTO_DIR} OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}
46*cf78ab8cSAndroid Build Coastguard Worker  GENERATED NETSIM_FRONTEND_GRPC_SRC)
47*cf78ab8cSAndroid Build Coastguard Worker
48*cf78ab8cSAndroid Build Coastguard Workerandroid_add_library(
49*cf78ab8cSAndroid Build Coastguard Worker  TARGET netsim-cli-proto-lib LICENSE Apache-2.0 SRC ${NETSIM_FRONTEND_GRPC_SRC}
50*cf78ab8cSAndroid Build Coastguard Worker  DEPS grpc++ netsimd-proto-lib protobuf::libprotobuf)
51*cf78ab8cSAndroid Build Coastguard Worker
52*cf78ab8cSAndroid Build Coastguard Workertarget_include_directories(
53*cf78ab8cSAndroid Build Coastguard Worker  netsim-cli-proto-lib PRIVATE ${PROTOBUF_INCLUDE_DIR} ..
54*cf78ab8cSAndroid Build Coastguard Worker  PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
55*cf78ab8cSAndroid Build Coastguard Worker
56*cf78ab8cSAndroid Build Coastguard Worker# For network packet streamer client (packet-streamer-proto-lib)
57*cf78ab8cSAndroid Build Coastguard Workerprotobuf_generate_grpc_cpp(
58*cf78ab8cSAndroid Build Coastguard Worker  SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR} SOURCES netsim/packet_streamer.proto
59*cf78ab8cSAndroid Build Coastguard Worker  OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} INCLUDES ${ROOTCANAL_PROTO_DIR}
60*cf78ab8cSAndroid Build Coastguard Worker  GENERATED NETSIM_PACKET_STREAMER_GRPC_SRC)
61*cf78ab8cSAndroid Build Coastguard Worker
62*cf78ab8cSAndroid Build Coastguard Workerandroid_add_library(
63*cf78ab8cSAndroid Build Coastguard Worker  TARGET packet-streamer-proto-lib LICENSE Apache-2.0
64*cf78ab8cSAndroid Build Coastguard Worker  SRC ${NETSIM_PACKET_STREAMER_GRPC_SRC} DEPS grpc++ netsimd-proto-lib
65*cf78ab8cSAndroid Build Coastguard Worker                                              protobuf::libprotobuf)
66*cf78ab8cSAndroid Build Coastguard Worker
67*cf78ab8cSAndroid Build Coastguard Workertarget_include_directories(
68*cf78ab8cSAndroid Build Coastguard Worker  packet-streamer-proto-lib PRIVATE ${PROTOBUF_INCLUDE_DIR} ..
69*cf78ab8cSAndroid Build Coastguard Worker  PUBLIC ${CMAKE_CURRENT_BINARY_DIR})
70*cf78ab8cSAndroid Build Coastguard Worker
71*cf78ab8cSAndroid Build Coastguard Workerandroid_license(TARGET "packet-streamer-proto-lib" LIBNAME None SPDX None
72*cf78ab8cSAndroid Build Coastguard Worker                LICENSE None LOCAL None)
73*cf78ab8cSAndroid Build Coastguard Workerandroid_license(TARGET "netsim-cli-proto-lib" LIBNAME None SPDX None
74*cf78ab8cSAndroid Build Coastguard Worker                LICENSE None LOCAL None)
75