Tests/Preprocess: Remove unnecessary VS version tests

Since commit v2.8.12~436^2 (VS 10: Escape ; as %3B in preprocessor
definitions, 2013-04-11) the Tests/Preprocessor/CMakeLists.txt file no
longer uses the PP_VS1XX values, so stop setting them.
VS14: Add Visual Studio 14 generator (#14982)

Call the generator "Visual Studio 14" without any year because this
version of VS does not provide a year in the product name.

Copy cmGlobalVisualStudio12Generator to cmGlobalVisualStudio14Generator
and update version numbers accordingly.  Add the VS14 enumeration value.
Teach the platform module Windows-MSVC to set MSVC14 and document the
variable.  Teach module InstallRequiredSystemLibraries to look for the VS
14 runtime libraries.

Teach tests CheckCompilerRelatedVariables, VSExternalInclude, and
RunCMake.GeneratorToolset to treat VS 14 as they do VS 10, 11, and 12.

Co-Author: Pawel Stopinski <diokhan@go2.pl>
VS14: Generate flag tables from MSBuild v140 tool files

Run cmparseMSBuildXML.py on cl.xml, lib.xml, and link.xml to generate
our flag tables:

 python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/V140/1033/cl.xml" > cmVS14CLFlagTable.h
 python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/V140/1033/lib.xml" > cmVS14LibFlagTable.h
 python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/V140/1033/link.xml" > cmVS14LinkFlagTable.h

Fix up the declaration names at the top of each file.  Finally, teach
cmVisualStudio10TargetGenerator to select the version of the table
matching the version of VS.

Co-Author: Pawel Stopinski <diokhan@go2.pl>
VS14: Fix Cl and Link flag tables as previous versions

Apply the flag table fixes from:

 commit 9c7f234c (VS: Fix /MANIFESTUAC:NO linker option mapping, 2014-05-07)
 commit e8633e66 (VS: Fix /analyze:log flag mapping, 2014-04-01)
 commit f2caf795 (VS: Fix /MAP:mapfile flag mapping, 2013-07-09)

to the VS 14 flag tables.
FindBoost: Add -vc140 mangling for VS 14

Co-Author: Pawel Stopinski <diokhan@go2.pl>
Tests: Simplify LoadCommand tests

Drop out-of-place coverage of CheckFunctionExists module.  The "printf"
symbol is not available on VS 14 without including the <stdio.h> header
to get a definition.
FindJPEG: Add alternative name 'libjpeg'

Newer versions of jpeglib build the .lib file on Windows with a
different name by default.  Its now called libjpeg.lib instead of
jpeg.lib.
FindOpenMP: ICC 15 deprecates -openmp, use -qopenmp

Intel Composer XE 2015 Beta 2 deprecates all options starting with -o
for sake of compatibility with other compilers expecting anything goes
after -o... is output file name.
Help: Add notes for topic 'vs14-generator'
FindQt4: Don't further process qmake if it does not belong to Qt4

If the only qmake that can be found belongs to Qt5 the find module
would otherwise still further interrogate it and issue diagnostics
which are specific to Qt4.
CMake Nightly Date Stamp
Ninja: Consider only custom commands deps as side-effects (#14972)

Since commit v2.8.12~248^2 (Ninja: Custom Command file depends don't
need to exist before building, 2013-06-07) all explicit dependencies
inside build folder were considered as possible build command
side-effects and phony rules were produced for them in case they don't
exist when starting to build. This is unnecessary since regular compile
inputs need to exist or cmake will fail.  Moreover the exception for
sources having GENERATED property that can be missing is already handled
by WriteAssumedSourceDependencies.

This fixes unwanted phony rules for all regular source files when doing
in-source build, causing Ninja not complain when such files gets missing,
i.e. during development. Also this reduces number of rules in ninja.build.

Now only custom command dependencies are considered as possible side-effects.
Ninja: Don't limit custom cmd side-effects to build folder (#14972)

Actually custom command can write wherever it wants to, such as temporary
folder or source folder, possibly violating rules that only build folder should
be affected. Therefore we should consider custom command dependency at any path
as possible side effect adding phony rule.

We avoid adding phony rules for regular source files (since the paraent
commit) so we no longer need the in-build-tree test to avoid them.
Ninja: Skip generating empty phony rules

Ninja generator ensures that all custom commands being target
dependencies are run before other source compilations. However in case
there are no such dependencies it currently generates empty phony rules
which clutter the build graph.

Teach the Ninja generator to produce such rules only when necessary.
FindCUDA: Fix OSX Clang & no C language enabled

When setting default CUDA_HOST_COMPILER we must dereference CMAKE_C_COMPILER,
i.e. /usr/bin/clang should be used instead /usr/bin/cc which is symlink.
Otherwise CUDA thinks it is GCC and issues -dumpspecs which is unknown option
to Clang.

Also in case neither CMAKE_C_COMPILER is defined (project does not use C
language) nor CUDA_HOST_COMPILER is specified manually we should skip -ccbin
and let nvcc use its own default C compiler.
Tests: Refactor RunCMake.File_Generate to drop RunCMake_TEST_FILE

Drop use of RunCMake_TEST_FILE and pass the test file in through a
definition in RunCMake_TEST_OPTIONS.
Tests: Refactor RunCMake.include_directories to drop RunCMake_TEST_FILE

Drop use of RunCMake_TEST_FILE and pass the test file in through a
definition in RunCMake_TEST_OPTIONS.
Tests: Drop broken and now unused RunCMake_TEST_FILE option

We cannot use -DRunCMake_TEST=${RunCMake_TEST_FILE} because test cases
use project(${RunCMake_TEST}) and the project name cannot be a path to a
file.  The parent and grandparent commits removed the only uses of the
option.  Drop it now.
Tests: Speed up RunCMake.include_directories test

Remove unnecessary language initializations.  Change the main
CMakeLists.txt project() call to specify NONE.  Use enable_language(CXX)
instead of project() in cases that need it to avoid enabling C too.
Merge topic 'FindJPEG-new-windows-name'

115811dc FindJPEG: Add alternative name 'libjpeg'