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