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:raw_logging 51add_library(sapi_util_raw_logging ${SAPI_LIB_TYPE} 52 raw_logging.cc 53 raw_logging.h 54) 55add_library(sapi::raw_logging ALIAS sapi_util_raw_logging) 56target_link_libraries(sapi_util_raw_logging 57 PRIVATE absl::config 58 absl::str_format 59 absl::strings 60 sapi::strerror 61 sapi::base 62 INTERFACE absl::core_headers 63) 64 65# sandboxed_api/util:runfiles 66add_library(sapi_util_runfiles ${SAPI_LIB_TYPE} 67 runfiles.h 68 runfiles_nobazel.cc 69) 70add_library(sapi::runfiles ALIAS sapi_util_runfiles) 71target_link_libraries(sapi_util_runfiles PRIVATE 72 absl::str_format 73 absl::strings 74 sapi::file_base 75 sapi::base 76 sapi::raw_logging 77) 78 79# sandboxed_api/util:status_proto 80sapi_protobuf_generate_cpp(_sapi_util_status_pb_cc _sapi_util_status_pb_h 81 status.proto 82) 83add_library(sapi_util_status_proto ${SAPI_LIB_TYPE} 84 ${_sapi_util_status_pb_cc} 85 ${_sapi_util_status_pb_h} 86) 87add_library(sapi::status_proto ALIAS sapi_util_status_proto) 88target_link_libraries(sapi_util_status_proto 89 PRIVATE sapi::base 90 PUBLIC protobuf::libprotobuf 91) 92 93# sandboxed_api/util:status 94add_library(sapi_util_status ${SAPI_LIB_TYPE} 95 status.cc 96 status.h 97 status_macros.h 98) 99add_library(sapi::status ALIAS sapi_util_status) 100target_link_libraries(sapi_util_status 101 PRIVATE absl::cord 102 absl::core_headers 103 absl::status 104 absl::strings 105 sapi::base 106 sapi::strerror 107 protobuf::libprotobuf 108 PUBLIC sapi::status_proto 109) 110 111# sandboxed_api/util:strerror 112add_library(sapi_util_strerror ${SAPI_LIB_TYPE} 113 strerror.cc 114 strerror.h 115) 116add_library(sapi::strerror ALIAS sapi_util_strerror) 117target_link_libraries(sapi_util_strerror PRIVATE 118 absl::str_format 119 sapi::base 120) 121 122# sandboxed_api/util:temp_file 123add_library(sapi_util_temp_file ${SAPI_LIB_TYPE} 124 temp_file.cc 125 temp_file.h 126) 127add_library(sapi::temp_file ALIAS sapi_util_temp_file) 128target_link_libraries(sapi_util_temp_file 129 PRIVATE absl::strings 130 sapi::status 131 sapi::strerror 132 sapi::base 133 PUBLIC absl::status 134 absl::statusor 135) 136 137if(BUILD_TESTING AND SAPI_BUILD_TESTING) 138 # sandboxed_api/util:file_base_test 139 add_executable(sapi_file_base_test 140 path_test.cc 141 ) 142 set_target_properties(sapi_file_base_test PROPERTIES 143 OUTPUT_NAME file_base_test 144 ) 145 target_link_libraries(sapi_file_base_test PRIVATE 146 absl::strings 147 sapi::file_base 148 sapi::test_main 149 ) 150 gtest_discover_tests_xcompile(sapi_file_base_test) 151 152 # sandboxed_api/util:file_helpers_test 153 add_executable(sapi_file_helpers_test 154 file_helpers_test.cc 155 ) 156 set_target_properties(sapi_file_helpers_test PROPERTIES 157 OUTPUT_NAME file_helpers_test 158 ) 159 target_link_libraries(sapi_file_helpers_test PRIVATE 160 sapi::file_helpers 161 sapi::status_matchers 162 sapi::test_main 163 ) 164 gtest_discover_tests_xcompile(sapi_file_helpers_test) 165 166 # sandboxed_api/util:fileops_test 167 add_executable(sapi_fileops_test 168 fileops_test.cc 169 ) 170 set_target_properties(sapi_fileops_test PROPERTIES 171 OUTPUT_NAME fileops_test 172 ) 173 target_link_libraries(sapi_fileops_test PRIVATE 174 absl::strings 175 sapi::file_helpers 176 sapi::fileops 177 sapi::status_matchers 178 sapi::test_main 179 sapi::testing 180 ) 181 gtest_discover_tests_xcompile(sapi_fileops_test PROPERTIES 182 ENVIRONMENT "TEST_TMPDIR=/tmp" 183 ENVIRONMENT "TEST_SRCDIR=${PROJECT_BINARY_DIR}" 184 ) 185 186 # sandboxed_api/util:status_matchers 187 add_library(sapi_util_status_matchers ${SAPI_LIB_TYPE} 188 status_matchers.h 189 ) 190 add_library(sapi::status_matchers ALIAS sapi_util_status_matchers) 191 target_link_libraries(sapi_util_status_matchers 192 PUBLIC absl::optional 193 absl::status 194 absl::strings 195 gmock 196 gtest 197 sapi::base 198 sapi::status 199 ) 200 201 # sandboxed_api/util:status_test 202 add_executable(sapi_status_test 203 status_test.cc 204 ) 205 set_target_properties(sapi_status_test PROPERTIES OUTPUT_NAME status_test) 206 target_link_libraries(sapi_status_test PRIVATE 207 absl::status 208 absl::statusor 209 sapi::status 210 sapi::status_matchers 211 sapi::test_main 212 ) 213 gtest_discover_tests_xcompile(sapi_status_test) 214 215 # sandboxed_api/util:status_macros_test 216 add_executable(sapi_status_macros_test 217 status_macros_test.cc 218 ) 219 set_target_properties(sapi_status_macros_test PROPERTIES 220 OUTPUT_NAME status_macros_test 221 ) 222 target_link_libraries(sapi_status_macros_test PRIVATE 223 absl::status 224 absl::statusor 225 absl::type_traits 226 sapi::status_matchers 227 sapi::test_main 228 ) 229 gtest_discover_tests_xcompile(sapi_status_macros_test) 230 231 # sandboxed_api/util:strerror 232 add_executable(sapi_strerror_test 233 strerror_test.cc 234 ) 235 set_target_properties(sapi_strerror_test PROPERTIES 236 OUTPUT_NAME strerror_test 237 ) 238 target_link_libraries(sapi_strerror_test PRIVATE 239 absl::strings 240 sapi::strerror 241 sapi::test_main 242 ) 243 gtest_discover_tests_xcompile(sapi_strerror_test) 244 245 # sandboxed_api/util:temp_file_test 246 add_executable(sapi_temp_file_test 247 temp_file_test.cc 248 ) 249 set_target_properties(sapi_temp_file_test PROPERTIES 250 OUTPUT_NAME temp_file_test 251 ) 252 target_link_libraries(sapi_temp_file_test PRIVATE 253 sapi::file_base 254 sapi::fileops 255 sapi::status_matchers 256 sapi::temp_file 257 sapi::test_main 258 sapi::testing 259 ) 260 gtest_discover_tests_xcompile(sapi_temp_file_test) 261endif() 262