The `clean` doesn't appear to serve a purpose. Make already does
dependency tracking, so if files are out of date they will be rebuilt.
The `clean` rule does however cause problems when the test executable
already exists. In that case it will delete outputs, including the test
executable, and then fail. By the time the test executable was deleted,
it was already determined that it was up to date, and so does not get
rebuilt. You end up having to run the command twice, each time seesawing
between deleting outputs or generating outputs and running the tests.
The `export()` command purely exports a cmake script into the build
directory; it is not related to find_package at all. It is technically
not necessary. The main use case would be a user copying it into their
internal cmake/ dir in their project, and then using `include()`'ing
that file in their cmake.
The `install(EXPORT...` command is what actually generates a cmake
module that is put on the filesystem in a location that can be found by
`find_package` when in config mode.
Since the file offset is now represented in all cases as a `long long`,
the previous check comparing the sizes of `unsigned long` and `size_t`
no longer makes sense.
This implements #786.
TinyXML reads the entire file into a pre-allocated buffer in memory. To
get the buffer size, it uses `fseek()` to seek to the end of the file,
and `ftell()` to get the current byte offset. But because `ftell()`
returns a 32-bit signed value, it can only represent byte offsets, hence
file sizes, up to about 2GB.
To get around this, `fseek` and `ftell` have been replaced by the
`TIXML_FSEEK` and `TIXML_FTELL` macros, respectively, which will resolve
to 64-bit versions of these functions on platforms that have them.
The tokens `TRUE` and `FALSE` are defined in current versions of MSVC, breaking compilation of tinyxml2.cpp in MSVC due to the use of these tokens as variable names in the function `XMLUtil::ToBool`.
Simply changing the variable names to something else resolves the problem.