Refactoring in the topic merged by commit v3.2.0-rc1~400 (Merge topic
'refactor-search-path-construction', 2014-11-13) introduced a bug that
filters out duplicate paths in an incorrect order. Restore the search
path to its documented order even when duplicate paths are present.
Reported-by: Marc CHEVRIER <marc.chevrier@sap.com>
Teach cmSystemTools::MakefileColorEcho to use the color printing API
only when we actually have a color to print. This avoids printing
escape sequences that do not change the text attributes.
Since commit v3.3.0-rc1~480^2~4 (Makefile: Fix output during parallel
builds, 2015-02-05) we always use this code path to print progress and
rule messages even when color is disabled (e.g. in a try_compile). It
is important to avoid printing escapes when there is no color because on
MSYS we have no isatty and so assume that vt100 escapes are supported,
but we do not want to print them when capturing try_compile output.
If we capture the vt100 escapes in try_compile output, they contain
unbalanced square brackets. This causes CMakeParseImplicitLinkInfo
to fail to separate lines in a ;-list and therefore fail to extract
information from the link line. Then mixed-language linking breaks.
Remove use of cmXMLSafe from CTest when generating content that is later
handled by cmXMLWriter. This was broken by refactoring in the topic
merged by commit v3.3.0-rc1~22 (Merge topic 'ctest-xml-refactor',
2015-05-28).
Exposed by a CMP0054 warning with code like:
cmake_minimum_required(VERSION 2.8.9 FATAL_ERROR)
project(MyProj NONE)
enable_language(C)
enable_language(CXX)
While at it, use STREQUAL for testing the compiler id against "GNU".
Suggested-by: Rolf Eike Beer <eike@sf-mail.de>
The Fortran compiler version detection infrastructure added by commit
v3.3.0-rc1~436^2~9 (Fortran: Add infrastructure to detect compiler
version, 2015-02-17) forgot to update CMakeFortranCompiler.cmake.in to
save the compiler version persistently as we do already in
"CMake{C,CXX}Compiler.cmake.in". Add the missing line now.
Refactoring in commit v3.3.0-rc1~76^2 (cmMakefile: Handle CMP0014 before
configuring the generator, 2015-05-14) accidentally left the file name
"/CMakeLists.txt" in the error message. Remove it and add a test case.
Since commit v3.3.0-rc1~183^2 (Xcode: Refine quoting rules for Strings,
2015-04-09) we no longer quote strings containing a period ('.').
However, file names like "icon29x29~ipad.png" still need quoting because
they contain a tilde ('~'). Add tilde to our explicit list of
characters that need quoting because such file names will no longer
happen to be quoted because they contain a period.
The directory is at args[0], not args[1]. Introduced in commit
v2.6.0~489 (... 5889 ... tests are not found in some cases when using
add_subdirectory ..., 2008-01-18).
Since commit v3.1.0-rc1~564^2 (OS X: Use -iframework for system
framework directories, 2014-05-05) we test the version of Clang to see
if it supports -iframework. Fix the version test used for AppleClang
since it uses a different version scheme than upstream Clang.
Commit v3.3.0-rc1~196^2~7 (cmake: Simplify command clean up
loop., 2015-04-12) introduced a bug that built-in commands which
were renamed no longer had their original name restored when
cleanup is performed between configure runs. Check for that
and restore the commands with their original name.
Extend the complex test for this. That test is run by ctest with
the --build-two-config command line option.
Extend the workaround added by commit v3.2.0-rc1~278^2 (FindMPI:
Workaround Intel MPI 5.0.1 exit code problem, 2014-12-04) with an
additional/alternate keyword to recognize the case with recent GCCs.
This setting was added to support QtIFW 2.0 in commit v3.3.0-rc1~70^2~1
(CPackIFW: Add QtIFW 2.0 support, 2015-04-27). We need to load the
CPackIFW module to initialize it if it is not set.
We use a special dedicated structure to store the LINK_LIBRARIES target
property. Do not try to construct a string from a NULL value. Instead
leave the property structure empty when no value is given.
Reported-by: Ghyslain Leclerc <ghleclerc@gmail.com>
Since commit v3.3.0-rc1~397^2 (Check*CompilerFlag: Refactor method used
to pass flags, 2015-02-24) these check modules pass the flags to the
compiler front-end during linking as well as during compilation. This
breaks checks for flags like '-x c++' that are meant only for the
compilation step. Revert the change and add a test covering a
compiler-only flag.
In commit v3.3.0-rc1~352^2~3 (Genex: Allow COMPILE_LANGUAGE when
processing compile definitions, 2015-03-04) the name of the variable
used to pass preprocessor definitions to the Fortran dependency scanner
was changed to be per-language, but the actual dependency scanning code
was not updated accordingly. Update the code and add a test case.
Reported-by: Radovan Bast <radovan.bast@gmail.com>
Replace caret-headers with double-quote-headers and replace dash-headers
with caret-headers. This makes the headers match their level of nesting
according to our documentation style guide in cmake-developers(7).