8
8
options:
9
9
-b, built sdk path or tar file required
10
10
-o, output path required
11
- -p, platform to package required, one of: linux windows darwin
11
+ -p, platform to package required, one of: linux windows darwin
12
12
-d, build variant directory to create default: .
13
13
-m, merge_libraries.py path default: <script dir>/../../scripts/merge_libraries.py
14
14
-P, python command default: python
@@ -36,9 +36,9 @@ readonly SUPPORTED_PLATFORMS=(linux windows darwin)
36
36
37
37
abspath (){
38
38
if [[ -d $1 ]]; then
39
- echo " $( cd " $1 " ; pwd -P) "
39
+ echo " $( cd " $1 " ; pwd -P) "
40
40
else
41
- echo " $( cd " $( dirname " $1 " ) " ; pwd -P) /$( basename " $1 " ) "
41
+ echo " $( cd " $( dirname " $1 " ) " ; pwd -P) /$( basename " $1 " ) "
42
42
fi
43
43
}
44
44
@@ -58,31 +58,31 @@ while getopts ":b:o:p:d:m:P:t:hv" opt; do
58
58
exit 2
59
59
fi
60
60
;;
61
- v)
62
- verbose=1
63
- ;;
61
+ v)
62
+ verbose=1
63
+ ;;
64
64
d)
65
65
variant=$OPTARG
66
66
;;
67
67
m)
68
68
merge_libraries_script=$OPTARG
69
- if [[ ! -r " ${merge_libraries_script} " ]]; then
69
+ if [[ ! -r " ${merge_libraries_script} " ]]; then
70
70
echo " Script not found: ${merge_libraries_script} "
71
71
exit 2
72
- fi
72
+ fi
73
73
;;
74
74
P)
75
- python_cmd=$OPTARG
75
+ python_cmd=$OPTARG
76
+ ;;
77
+ t)
78
+ tools_path=$OPTARG
79
+ ;;
80
+ h)
81
+ usage
82
+ exit 0
76
83
;;
77
- t)
78
- tools_path=$OPTARG
79
- ;;
80
- h)
81
- usage
82
- exit 0
83
- ;;
84
84
* )
85
- usage
85
+ usage
86
86
exit 2
87
87
;;
88
88
esac
131
131
# Desktop packaging settings.
132
132
if [[ " ${platform} " == " windows" ]]; then
133
133
if [[ " ${variant} " == * ' Debug' * ]]; then
134
- subdir=' Debug/'
135
- suffix=' -d'
134
+ subdir=' Debug/'
135
+ suffix=' -d'
136
136
else
137
- subdir=' Release/'
138
- suffix=' '
137
+ subdir=' Release/'
138
+ suffix=' '
139
139
fi
140
140
prefix=' '
141
141
ext=' lib'
149
149
150
150
# Library dependencies to merge. Each should be a whitespace-delimited list of path globs.
151
151
readonly deps_firebase_app="
152
- */${prefix} firebase_instance_id *.${ext}
152
+ */${prefix} firebase_instance_id_desktop_impl *.${ext}
153
153
*/${prefix} firebase_rest_lib.${ext}
154
154
"
155
155
readonly deps_hidden_firebase_app="
@@ -176,25 +176,25 @@ readonly deps_hidden_firebase_firestore="
176
176
# List of C++ namespaces to be renamed, so as to not conflict with the
177
177
# developer's own dependencies.
178
178
readonly -a rename_namespaces=(flatbuffers flexbuffers reflection ZLib bssl uWS absl google
179
- base_raw_logging ConnectivityWatcher grpc
180
- grpc_access_token_credentials grpc_alts_credentials
181
- grpc_alts_server_credentials grpc_auth_context
182
- grpc_channel_credentials grpc_channel_security_connector
183
- grpc_chttp2_hpack_compressor grpc_chttp2_stream grpc_chttp2_transport
184
- grpc_client_security_context grpc_composite_call_credentials
185
- grpc_composite_channel_credentials grpc_core grpc_deadline_state
186
- grpc_google_default_channel_credentials grpc_google_iam_credentials
187
- grpc_google_refresh_token_credentials grpc_impl grpc_local_credentials
188
- grpc_local_server_credentials grpc_md_only_test_credentials
189
- grpc_message_compression_algorithm_for_level
190
- grpc_oauth2_token_fetcher_credentials grpc_plugin_credentials
191
- grpc_server_credentials grpc_server_security_connector
192
- grpc_server_security_context
193
- grpc_service_account_jwt_access_credentials grpc_ssl_credentials
194
- grpc_ssl_server_credentials grpc_tls_credential_reload_config
195
- grpc_tls_server_authorization_check_config GrpcUdpListener leveldb
196
- leveldb_filterpolicy_create_bloom leveldb_writebatch_iterate strings
197
- TlsCredentials TlsServerCredentials tsi)
179
+ base_raw_logging ConnectivityWatcher grpc
180
+ grpc_access_token_credentials grpc_alts_credentials
181
+ grpc_alts_server_credentials grpc_auth_context
182
+ grpc_channel_credentials grpc_channel_security_connector
183
+ grpc_chttp2_hpack_compressor grpc_chttp2_stream grpc_chttp2_transport
184
+ grpc_client_security_context grpc_composite_call_credentials
185
+ grpc_composite_channel_credentials grpc_core grpc_deadline_state
186
+ grpc_google_default_channel_credentials grpc_google_iam_credentials
187
+ grpc_google_refresh_token_credentials grpc_impl grpc_local_credentials
188
+ grpc_local_server_credentials grpc_md_only_test_credentials
189
+ grpc_message_compression_algorithm_for_level
190
+ grpc_oauth2_token_fetcher_credentials grpc_plugin_credentials
191
+ grpc_server_credentials grpc_server_security_connector
192
+ grpc_server_security_context
193
+ grpc_service_account_jwt_access_credentials grpc_ssl_credentials
194
+ grpc_ssl_server_credentials grpc_tls_credential_reload_config
195
+ grpc_tls_server_authorization_check_config GrpcUdpListener leveldb
196
+ leveldb_filterpolicy_create_bloom leveldb_writebatch_iterate strings
197
+ TlsCredentials TlsServerCredentials tsi)
198
198
199
199
# String to prepend to all hidden symbols.
200
200
readonly rename_string=f_b_
@@ -256,12 +256,12 @@ for product in ${product_list[*]}; do
256
256
libfile_src=" ${product} /${subdir}${prefix} firebase_${product} .${ext} "
257
257
libfile_out=$( basename " ${libfile_src} " )
258
258
if [[ ! -r " ${libfile_src} " ]]; then
259
- # Windows names some debug libraries with a "-d.lib" suffix.
260
- libfile_src=" ${product} /${subdir}${prefix} firebase_${product}${suffix} .${ext} "
261
- # Don't change libfile_out though.
262
- if [[ ! -r " ${libfile_src} " ]]; then
263
- continue
264
- fi
259
+ # Windows names some debug libraries with a "-d.lib" suffix.
260
+ libfile_src=" ${product} /${subdir}${prefix} firebase_${product}${suffix} .${ext} "
261
+ # Don't change libfile_out though.
262
+ if [[ ! -r " ${libfile_src} " ]]; then
263
+ continue
264
+ fi
265
265
fi
266
266
267
267
# Look up the previously-set deps_firebase_* and deps_hidden_firebase_* vars.
@@ -271,52 +271,62 @@ for product in ${product_list[*]}; do
271
271
deps=() # List of all dependencies, both hidden and visible.
272
272
deps_basenames=() # Same as above but only filenames, for more readable logging to console.
273
273
for dep in ${! deps_var} ${! deps_hidden_var} ; do
274
- for found in $( find . -path ${dep} ) ; do
275
- deps[${# deps[@]} ]=" ${found} "
276
- deps_basenames[${# deps_basenames[@]} ]=$( basename " ${found} " )
277
- done
274
+ for found in $( find . -path " ${dep} " ) ; do
275
+ deps[${# deps[@]} ]=" ${found} "
276
+ deps_basenames[${# deps_basenames[@]} ]=$( basename " ${found} " )
277
+ done
278
278
done
279
279
deps_hidden=' ' # comma-separated list of hidden deps only
280
280
for dep in ${! deps_hidden_var} ; do
281
- for found in $( find . -path ${dep} ) ; do
282
- if [[ ! -z ${deps_hidden} ]]; then deps_hidden+=" ," ; fi
283
- deps_hidden+=" ${found} "
284
- done
281
+ for found in $( find . -path " ${dep} " ) ; do
282
+ if [[ ! -z ${deps_hidden} ]]; then deps_hidden+=" ," ; fi
283
+ deps_hidden+=" ${found} "
284
+ done
285
285
done
286
286
if [[ " ${product} " != " app" ]]; then
287
- # For any library other than app, also rename some symbols that were already renamed in app
288
- # that are used by other libraries (e.g. zlib is used in Firestore).
289
- for dep in ${deps_hidden_firebase_app} ; do
290
- for found in $( find . -path ${dep} ) ; do
291
- if [[ ! -z ${deps_hidden} ]]; then deps_hidden+=" ," ; fi
292
- deps_hidden+=" ${found} "
287
+ # For any library other than app, also rename some symbols that were already renamed in app
288
+ # that are used by other libraries (e.g. zlib is used in Firestore).
289
+ for dep in ${deps_hidden_firebase_app} ; do
290
+ for found in $( find . -path ${dep} ) ; do
291
+ if [[ ! -z ${deps_hidden} ]]; then deps_hidden+=" ," ; fi
292
+ deps_hidden+=" ${found} "
293
+ done
293
294
done
294
- done
295
295
fi
296
296
echo -n " ${libfile_out} "
297
297
if [[ ! -z ${deps_basenames[*]} ]]; then
298
- echo -n " <- ${deps[*]} "
298
+ echo -n " <- ${deps[*]} "
299
299
fi
300
300
echo
301
301
outfile=" ${full_output_path} /${libfile_out} "
302
302
rm -f " ${outfile} "
303
303
if [[ ${verbose} -eq 1 ]]; then
304
- echo " ${python_cmd} " " ${merge_libraries_script} " \
305
- ${merge_libraries_params[*]} \
306
- --output=" ${outfile} " \
307
- --scan_libs=" ${allfiles} " \
308
- --hide_c_symbols=" ${deps_hidden} " \
309
- ${libfile_src} ${deps[*]}
304
+ echo " ${python_cmd} " " ${merge_libraries_script} " \
305
+ ${merge_libraries_params[*]} \
306
+ --output=" ${outfile} " \
307
+ --scan_libs=" ${allfiles} " \
308
+ --hide_c_symbols=" ${deps_hidden} " \
309
+ ${libfile_src} ${deps[*]}
310
310
fi
311
311
" ${python_cmd} " " ${merge_libraries_script} " \
312
- ${merge_libraries_params[*]} \
313
- --output=" ${outfile} " \
314
- --scan_libs=" ${allfiles} " \
315
- --hide_c_symbols=" ${deps_hidden} " \
316
- ${libfile_src} ${deps[*]}
312
+ ${merge_libraries_params[*]} \
313
+ --output=" ${outfile} " \
314
+ --scan_libs=" ${allfiles} " \
315
+ --hide_c_symbols=" ${deps_hidden} " \
316
+ ${libfile_src} ${deps[*]}
317
317
done
318
318
cd " ${run_path} "
319
319
320
+ # Copy generated headers for app and analytics into the package's include directory.
321
+ mkdir -p " ${output_package_path} /include/firebase"
322
+ cp -av \
323
+ " ${built_sdk_path} /generated/app/src/include/firebase/version.h" \
324
+ " ${output_package_path} /include/firebase"
325
+ mkdir -p " ${output_package_path} /include/firebase/analytics"
326
+ cp -av \
327
+ " ${built_sdk_path} /generated/analytics/src/include/firebase/analytics/" * \
328
+ " ${output_package_path} /include/firebase/analytics"
329
+
320
330
# Copy Firestore core headers into the package's include directory.
321
331
mkdir -p " ${output_package_path} /include/firebase/firestore"
322
332
cp -av \
0 commit comments