@@ -22,7 +22,7 @@ script_dir="$(to_absolute "$(dirname "${BASH_SOURCE[0]}")")"
22
22
declare mongoc_dir
23
23
mongoc_dir=" $( to_absolute " ${script_dir} /../.." ) "
24
24
25
- declare install_dir =" ${mongoc_dir} /install-dir"
25
+ declare libmongocrypt_install_dir =" ${mongoc_dir} /libmongocrypt- install-dir"
26
26
27
27
declare -a configure_flags
28
28
@@ -38,7 +38,7 @@ configure_flags_append_if_not_null() {
38
38
fi
39
39
}
40
40
41
- configure_flags_append " -DCMAKE_PREFIX_PATH=${install_dir } "
41
+ configure_flags_append " -DCMAKE_PREFIX_PATH=${libmongocrypt_install_dir :? } "
42
42
configure_flags_append " -DCMAKE_SKIP_RPATH=TRUE" # Avoid hardcoding absolute paths to dependency libraries.
43
43
configure_flags_append " -DENABLE_CLIENT_SIDE_ENCRYPTION=ON"
44
44
configure_flags_append " -DENABLE_DEBUG_ASSERTIONS=ON"
@@ -90,15 +90,15 @@ CXXFLAGS+=" ${flags+${flags[*]}}"
90
90
declare cmake_binary
91
91
cmake_binary=" $( find_cmake_latest) "
92
92
93
- declare build_dir
94
- build_dir=" cmake-build"
93
+ declare mongoc_build_dir mongoc_install_dir
94
+ mongoc_build_dir=" cmake-build"
95
+ mongoc_install_dir=" cmake-install"
96
+
97
+ configure_flags_append " -DCMAKE_INSTALL_PREFIX=${mongoc_install_dir:? } "
95
98
96
99
# shellcheck source=.evergreen/scripts/add-build-dirs-to-paths.sh
97
100
. " ${script_dir} /add-build-dirs-to-paths.sh"
98
101
99
- export PKG_CONFIG_PATH
100
- PKG_CONFIG_PATH=" ${install_dir} /lib/pkgconfig:${PKG_CONFIG_PATH:- } "
101
-
102
102
if [[ " ${OSTYPE} " == darwin* ]]; then
103
103
# MacOS does not have nproc.
104
104
nproc () {
@@ -164,7 +164,7 @@ echo "Checking requested C standard is supported... done."
164
164
165
165
echo " Installing libmongocrypt..."
166
166
# shellcheck source=.evergreen/scripts/compile-libmongocrypt.sh
167
- " ${script_dir} /compile-libmongocrypt.sh" " ${cmake_binary} " " ${mongoc_dir} " " ${install_dir } " & > output.txt || {
167
+ " ${script_dir} /compile-libmongocrypt.sh" " ${cmake_binary} " " ${mongoc_dir} " " ${libmongocrypt_install_dir :? } " & > output.txt || {
168
168
cat output.txt 1>&2
169
169
exit 1
170
170
}
@@ -187,9 +187,39 @@ else
187
187
all_target=" all"
188
188
fi
189
189
190
- " ${cmake_binary} " -S . -B " ${build_dir:? } " " ${configure_flags[@]} "
191
- " ${cmake_binary} " --build " ${build_dir:? } " --config Debug \
190
+ # Ensure we're starting with a clean slate.
191
+ rm -rf " ${mongoc_build_dir:? } " " ${mongoc_install_dir:? } "
192
+
193
+ " ${cmake_binary} " -S . -B " ${mongoc_build_dir:? } " " ${configure_flags[@]} "
194
+ " ${cmake_binary} " --build " ${mongoc_build_dir:? } " --config Debug \
192
195
--target mongo_c_driver_tests \
193
196
--target mongo_c_driver_examples \
194
197
--target public-header-warnings \
195
198
--target " ${all_target:? } "
199
+ " ${cmake_binary} " --install " ${mongoc_build_dir:? } " --config Debug
200
+
201
+ # "lib" vs. "lib64"
202
+ if [[ -d " ${mongoc_install_dir:? } /lib64" ]]; then
203
+ lib_dir=" lib64"
204
+ else
205
+ lib_dir=" lib"
206
+ fi
207
+
208
+ # This file should not be deleted!
209
+ touch " ${mongoc_install_dir:? } /${lib_dir:? } /canary.txt"
210
+
211
+ # Linux/MacOS: uninstall.sh
212
+ # Windows: uninstall.cmd
213
+ " ${cmake_binary} " --build " ${mongoc_build_dir:? } " --target uninstall || true # CDRIVER-6062
214
+
215
+ # No files should remain except canary.txt.
216
+ # No directories except top-level directories should remain.
217
+ echo " Checking results of uninstall..."
218
+ diff <( cd " ${mongoc_install_dir:? } " && find . -mindepth 1 | sort) <(
219
+ echo " ./bin"
220
+ echo " ./include"
221
+ echo " ./${lib_dir:? } "
222
+ echo " ./${lib_dir:? } /canary.txt"
223
+ echo " ./share"
224
+ )
225
+ echo " Checking results of uninstall... done."
0 commit comments