Skip to content

Commit f506629

Browse files
committed
Firestore: make FirebaseFirestore build on Android
The android build seems to not need the absl, upb, or SSL/crypto libraries. Extract the absl, upb, and their dependencies into a separate Windows conditional group. Use the same pattern as the other libraries for SSL/crypto where we use a generator expression. Add an additional cast for the error code type difference.
1 parent 2d288b8 commit f506629

File tree

3 files changed

+82
-77
lines changed

3 files changed

+82
-77
lines changed

CMakeLists.txt

Lines changed: 79 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -139,84 +139,87 @@ target_compile_options(FirebaseFirestore PRIVATE
139139
-cxx-interoperability-mode=default)
140140
target_link_libraries(FirebaseFirestore PUBLIC
141141
FirebaseCore
142-
absl_bad_optional_access
143-
absl_bad_variant_access
144-
absl_base
145-
absl_city
146-
absl_cord
147-
absl_cord_internal
148-
absl_cordz_functions
149-
absl_cordz_handle
150-
absl_cordz_info
151-
absl_crc_cord_state
152-
absl_crc_cpu_detect
153-
absl_crc_internal
154-
absl_crc32c
155-
absl_flags_commandlineflag_internal
156-
absl_flags_commandlineflag
157-
absl_flags_config
158-
absl_flags_internal
159-
absl_flags_marshalling
160-
absl_flags_private_handle_accessor
161-
absl_flags_program_name
162-
absl_flags_reflection
163-
absl_graphcycles_internal
164-
absl_hash
165-
absl_int128
166-
absl_kernel_timeout_internal
167-
absl_low_level_hash
168-
absl_malloc_internal
169-
absl_random_internal_platform
170-
absl_random_internal_pool_urbg
171-
absl_random_internal_randen
172-
absl_random_internal_randen_hwaes
173-
absl_random_internal_randen_hwaes_impl
174-
absl_random_internal_randen_slow
175-
absl_random_internal_seed_material
176-
absl_random_seed_gen_exception
177-
absl_raw_hash_set
178-
absl_raw_logging_internal
179-
absl_spinlock_wait
180-
absl_stacktrace
181-
absl_status
182-
absl_statusor
183-
absl_str_format_internal
184-
absl_strerror
185-
absl_string_view
186-
absl_strings
187-
absl_strings_internal
188-
absl_symbolize
189-
absl_synchronization
190-
absl_throw_delegate
191-
absl_time
192-
absl_time_zone
193-
address_sorting
194-
cares
195-
crypto
196-
firebase
197-
firebase_rest_lib
198-
firestore_core
199-
firestore_nanopb
200-
firestore_protos_nanopb
201-
firestore_util
202-
flatbuffers
203-
gpr
204-
grpc
205-
grpc++
206-
leveldb
207-
protobuf-nanopb
208-
re2
209-
snappy
210-
ssl
211-
upb_base_lib
212-
upb_json_lib
213-
upb_mem_lib
214-
upb_message_lib
215-
upb_textformat_lib
216-
utf8_range_lib
217-
utf8_validity
142+
$<$<PLATFORM_ID:Windows>:crypto>
218143
$<$<PLATFORM_ID:Windows>:libcurl>
144+
$<$<PLATFORM_ID:Windows>:ssl>
219145
$<$<PLATFORM_ID:Windows>:zlibstatic>)
146+
if(WIN32)
147+
target_link_libraries(FirebaseFirestore PUBLIC
148+
absl_bad_optional_access
149+
absl_bad_variant_access
150+
absl_base
151+
absl_city
152+
absl_cord
153+
absl_cord_internal
154+
absl_cordz_functions
155+
absl_cordz_handle
156+
absl_cordz_info
157+
absl_crc_cord_state
158+
absl_crc_cpu_detect
159+
absl_crc_internal
160+
absl_crc32c
161+
absl_flags_commandlineflag_internal
162+
absl_flags_commandlineflag
163+
absl_flags_config
164+
absl_flags_internal
165+
absl_flags_marshalling
166+
absl_flags_private_handle_accessor
167+
absl_flags_program_name
168+
absl_flags_reflection
169+
absl_graphcycles_internal
170+
absl_hash
171+
absl_int128
172+
absl_kernel_timeout_internal
173+
absl_low_level_hash
174+
absl_malloc_internal
175+
absl_random_internal_platform
176+
absl_random_internal_pool_urbg
177+
absl_random_internal_randen
178+
absl_random_internal_randen_hwaes
179+
absl_random_internal_randen_hwaes_impl
180+
absl_random_internal_randen_slow
181+
absl_random_internal_seed_material
182+
absl_random_seed_gen_exception
183+
absl_raw_hash_set
184+
absl_raw_logging_internal
185+
absl_spinlock_wait
186+
absl_stacktrace
187+
absl_status
188+
absl_statusor
189+
absl_str_format_internal
190+
absl_strerror
191+
absl_string_view
192+
absl_strings
193+
absl_strings_internal
194+
absl_symbolize
195+
absl_synchronization
196+
absl_throw_delegate
197+
absl_time
198+
absl_time_zone
199+
address_sorting
200+
cares
201+
firebase
202+
firebase_rest_lib
203+
firestore_core
204+
firestore_nanopb
205+
firestore_protos_nanopb
206+
firestore_util
207+
flatbuffers
208+
gpr
209+
grpc
210+
grpc++
211+
leveldb
212+
protobuf-nanopb
213+
re2
214+
snappy
215+
upb_base_lib
216+
upb_json_lib
217+
upb_mem_lib
218+
upb_message_lib
219+
upb_textformat_lib
220+
utf8_range_lib
221+
utf8_validity)
222+
endif()
220223

221224
add_library(FirebaseFunctions SHARED
222225
Sources/FirebaseFunctions/FunctionsErrorCode.swift

Sources/FirebaseFirestore/FirestoreErrorCode.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ extension FirestoreErrorCode: RawRepresentable {
3030

3131
extension FirestoreErrorCode {
3232
init(_ error: firebase.firestore.Error, errorMessage: String?) {
33-
self.init((code: error.rawValue, message: errorMessage ?? "\(error.rawValue)"))
33+
self.init((code: numericCast(error.rawValue), message: errorMessage ?? "\(error.rawValue)"))
3434
}
3535

3636
init?(_ error: firebase.firestore.Error?, errorMessage: UnsafePointer<CChar>?) {

Sources/FirebaseFirestore/Timestamp+Swift.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
// SPDX-License-Identifier: BSD-3-Clause
22
import Foundation
3+
#if os(Windows)
34
import WinSDK
45
import CRT
6+
#endif
57

68
public typealias Timestamp = firebase.Timestamp
79
private let NanoSecondsPerSecond = 1_000_000_000

0 commit comments

Comments
 (0)