4
4
5
5
RED=" \e[31m"
6
6
GREEN=" \e[32m"
7
+ BLUE=" \e[34m"
7
8
ENDCOLOR=" \e[0m"
8
9
9
10
function echoGreen() {
@@ -14,6 +15,10 @@ function echoRed() {
14
15
echo -e " ${RED} $1 ${ENDCOLOR} "
15
16
}
16
17
18
+ function echoBlue {
19
+ echo -e " ${BLUE} $1 ${ENDCOLOR} "
20
+ }
21
+
17
22
scriptDir=$( dirname " $0 " )
18
23
echo " Script directory: $scriptDir "
19
24
58
63
tmpFolder=$( mktemp -d)
59
64
echo " Temporary directory ${tmpFolder} "
60
65
61
- # ################################## #
62
- # Download couchbase-lite-C packages #
63
- # ################################## #
64
-
65
- echoGreen " Start downloading"
66
-
67
- tmpDownloadFolder=" ${tmpFolder} /download"
68
- mkdir $tmpDownloadFolder
69
- echo " Temporary download directory ${tmpFolder} "
70
-
71
66
declare -A platforms=(
72
67
[linux]=linux-x86_64.tar.gz
73
68
[windows]=windows-x86_64.zip
@@ -76,167 +71,189 @@ declare -A platforms=(
76
71
[ios]=ios.zip
77
72
)
78
73
79
- function download() {
80
- local suffix=" $1 "
74
+ variants=(" community" , " enterprise" )
81
75
82
- local url= " https://packages.couchbase.com/releases/couchbase-lite-c/ ${version} /couchbase-lite-c-enterprise- ${version} - ${suffix} "
83
- local file= " ${tmpDownloadFolder} / ${suffix} "
76
+ for variant in ${myArray[@]} ; do
77
+ echoBlue " Start variant $variant "
84
78
85
- wget --quiet --show-progress --output-document " ${file} " " ${url} "
86
- }
87
79
88
- for platform in " ${ ! platforms[@]} "
89
- do
90
- echo " Downloading ${platform} package "
80
+ # ################################## #
81
+ # Download couchbase-lite-C packages #
82
+ # ################################## #
91
83
92
- fileName=${platforms[$platform]}
93
- download $fileName
94
- done
84
+ echoGreen " Start downloading"
95
85
96
- echoGreen " Downloading successful"
86
+ tmpDownloadFolder=" ${tmpFolder} /${variant} /download"
87
+ mkdir $tmpDownloadFolder
88
+ echo " Temporary download directory ${tmpFolder} "
97
89
98
- # ############## #
99
- # Unzip packages #
100
- # ############## #
90
+ function download() {
91
+ local platformName= " $1 "
92
+ local variant= " $2 "
101
93
102
- echoGreen " Start unzipping"
94
+ local url=" https://packages.couchbase.com/releases/couchbase-lite-c/${version} /couchbase-lite-c-${variant} -${version} -${platformName} "
95
+ local file=" ${tmpDownloadFolder} /${platformName} "
103
96
104
- tmpUnzipFolder=" ${tmpFolder} /unzip"
105
- mkdir $tmpUnzipFolder
106
- echo " Temporary unzip directory ${tmpUnzipFolder} "
97
+ wget --quiet --show-progress --output-document " ${file} " " ${url} "
98
+ }
107
99
108
- for platform in " ${! platforms[@]} "
109
- do
110
- echo " Unzipping ${platform} package"
111
100
112
- fileName=${platforms[$platform]}
113
- zippedPath=" $tmpDownloadFolder /$fileName "
114
101
115
- unzipPlatformFolder=" ${tmpUnzipFolder} /$platform "
116
- mkdir $unzipPlatformFolder
102
+ for platform in " ${! platforms[@]} "
103
+ do
104
+ echo " Downloading ${platform} package"
117
105
118
- tar -x -f $zippedPath --directory $unzipPlatformFolder
119
- done
106
+ platformName=${platforms[$platform]}
107
+ download $platformName $variant
108
+ done
120
109
121
- echoGreen " Unzipping successful"
110
+ echoGreen " Downloading successful"
122
111
123
- # ########## ############## #
124
- # Package libcblite folder #
125
- # ########## ############## #
112
+ # ############## #
113
+ # Unzip packages #
114
+ # ############## #
126
115
127
- echoGreen " Package libcblite "
116
+ echoGreen " Start unzipping "
128
117
129
- tmpLibcbliteFolder =" ${tmpFolder} /libcblite "
130
- mkdir $tmpLibcbliteFolder
131
- echo " Temporary libcblite directory ${tmpLibcbliteFolder } "
118
+ tmpUnzipFolder =" ${tmpFolder} /${variant} /unzip "
119
+ mkdir $tmpUnzipFolder
120
+ echo " Temporary unzip directory ${tmpUnzipFolder } "
132
121
133
- libFolder=" ${tmpLibcbliteFolder} /lib"
134
- mkdir $libFolder
122
+ for platform in " ${! platforms[@]} "
123
+ do
124
+ echo " Unzipping ${platform} package"
135
125
136
- for platform in " ${! platforms[@]} "
137
- do
138
- echo " Packaging ${platform} "
126
+ fileName=${platforms[$platform]}
127
+ zippedPath=" $tmpDownloadFolder /$fileName "
139
128
140
- unzipPlatformFolder=" ${tmpUnzipFolder} /$platform "
129
+ unzipPlatformFolder=" ${tmpUnzipFolder} /$platform "
130
+ mkdir $unzipPlatformFolder
141
131
142
- case $platform in
132
+ tar -x -f $zippedPath --directory $unzipPlatformFolder
133
+ done
143
134
144
- linux)
145
- platformFolder=" ${libFolder} /x86_64-unknown-linux-gnu"
146
- mkdir $platformFolder
135
+ echoGreen " Unzipping successful"
147
136
148
- libFile= " ${unzipPlatformFolder} /libcblite- ${version} /lib/x86_64-linux-gnu/libcblite.so. ${version} "
149
- libDestinationFile= " ${platformFolder} /libcblite.so.3 "
150
- cp $libFile $libDestinationFile
137
+ # ######################## #
138
+ # Package libcblite folder #
139
+ # ######################## #
151
140
152
- # There are required ICU libs already present in the existing package
153
- cp $scriptDir /libcblite/lib/x86_64-unknown-linux-gnu/libicu* $platformFolder
141
+ echoGreen " Package libcblite"
154
142
155
- ;;
143
+ tmpLibcbliteFolder=" ${tmpFolder} /libcblite_${variant} "
144
+ mkdir $tmpLibcbliteFolder
145
+ echo " Temporary libcblite directory ${tmpLibcbliteFolder} "
156
146
157
- windows)
158
- platformFolder=" ${libFolder} /x86_64-pc-windows-gnu"
159
- mkdir $platformFolder
147
+ libFolder=" ${tmpLibcbliteFolder} /lib"
148
+ mkdir $libFolder
160
149
161
- libFile=" ${unzipPlatformFolder} /libcblite-${version} /lib/cblite.lib"
162
- cp $libFile $platformFolder
150
+ for platform in " ${! platforms[@]} "
151
+ do
152
+ echo " Packaging ${platform} "
163
153
164
- binFile=" ${unzipPlatformFolder} /libcblite-${version} /bin/cblite.dll"
165
- cp $binFile $platformFolder
154
+ unzipPlatformFolder=" ${tmpUnzipFolder} /$platform "
166
155
167
- ;;
156
+ case $platform in
168
157
169
- macos )
170
- platformFolder=" ${libFolder} /macos "
171
- mkdir $platformFolder
158
+ linux )
159
+ platformFolder=" ${libFolder} /x86_64-unknown-linux-gnu "
160
+ mkdir $platformFolder
172
161
173
- libFile=" ${unzipPlatformFolder} /libcblite-${version} /lib/libcblite.${version} .dylib "
174
- libDestinationFile=" ${platformFolder} /libcblite.3.dylib "
175
- cp $libFile $libDestinationFile
162
+ libFile=" ${unzipPlatformFolder} /libcblite-${version} /lib/x86_64-linux-gnu/ libcblite.so. ${version} "
163
+ libDestinationFile=" ${platformFolder} /libcblite.so.3 "
164
+ cp $libFile $libDestinationFile
176
165
177
- ;;
166
+ # There are required ICU libs already present in the existing package
167
+ cp $scriptDir /libcblite/lib/x86_64-unknown-linux-gnu/libicu* $platformFolder
178
168
179
- android)
180
- # aarch64
181
- platformFolder=" ${libFolder} /aarch64-linux-android"
182
- mkdir $platformFolder
169
+ ;;
183
170
184
- libFile=" ${unzipPlatformFolder} /libcblite-${version} /lib/aarch64-linux-android/libcblite.so"
185
- cp $libFile $platformFolder
171
+ windows)
172
+ platformFolder=" ${libFolder} /x86_64-pc-windows-gnu"
173
+ mkdir $platformFolder
186
174
187
- # arm
188
- platformFolder=" ${libFolder} /arm-linux-androideabi"
189
- mkdir $platformFolder
175
+ libFile=" ${unzipPlatformFolder} /libcblite-${version} /lib/cblite.lib"
176
+ cp $libFile $platformFolder
190
177
191
- libFile =" ${unzipPlatformFolder} /libcblite-${version} /lib/arm-linux-androideabi/libcblite.so "
192
- cp $libFile $platformFolder
178
+ binFile =" ${unzipPlatformFolder} /libcblite-${version} /bin/cblite.dll "
179
+ cp $binFile $platformFolder
193
180
194
- # i686
195
- platformFolder=" ${libFolder} /i686-linux-android"
196
- mkdir $platformFolder
181
+ ;;
197
182
198
- libFile=" ${unzipPlatformFolder} /libcblite-${version} /lib/i686-linux-android/libcblite.so"
199
- cp $libFile $platformFolder
183
+ macos)
184
+ platformFolder=" ${libFolder} /macos"
185
+ mkdir $platformFolder
200
186
201
- # x86_64
202
- platformFolder =" ${libFolder} /x86_64-linux-android "
203
- mkdir $platformFolder
187
+ libFile= " ${unzipPlatformFolder} /libcblite- ${version} /lib/libcblite. ${version} .dylib "
188
+ libDestinationFile =" ${platformFolder} /libcblite.3.dylib "
189
+ cp $libFile $libDestinationFile
204
190
205
- libFile=" ${unzipPlatformFolder} /libcblite-${version} /lib/x86_64-linux-android/libcblite.so"
206
- cp $libFile $platformFolder
191
+ ;;
207
192
208
- # Some files/directories must be moved only once for all platforms: include directory & LICENSE.txt
209
- cp -R " ${unzipPlatformFolder} /libcblite-${version} /include" $tmpLibcbliteFolder
193
+ android)
194
+ # aarch64
195
+ platformFolder=" ${libFolder} /aarch64-linux-android"
196
+ mkdir $platformFolder
210
197
211
- cp " ${unzipPlatformFolder} /libcblite-${version} /LICENSE.txt" $tmpLibcbliteFolder
198
+ libFile=" ${unzipPlatformFolder} /libcblite-${version} /lib/aarch64-linux-android/libcblite.so"
199
+ cp $libFile $platformFolder
212
200
213
- ;;
201
+ # arm
202
+ platformFolder=" ${libFolder} /arm-linux-androideabi"
203
+ mkdir $platformFolder
214
204
215
- ios)
216
- platformFolder=" ${libFolder} /ios"
217
- mkdir $platformFolder
205
+ libFile=" ${unzipPlatformFolder} /libcblite-${version} /lib/arm-linux-androideabi/libcblite.so"
206
+ cp $libFile $platformFolder
218
207
219
- cp -R " ${unzipPlatformFolder} /CouchbaseLite.xcframework" $platformFolder
208
+ # i686
209
+ platformFolder=" ${libFolder} /i686-linux-android"
210
+ mkdir $platformFolder
220
211
221
- ;;
222
- esac
223
- done
212
+ libFile=" ${unzipPlatformFolder} /libcblite-${version} /lib/i686-linux-android/libcblite.so"
213
+ cp $libFile $platformFolder
224
214
225
- echoGreen " Packaging libcblite successful"
215
+ # x86_64
216
+ platformFolder=" ${libFolder} /x86_64-linux-android"
217
+ mkdir $platformFolder
226
218
227
- # ######################## #
228
- # Replace libcblite folder #
229
- # ######################## #
219
+ libFile=" ${unzipPlatformFolder} /libcblite-${version} /lib/x86_64-linux-android/libcblite.so"
220
+ cp $libFile $platformFolder
230
221
231
- echoGreen " Replace libcblite directory by newly package one"
222
+ # Some files/directories must be moved only once for all platforms: include directory & LICENSE.txt
223
+ cp -R " ${unzipPlatformFolder} /libcblite-${version} /include" $tmpLibcbliteFolder
232
224
233
- rm -rf $scriptDir /libcblite
225
+ cp " ${unzipPlatformFolder} /libcblite- ${version} /LICENSE.txt " $tmpLibcbliteFolder
234
226
235
- cp -R $tmpLibcbliteFolder $scriptDir
227
+ ;;
236
228
237
- rm -rf $tmpFolder
229
+ ios)
230
+ platformFolder=" ${libFolder} /ios"
231
+ mkdir $platformFolder
232
+
233
+ cp -R " ${unzipPlatformFolder} /CouchbaseLite.xcframework" $platformFolder
234
+
235
+ ;;
236
+ esac
237
+ done
238
+
239
+ echoGreen " Packaging libcblite successful"
240
+
241
+ # ######################## #
242
+ # Replace libcblite folder #
243
+ # ######################## #
244
+
245
+ echoGreen " Replace libcblite directory by newly package one"
238
246
239
- echoGreen " Replacing libcblite successful"
247
+ rm -rf $scriptDir /libcblite_$variant
248
+
249
+ cp -R $tmpLibcbliteFolder $scriptDir
250
+
251
+ echoGreen " Replacing libcblite successful"
252
+
253
+ echoBlue " Finish variant $variant "
254
+ done
255
+
256
+ rm -rf $tmpFolder
240
257
241
258
# ################### #
242
259
# Strip the libraries #
0 commit comments