The original code assumed that if `find_program` found `ccache`, then
`ccache` must be in the `PATH`. However, `find_program` searches in a
lot of different places. This can lead to situations where `ccache` is
found, but the compile will fail because it's not in the path.
This change also uses `CMAKE_XXX_COMPILER_LAUNCHER` instead of
`RULE_LAUNCH_COMPILE`, as the latter is for internal use only per the
CMake docs.
Thank you for the very useful library!
Few improvements:
- Better header hygiene
- Isolate `windows.h` to `.cpp` whenever possible
- Use `WIN32_LEAN_AND_MEAN`
- Remove unused headers
Tested on Windows with
```
cmake .. -DCMAKE_BUILD_TYPE=Debug -GNinja -DCMAKE_EXPORT_COMPILE_COMMANDS=1
-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS="-ftime-trace -Wall -Wextra -Wpedantic
-Wno-ignored-attributes" -DCMAKE_COLOR_DIAGNOSTICS=1 -DCPPTRACE_BUILD_TESTING=1
-DCPPTRACE_BUILD_BENCHMARKING=0
```
There's a lot more that can be improved if you are interested.
---------
Co-authored-by: Jeremy Rifkin <51220084+jeremy-rifkin@users.noreply.github.com>
I've updated cmake conditions, to allow libbacktrace usage under
mingw64. And fixed one compilation issue.
Tested with package
https://packages.msys2.org/package/mingw-w64-x86_64-libbacktrace
with this setup:
```
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCPPTRACE_GET_SYMBOLS_WITH_LIBBACKTRACE=On
```
macOS provides a libunwind in SDK, so we can skip the library search
process.
---------
Co-authored-by: Jeremy Rifkin <51220084+jeremy-rifkin@users.noreply.github.com>