xref: /aosp_15_r20/external/sandboxed-api/sandboxed_api/examples/sum/CMakeLists.txt (revision ec63e07ab9515d95e79c211197c445ef84cefa6a)
1# Copyright 2019 Google LLC
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     https://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15# sandboxed_api/examples/sum/lib:sum_params_proto
16sapi_protobuf_generate_cpp(_sapi_sum_params_pb_cc _sapi_sum_params_pb_h
17  sum_params.proto
18)
19# Object library to avoid having to use -Wl,--whole-archive. This simulates
20# Bazel's alwayslink=1.
21add_library(sapi_sum_params_proto OBJECT
22  ${_sapi_sum_params_pb_cc}
23  ${_sapi_sum_params_pb_h}
24)
25add_library(sapi::sum_params_proto ALIAS sapi_sum_params_proto)
26target_include_directories(sapi_sum_params_proto PUBLIC
27  ${Protobuf_INCLUDE_DIRS}
28)
29
30# sandboxed_api/examples/sum/lib:sum
31add_library(sapi_sum STATIC
32  sum.c
33  sum_cpp.cc
34)
35add_library(sapi::sum ALIAS sapi_sum)
36add_dependencies(sapi_sum
37  sapi::sum_params_proto
38)
39target_link_libraries(sapi_sum
40  PRIVATE $<TARGET_OBJECTS:sapi_sum_params_proto>
41          absl::log
42          sapi::base
43  PUBLIC protobuf::libprotobuf
44)
45
46# sandboxed_api/examples/sum/lib:sum-sapi
47add_sapi_library(sum-sapi
48  FUNCTIONS sum
49            sums
50            addf
51            sub
52            mul
53            divs
54            muld
55            crash
56            violate
57            sumarr
58            testptr
59            read_int
60            sleep_for_sec
61            sumproto
62  INPUTS sum.c
63         sum_cpp.cc
64  LIBRARY sapi_sum
65  LIBRARY_NAME Sum
66  NAMESPACE ""
67)
68add_library(sapi::sum_sapi ALIAS sum-sapi)
69target_link_libraries(sum-sapi PRIVATE
70  $<TARGET_OBJECTS:sapi_sum_params_proto>
71  sapi::base
72)
73
74# sandboxed_api/examples/sum:main_sum
75add_executable(sapi_main_sum
76  main_sum.cc
77)
78set_target_properties(sapi_main_sum PROPERTIES OUTPUT_NAME main_sum)
79add_executable(sapi::main_sum ALIAS sapi_main_sum)
80target_link_libraries(sapi_main_sum PRIVATE
81  absl::core_headers
82  absl::log
83  absl::log_initialize
84  absl::flags_parse
85  absl::status
86  absl::statusor
87  absl::strings
88  sapi::base
89  sapi::sapi
90  sapi::status
91  sapi::sum_sapi
92  sapi::vars
93)
94