Since commit 07223c5c27 (Tutorial: Update Step 5 to work on Windows,
2020-02-18, v3.18.0-rc1~655^2) the logic does not work on non-Windows
platforms when cmake is re-run on an existing build tree. It is also
more complicated than we'd like for a tutorial example. Avoid the need
to consider the `m` library case by performing the check as C++.
Since `check_cxx_symbol_exists` cannot handle overloaded functions
like `exp` and `log`, check with `check_cxx_source_compiles` instead.
This also presents a more general-purpose example in the tutorial.
Fixes: #23524
In commit c754a3d4b7 (Tutorial: Remove MakeTable.cxx from Steps 5 and 6,
2020-04-23) it was incorrect to remove the file from step 6. The
instructions for that step show the addition of a reference to it from
the `CMakeLists.txt` file. Each step shows the addition of content to
lead to the next step, so removing the file from step 6 was an
off-by-one error.
Issue: #20618
`log` and `exp` should be found on Windows systems now, as expected.
Update tests to be more specific in looking for the expected outcome of
the tutorial.
* Updated output message
* Use 'target_compile_definitions' for HAVE_LOG and HAVE_EXP
Previously, the change from using TutorialConfig.h to
target_compile_definitions happened without explanation as part of Step 8.
Migrate tutorial text from individual `directions.txt` files to the main
tutorial document. Add some comments to source code to provide anchors
for inclusion.