Commit ca0dd70b authored by vector-of-bool's avatar vector-of-bool Committed by GitHub
Browse files

[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
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment