xref: /aosp_15_r20/external/sandboxed-api/sandboxed_api/util/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/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