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/util:file_base 16add_library(sapi_util_file_base ${SAPI_LIB_TYPE} 17 path.cc 18 path.h 19) 20add_library(sapi::file_base ALIAS sapi_util_file_base) 21target_link_libraries(sapi_util_file_base PRIVATE 22 absl::strings 23 sapi::base 24) 25 26# sandboxed_api/util:file_helpers 27add_library(sapi_util_file_helpers ${SAPI_LIB_TYPE} 28 file_helpers.cc 29 file_helpers.h 30) 31add_library(sapi::file_helpers ALIAS sapi_util_file_helpers) 32target_link_libraries(sapi_util_file_helpers PRIVATE 33 absl::status 34 absl::strings 35 sapi::base 36) 37 38# sandboxed_api/util:fileops 39add_library(sapi_util_fileops ${SAPI_LIB_TYPE} 40 fileops.cc 41 fileops.h 42) 43add_library(sapi::fileops ALIAS sapi_util_fileops) 44target_link_libraries(sapi_util_fileops PRIVATE 45 absl::strings 46 sapi::strerror 47 sapi::base 48) 49 50# sandboxed_api/util:proto_arg 51sapi_protobuf_generate_cpp(_sapi_proto_arg_pb_cc _sapi_proto_arg_pb_h 52 proto_arg.proto 53) 54add_library(sapi_util_proto_arg_proto ${SAPI_LIB_TYPE} 55 ${_sapi_proto_arg_pb_cc} 56 ${_sapi_proto_arg_pb_h} 57) 58add_library(sapi::proto_arg_proto ALIAS sapi_util_proto_arg_proto) 59target_link_libraries(sapi_util_proto_arg_proto PRIVATE 60 protobuf::libprotobuf 61 sapi::base 62) 63 64# sandboxed_api/util:proto_helper 65add_library(sapi_util_proto_helper ${SAPI_LIB_TYPE} 66 proto_helper.cc 67 proto_helper.h 68) 69add_library(sapi::proto_helper ALIAS sapi_util_proto_helper) 70target_link_libraries(sapi_util_proto_helper 71 PRIVATE sapi::base 72 PUBLIC absl::core_headers 73 absl::status 74 absl::statusor 75 sapi::proto_arg_proto 76 sapi::status 77) 78 79 80# sandboxed_api/util:raw_logging 81add_library(sapi_util_raw_logging ${SAPI_LIB_TYPE} 82 raw_logging.cc 83 raw_logging.h 84) 85add_library(sapi::raw_logging ALIAS sapi_util_raw_logging) 86target_link_libraries(sapi_util_raw_logging 87 PRIVATE absl::config 88 absl::str_format 89 absl::strings 90 sapi::strerror 91 sapi::base 92 INTERFACE absl::core_headers 93) 94 95# sandboxed_api/util:runfiles 96add_library(sapi_util_runfiles ${SAPI_LIB_TYPE} 97 runfiles.h 98 runfiles_nobazel.cc 99) 100add_library(sapi::runfiles ALIAS sapi_util_runfiles) 101target_link_libraries(sapi_util_runfiles PRIVATE 102 absl::str_format 103 absl::strings 104 sapi::file_base 105 sapi::base 106 sapi::raw_logging 107) 108 109# sandboxed_api/util:status_proto 110sapi_protobuf_generate_cpp(_sapi_util_status_pb_cc _sapi_util_status_pb_h 111 status.proto 112) 113add_library(sapi_util_status_proto ${SAPI_LIB_TYPE} 114 ${_sapi_util_status_pb_cc} 115 ${_sapi_util_status_pb_h} 116) 117add_library(sapi::status_proto ALIAS sapi_util_status_proto) 118target_link_libraries(sapi_util_status_proto 119 PRIVATE sapi::base 120 PUBLIC protobuf::libprotobuf 121) 122 123# sandboxed_api/util:status 124add_library(sapi_util_status ${SAPI_LIB_TYPE} 125 status.cc 126 status.h 127 status_macros.h 128) 129add_library(sapi::status ALIAS sapi_util_status) 130target_link_libraries(sapi_util_status 131 PRIVATE absl::cord 132 absl::core_headers 133 absl::status 134 absl::strings 135 sapi::base 136 sapi::strerror 137 protobuf::libprotobuf 138 PUBLIC sapi::status_proto 139) 140 141# sandboxed_api/util:strerror 142add_library(sapi_util_strerror ${SAPI_LIB_TYPE} 143 strerror.cc 144 strerror.h 145) 146add_library(sapi::strerror ALIAS sapi_util_strerror) 147target_link_libraries(sapi_util_strerror PRIVATE 148 absl::str_format 149 sapi::base 150) 151 152# sandboxed_api/util:temp_file 153add_library(sapi_util_temp_file ${SAPI_LIB_TYPE} 154 temp_file.cc 155 temp_file.h 156) 157add_library(sapi::temp_file ALIAS sapi_util_temp_file) 158target_link_libraries(sapi_util_temp_file 159 PRIVATE absl::strings 160 sapi::status 161 sapi::strerror 162 sapi::base 163 PUBLIC absl::status 164 absl::statusor 165) 166 167# sandboxed_api/util:thread 168add_library(sapi_util_thread ${SAPI_LIB_TYPE} 169 thread.h 170) 171add_library(sapi::thread ALIAS sapi_util_thread) 172target_link_libraries(sapi_util_thread 173 PUBLIC absl::any_invocable 174 absl::strings 175 sapi::base 176) 177 178if(BUILD_TESTING AND SAPI_BUILD_TESTING) 179 # sandboxed_api/util:file_base_test 180 add_executable(sapi_file_base_test 181 path_test.cc 182 ) 183 set_target_properties(sapi_file_base_test PROPERTIES 184 OUTPUT_NAME file_base_test 185 ) 186 target_link_libraries(sapi_file_base_test PRIVATE 187 absl::strings 188 sapi::file_base 189 sapi::test_main 190 ) 191 gtest_discover_tests_xcompile(sapi_file_base_test) 192 193 # sandboxed_api/util:file_helpers_test 194 add_executable(sapi_file_helpers_test 195 file_helpers_test.cc 196 ) 197 set_target_properties(sapi_file_helpers_test PROPERTIES 198 OUTPUT_NAME file_helpers_test 199 ) 200 target_link_libraries(sapi_file_helpers_test PRIVATE 201 sapi::file_helpers 202 sapi::status_matchers 203 sapi::test_main 204 ) 205 gtest_discover_tests_xcompile(sapi_file_helpers_test) 206 207 # sandboxed_api/util:fileops_test 208 add_executable(sapi_fileops_test 209 fileops_test.cc 210 ) 211 set_target_properties(sapi_fileops_test PROPERTIES 212 OUTPUT_NAME fileops_test 213 ) 214 target_link_libraries(sapi_fileops_test PRIVATE 215 absl::strings 216 sapi::file_helpers 217 sapi::fileops 218 sapi::status_matchers 219 sapi::test_main 220 sapi::testing 221 ) 222 gtest_discover_tests_xcompile(sapi_fileops_test PROPERTIES 223 ENVIRONMENT "TEST_TMPDIR=/tmp" 224 ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}" 225 ) 226 227 # sandboxed_api/util:status_matchers 228 add_library(sapi_util_status_matchers ${SAPI_LIB_TYPE} 229 status_matchers.h 230 ) 231 add_library(sapi::status_matchers ALIAS sapi_util_status_matchers) 232 target_link_libraries(sapi_util_status_matchers 233 PUBLIC absl::optional 234 absl::status 235 absl::strings 236 gmock 237 gtest 238 sapi::base 239 sapi::status 240 ) 241 242 # sandboxed_api/util:status_test 243 add_executable(sapi_status_test 244 status_test.cc 245 ) 246 set_target_properties(sapi_status_test PROPERTIES OUTPUT_NAME status_test) 247 target_link_libraries(sapi_status_test PRIVATE 248 absl::status 249 absl::statusor 250 sapi::status 251 sapi::status_matchers 252 sapi::test_main 253 ) 254 gtest_discover_tests_xcompile(sapi_status_test) 255 256 # sandboxed_api/util:status_macros_test 257 add_executable(sapi_status_macros_test 258 status_macros_test.cc 259 ) 260 set_target_properties(sapi_status_macros_test PROPERTIES 261 OUTPUT_NAME status_macros_test 262 ) 263 target_link_libraries(sapi_status_macros_test PRIVATE 264 absl::status 265 absl::statusor 266 absl::type_traits 267 sapi::status_matchers 268 sapi::test_main 269 ) 270 gtest_discover_tests_xcompile(sapi_status_macros_test) 271 272 # sandboxed_api/util:strerror 273 add_executable(sapi_strerror_test 274 strerror_test.cc 275 ) 276 set_target_properties(sapi_strerror_test PROPERTIES 277 OUTPUT_NAME strerror_test 278 ) 279 target_link_libraries(sapi_strerror_test PRIVATE 280 absl::strings 281 sapi::strerror 282 sapi::test_main 283 sapi::thread 284 ) 285 gtest_discover_tests_xcompile(sapi_strerror_test) 286 287 # sandboxed_api/util:temp_file_test 288 add_executable(sapi_temp_file_test 289 temp_file_test.cc 290 ) 291 set_target_properties(sapi_temp_file_test PROPERTIES 292 OUTPUT_NAME temp_file_test 293 ) 294 target_link_libraries(sapi_temp_file_test PRIVATE 295 sapi::file_base 296 sapi::fileops 297 sapi::status_matchers 298 sapi::temp_file 299 sapi::test_main 300 sapi::testing 301 ) 302 gtest_discover_tests_xcompile(sapi_temp_file_test) 303endif() 304