-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathCMakeLists.txt
61 lines (46 loc) · 2.03 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#
# Copyright (C) 2024 Renesas Electronics Corporation.
# Copyright (C) 2024 EPAM Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
cmake_minimum_required(VERSION 3.19)
# ##############################################################################
# Generate gRPC stubs
# ##############################################################################
project(aos_core_api)
# ##############################################################################
# Options
# ##############################################################################
option(WITH_AOS_PROTOCOL "build aos protocol lib" OFF)
option(WITH_IAM_API "build core api iam lib" ON)
option(WITH_SM_API "build core api sm lib" OFF)
message(STATUS)
message(STATUS "${CMAKE_PROJECT_NAME} configuration:")
message(STATUS "WITH_AOS_PROTOCOL = ${WITH_AOS_PROTOCOL}")
message(STATUS "WITH_IAM_API = ${WITH_IAM_API}")
message(STATUS "WITH_SM_API = ${WITH_SM_API}")
# ##############################################################################
# Compiler flags
# ##############################################################################
add_compile_options(-fPIC -Wall -Werror -Wextra -Wpedantic)
set(CMAKE_CXX_STANDARD 17)
# ##############################################################################
# Dependencies
# ##############################################################################
find_package(gRPC CONFIG REQUIRED)
find_package(Protobuf REQUIRED)
set(PROTO_DST_DIR "${CMAKE_CURRENT_BINARY_DIR}/gen")
set(PROTO_SRC_DIR "${CMAKE_CURRENT_LIST_DIR}/proto")
set(GENERATE_EXTENSIONS ".grpc.pb.h" ".grpc.pb.cc")
file(MAKE_DIRECTORY ${PROTO_DST_DIR})
if(CMAKE_CROSSCOMPILING)
find_program(_GRPC_CPP_PLUGIN_EXECUTABLE grpc_cpp_plugin)
else()
set(_GRPC_CPP_PLUGIN_EXECUTABLE $<TARGET_FILE:gRPC::grpc_cpp_plugin>)
endif()
# ##############################################################################
# Targets
# ##############################################################################
add_subdirectory(aosprotocol)
add_subdirectory(proto)