[CDRIVER-4637] A config settings command (#1289)
* New config settings code and defaults. Almost all setting values have remained the same, and most setting handling logic has remained unmodified, but this will serve as a basis for better configuration settings handling in the future tasks for CDRIVER-4637. * Aside: message() cleanup Using `message()` without a mode argument will write the message as a NOTICE to stderr. We want to use STATUS as the default, which goes to stdout. Systems which colorize stderr output would seemingly-randomly color certain lines where the mode argument was missing. * Use new CMake in more build tasks Several build tasks still relied on older find-cmake logic. With the new CMake changes, a more recent CMake version is required. These tasks and scripts have been updated to use the same logic to find the same CMake version as is used in the main build tasks. * Don't use Batch scripts to compile for MinGW Batch scripting is fraught with peril and will almost never do what one expects. Any other scripting language is preferable. Since we have Bash available and the tools to properly convert paths, just use Bash to do this work. * Redundant ENABLE_SHM_COUNTERS logic * Update the "Ask for Help" section * No longer applicable SASL checks * Remove ENABLE_BSON, as its purpose is confusing. - ENABLE_BSON=ON did the same as ENABLE_BSON=AUTO - There is no "ENABLE_BSON=OFF" since then there would be nothing to build. - USE_SYSTEM_LIBBSON=ON replaces ENABLE_BSON=SYSTEM. - To alleviate downstreams from needing to check versions before configuring, allow ENABLE_BSON=SYSTEM to be specified if USE_SYSTEM_LIBBSON=ON is also set, thus allowing one option pair to build both before and after this revision. - If ENABLE_BSON=SYSTEM is set but USE_SYSTEM_LIBBSON is not TRUE, then downstream will want to update their scripts to build with the new option rather than miscompile without being noticed. * New toolchain for the build * Don't inject the toolchain SSL into LD_LIBRARY_PATH The toolchain CMake is incompatible with OpenSSL 1.1.0, so having it on the library path breaks CMake. We don't need to modify LD_LIBRARY_PATH to cause CMake to use the OpenSSL that we want. It is sufficient to prepend the SSL root to the CMAKE_PREFIX_PATH. * Coverage link options are usage requirements * More Bash, less Sh * Don't depend on distro_id
parent
e0e93958
Please register or sign in to comment