When testing CMAKE_<LANG>_COMPILER_ID values, do not explicitly
dereference or quote the variable. We want if() to auto-dereference the
variable and not its value. Also replace MATCHES with STREQUAL where
equivalent.
- sha265.c is using some C99 specific features, in particular static
array dimensions in a function parameter array (see section 6.7.5-7
of the C99 spec). A #ifndef check was in place to prevent compilation
under MSVC but it actually needed to check for C99 compliance instead.
Even still, the C99 code fails on a few compilers (PGI being one) so for
compatibility reasons, the C99 version of the function declaration is
removed entirely, leaving only the C89 version.
- CHECK_SYMBOL_EXISTS is used to determine the presense of bswap
functions from byteswap.h. Most compilers re-dedefine the bswap_N
functions as a __bswap_N function implemented by the compiler. Since
bswap_N is usually defined as a macro then it's mere presence passes
the check. Some versions of the PGI compiler though have shipped
broken headers for byteswap.h, in particular 11.3 for x64 linux
provides byteswap.h but is missing an associated bits/byteswap.h which
causes some of the bswap_N macros to be defined but broken and unusable.
The bswap_N checks have been converted to CHECK_SOURCE_COMPILES to
ensure that the bswap_N calls are actually usable and not just merely
defined.
Any "#define restrict ..." line may conflict with MSVC header files
that use "__declspec(restrict)". Define our own LZMA_RESTRICT macro
in "Utilities/cmliblzma/config.h.in" and transform liblzma code to
use it:
git grep -lE '\<restrict\>' Utilities/cmliblzma/liblzma |
xargs sed -i 's/\<restrict\>/LZMA_RESTRICT/g'
Explicitly invoke python script through the interpreter since
windows does not act on hashbangs.
Use the found qcollectiongenerator executable rather than what
happens to be in PATH.
Add identifiers for variables, properties, policies and modules.
This will allow QtCreator to show relevant documentation if it learns
more about the context of the contents of cmake files.
The error is caused by a workaround for UNICOS. The workaround
incorrectly uses the _CRAYC macro to determine if building for
UNICOS. This macro will always be defined for the Cray C and
C++ compiler regardless of the target platform, even when
building for Linux. The correct macro should be _CRAY, which as
per Cray documentation is only defined for UNICOS targeted
builds.
Newer HP-UX versions (e.g. 11.31) also offers F_SETTIMES, but with a
different struct for the timing information.
Suggested-by: Eric Berge <ericmberge@gmail.com>
Newer HP-UX versions (e.g. 11.31) also offers F_SETTIMES, but with a different
struct for the timing information.
Suggested-by: Eric Berge <ericmberge@gmail.com>
Teach set_property and get_property an "INSTALL" property type to be
associated with install-tree file paths. Make the properties available
to CPack for use during packaging. Add a "prop_inst" Sphinx domain
object type for documentation of such properties.
Use the CPack DragNDrop generator instead of the deprecated PackageMaker
tool to package CMake itself. This provides an installation experience
that is more consistent with other products on OS X and allows users to
select the destination directory easily. It also avoids installing
"/private/var/db/receipts/com.Kitware.CMake.*" receipts that must be
removed by "pkgutil --forget com.Kitware.CMake" before another version
of CMake can be installed.
The DragNDrop installer does not support a post-flight script, so drop
our configuration of it. The cmake-gui has an option for installing
symbolic links to enable command-line use. In practice users may simply
add "/Applications/CMake.app/Contents/bin" to their PATH instead.
In the domain clear_doc method, avoid removing entries from a dictionary
while iterating over it. Instead accumulate a set of entries to remove
at the end.