• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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