Our TEST* macro calls pass arguments such as "int64_t" with the
expectation that the preprocessing token will be used literally.
Some platforms #define int64_t as "long long" which is not a valid
preprocessing token. Perform preprocessor symbol concatenation
on the type names at the first level of macro evaluation to avoid
expanding the names.
Teach KWIML_test to use part of the C++ runtime library. Otherwise the
linker complains:
warning LNK4089: all references to 'MSVCP71.dll' discarded by /OPT:REF
Some system headers may define macros that interfere with preprocessor
tests in KWIML headers. Test this case to be sure that the verification
checks at the bottom of the headers do not fail.
Xcode 2.x forgets to create the target output directory before linking
the individual architecture pieces of a universal binary for the target
KWIML_test. Then it passes the directory to -L and -F options when
linking the and warns that the directory does not exist. We work around
the problem by using a pre-build rule on the target to create the output
directory.
KWIML defines format string macros matching the fixed-sized types. This
test checks that they behave as expected and that the arguments match
the *sizes* expected by the format strings.
Provides header files that use preprocessor tests to detect and provide
information about the compiler and its target architecture. The headers
contain no configuration-time test results and thus may be installed
into an architecture-independent include directory. This makes them
suitable for use in the public interface of any package.