This allows intermediate build artifacts to be cleaned up without
specifying them individually as BYPRODUCTS.
When building a data file <name>, all files are first built under
tmp/<name> before the target itself is moved from tmp/<name>/<name> to
Packaged/<name>.
add_house_file() could also be modified in this way, but it wouldn't
reduce the boilerplate by much, so it's probably not worth it.
Uses add_custom_command() to add rules for generating these directories,
rather than creating them only when CMakeLists.txt runs. With this
change, you can manually delete Packaged from the build directory
without causing subsequent builds to fail.
All the individual executables are marked EXCLUDE_FROM_ALL, but the
added Tools custom target is marked ALL. The only visible effect of this
is that ConvertColorCursors does not get built by default, since all the
other tools are dependencies for the Resources or Tools targets, which
are both built by default. Otherwise, the benefit is simply to keep the
dependency tree clean. Only three targets are built by default:
Aerofoil, its resources and the conversion tools. Everything else is
built to satisfy dependencies.
- Includes WindowsUnicodeToolShim.h.
- Replaces sprintf_s() with std::ostringstream.
- Replaces fopen_s() with fopen_utf8().
- Switches to the toolMain() wrapper, which is a no-op on except on
Windows, where it should improve Unicode support, though I can't test
that on my end.
- Replaces \ with / in paths, which should still be Windows-compatible.
Removes unused Windows-specific headers and adds arguments to specify
source and output directories, which is necessary for out-of-tree
builds, which are necessary to avoid name collisions on platforms where
executables have no file extension (so, basically everything except
Windows).
Also add stddef.h include to GpRenderedGlyphMetrics.h to make size_t
visible. Does MSVC provide size_t by default, or via stdint.h? This
prevents compilation and I can't see how this would have compiled on
Windows otherwise.
- Adds missing includes, removes some unused ones.
- Removes unused Windows.h and shellapi.h includes.
- Uses / as path separator. This is portable and should still work fine
on Windows.
Downgrades c++11-narrowing to a warning when compiling with Clang. A
better solution would be to fix the error, but this at least brings
Clang in line with the more permissive GCC, which treats this as a
warning by default.