Commit Graph

32754 Commits

Author SHA1 Message Date
Ruslan Baratov 751f7b5255 string(TIMESTAMP ...): add '%a' and '%b' format specifiers
%b: Abbreviated month name (e.g. Oct).
%a: Abbreviated weekday name (e.g. Fri).
2016-09-12 19:07:38 +03:00
Brad King d5e4cdc0f8 Merge topic 'GetPrerequisites-absolute-ucrt'
258b7b28 GetPrerequisites: Recognize absolute paths to UCRT system libraries
2016-09-09 11:32:38 -04:00
Brad King 2572b824d4 Merge topic 'cmGeneratorTarget-cleanup'
cc6b948e cmGeneratorTarget: factor out common part of AddSources commands
52052ef8 cmGeneratorTarget: use erase-unique instead of reinitialization
3b362230 cmGeneratorTarget: don't clear container in destructor
2016-09-09 11:18:10 -04:00
Brad King c40cbccf7d Merge topic 'parse_arguments_argv_n'
cb299acc cmake_parse_arguments: Add option to read arguments from ARGC/ARGV#
2016-09-09 11:18:07 -04:00
Brad King c580227173 Merge topic 'fortran-parser-keywords'
695f0d0d cmFortranParser: Parse keywords as lexical tokens
1619fb46 cmFortranParser: Simplify grammar by skipping unknown statements
2016-09-09 11:18:04 -04:00
Brad King 46cf4151c4 Merge topic 'fortran-scanbuild-fixes'
52b95d88 CTestCustom: Suppress scan-build warnings in flex-generated lexer
2016-09-09 11:18:01 -04:00
Brad King 7c05f1371c Merge topic 'update-kwiml'
f2c98e12 Merge branch 'upstream-KWIML' into update-kwiml
e83b96b7 KWIML 2016-09-08 (d564b3c7)
aa668280 kwiml: Update import script for new upstream URL
2016-09-09 11:17:58 -04:00
Brad King 188a42a72f Merge topic 'FindMatlab-regression-tests-print-on-error'
1031e5d9 FindMatlab: add verbosity to the nightly tests
2016-09-09 11:17:55 -04:00
Kitware Robot d62a5dfc86 CMake Nightly Date Stamp 2016-09-09 00:01:05 -04:00
Daniel Pfeifer cc6b948e5e cmGeneratorTarget: factor out common part of AddSources commands 2016-09-08 23:47:16 +02:00
Daniel Pfeifer 52052ef88b cmGeneratorTarget: use erase-unique instead of reinitialization
Just to make it easier to find places where containers are cleared in
order to be recomputed.
2016-09-08 23:46:45 +02:00
Daniel Pfeifer 3b3622305b cmGeneratorTarget: don't clear container in destructor
It will be destroyed anyway.  This also makes it easier to search for
places where containers are atually cleared in order to be recomputed.
2016-09-08 23:46:18 +02:00
Bill Hoffman cb299acc27 cmake_parse_arguments: Add option to read arguments from ARGC/ARGV#
The `ARGC`/`ARGV#` variables in function scope hold the original
arguments with no ;-list flattening.  Add a way for functions to
cleanly parse arguments that may contain `;`.  This also avoids
extra copying of the arguments.

Co-Author: Brad King <brad.king@kitware.com>
2016-09-08 11:33:46 -04:00
Brad King 258b7b2833 GetPrerequisites: Recognize absolute paths to UCRT system libraries
The matching expression added by commit v3.5.0-rc1~33^2
(GetPrerequisites: Define api-ms-win-* files as system libraries,
2016-01-19) did not account for absolute paths to the UCRT libraries.
We already recognize absolute paths to the MSVC runtime libraries.
Do this for UCRT libraries too.

Issue: #16240
2016-09-08 10:24:01 -04:00
Brad King f2c98e125f Merge branch 'upstream-KWIML' into update-kwiml
* upstream-KWIML:
  KWIML 2016-09-08 (d564b3c7)

Closes: #16290
2016-09-08 09:50:31 -04:00
KWIML Upstream e83b96b793 KWIML 2016-09-08 (d564b3c7)
Code extracted from:

    https://gitlab.kitware.com/utils/kwiml.git

at commit d564b3c71a6dcec9b1cd84afb498b14a69307780 (master).

Upstream Shortlog
-----------------

Brad King (1):
      d564b3c7 Update copyright year

Richard W.M. Jones (1):
      12f000d5 abi.h: Add RISC-V, a little-endian architecture.
2016-09-08 09:50:04 -04:00
Brad King aa6682802e kwiml: Update import script for new upstream URL 2016-09-08 09:49:39 -04:00
Brad King 52b95d8893 CTestCustom: Suppress scan-build warnings in flex-generated lexer 2016-09-08 09:43:33 -04:00
Brad King 695f0d0d3a cmFortranParser: Parse keywords as lexical tokens
Teach the lexer to match and return specific Fortran keywords as tokens.
Update the parser to use these instead of always using a WORD token and
then checking the text.  This avoids extra string comparisons and will
allow more grammar productions to be unambiguously added later for
additional Fortran statements.
2016-09-08 09:40:02 -04:00
Brad King 1619fb46a8 cmFortranParser: Simplify grammar by skipping unknown statements
Our Fortran grammar is a bare minimum to extract dependencies.
Other statement syntax can be ignored, so simply skip to the
end of unrecognized statements.  This allows some of our existing
productions to be dropped.
2016-09-08 09:40:02 -04:00
Brad King f506489d1e Merge topic 'fortran-depend-cleanup'
d28da906 cmFortranParser: Inject a newline at end-of-file when missing
8c65a501 cmFortranParser: Revise indentation style to match rest of CMake
f70c71c5 cmFortranLexer: Update to flex 2.6
e11cd31f Fortran: Warn when dependency scanning fails to parse a source file
2016-09-08 09:36:57 -04:00
Brad King 988b3806b6 Merge topic 'vs-15-generator'
bdc679a8 VS15: Add Visual Studio 15 generator
a8936656 VS: Update v140 flag tables from VS 15 MSBuild files
21346d3f Features: Record features for VS 15 Preview 4
2016-09-08 09:36:54 -04:00
Brad King 04657ee2f8 Merge topic 'install-export-root-prefix'
290e4ce8 install: Fix computed import prefix in export files when it is "/"
2016-09-08 09:36:51 -04:00
Brad King 4c674eba7a Merge topic 'ExternalData-repeat-file'
f9973166 ExternalData: Tolerate files duplicated across multiple targets
2016-09-08 09:36:47 -04:00
Raffi Enficiaud 1031e5d993 FindMatlab: add verbosity to the nightly tests 2016-09-08 13:26:42 +02:00
Kitware Robot 5d0d9b36f2 CMake Nightly Date Stamp 2016-09-08 00:01:05 -04:00
Brad King bdc679a8ae VS15: Add Visual Studio 15 generator
Call the generator "Visual Studio 15" without any year because the
preview version of VS 15 does not provide a year in the product name.

Copy cmGlobalVisualStudio14Generator to cmGlobalVisualStudio15Generator
and update version numbers accordingly.  Add the VS15 enumeration value.
Note that we do not need to add a MSVC15 variable or v150 toolset
because Visual Studio 15 comes with an updated version of the v140
toolset and remains ABI-compatible.

Teach tests VSExternalInclude, RunCMake.GeneratorPlatform, and
RunCMake.GeneratorToolset to treat VS 15 as they do VS 10-14.

Closes: #16143
2016-09-07 15:49:08 -04:00
Brad King f9973166e8 ExternalData: Tolerate files duplicated across multiple targets
If multiple ExternalData_Target_Add calls generate the same output file
then we need to avoid calling add_custom_command multiple times with
that output.  This was already done within a single target by setting a
variable in the local function scope.  This will not be visible in other
calls though so we need to use a directory property instead to prevent
adding a custom command multiple times for one output in a directory.

Normally it is not safe to have multiple custom commands that produce
the same output file across multiple independent targets, but since we
use atomic replacement of outputs the resulting races should not be a
problem.  For the convenience of projects, tolerate this instead of
diagnosing it.  In particular, we previously allowed up to two copies
of the custom command in one directory because CMake has a fallback
from MAIN_DEPENDENCY to an `<output>.rule` file.

While at it, add a note to the documentation that typically only one
external data target should be needed for a project.

Reported-by: David Manthey <david.manthey@kitware.com>
2016-09-07 15:17:33 -04:00
Brad King 024eecd910 Merge branch 'release' 2016-09-07 11:56:35 -04:00
Brad King e214ceaf0c Merge branch 'release' 2016-09-07 11:56:00 -04:00
Brad King 4dda1812f0 Merge topic 'backport-curl-fix'
4b53a693 curl: Backport certificate reuse fix from 7.50.2
2016-09-07 11:55:24 -04:00
Brad King 7f7e5eafd8 Merge topic 'GNUInstallDirs-function'
17a24dc3 GNUInstallDirs: Add macro to expose internal logic publicly
2016-09-07 09:48:38 -04:00
Brad King 8665332513 Merge topic 'cpack-deb-package-description-fallback'
332b089a CPack/DEB: Make package description variable precedence match RPM
2016-09-07 09:48:35 -04:00
Brad King 85bfec7572 Merge topic 'fix-continue-after-error'
f1ad71d7 cmMakefile: Restore nested error logic use of cmExecutionStatus
2016-09-07 09:48:32 -04:00
Brad King 4469e986ee Merge topic 'include-what-you-use'
d47c7bf6 CPack: include what you use
2016-09-07 09:48:29 -04:00
Brad King bb000ba4fa Merge topic 'wix-fix-static-prefix'
1bc33257 CPackWIX: Fix incomplete CPACK_WIX_SKIP_PROGRAM_FOLDER implementation
2016-09-07 09:48:26 -04:00
Brad King 6137054744 Merge topic 'vs-minor-cleanups'
042aca55 VS: Verify that MSBuild.exe and devenv.com exist before using them
a756c74d Help: Clarify meaning of MSVC<NN> variables
2016-09-07 09:48:21 -04:00
Brad King 48b33b0633 Merge topic 'FindMatlab-fix-empty-list-index'
29768b03 FindMatlab: Avoid indexing an empty list of versions
2016-09-07 09:48:17 -04:00
Roger Leigh 17a24dc3b9 GNUInstallDirs: Add macro to expose internal logic publicly 2016-09-07 09:40:41 -04:00
Domen Vrankar 332b089ad2 CPack/DEB: Make package description variable precedence match RPM
Make `CPACK_DEBIAN_PACKAGE_DESCRIPTION` fallback variable precedence
match CPackRPM behavior as much as possible.  This is technically a
breaking change, but the new behavior is more consistent with
expectation anyway.

Closes: #16272
2016-09-07 09:33:35 -04:00
Brad King c5dcd31e92 CMake 3.6.2 2016-09-07 08:55:56 -04:00
Brad King 983371a6eb Merge branch 'backport-curl-fix' into release 2016-09-07 08:54:20 -04:00
Brad King 4b53a693bd curl: Backport certificate reuse fix from 7.50.2
Backport curl upstream commit curl-7_50_2~32 (nss: refuse previously
loaded certificate from file, 2016-08-22).
2016-09-07 08:46:42 -04:00
Brad King f76bcee9a6 Merge branch 'release' 2016-09-07 08:27:43 -04:00
Kitware Robot 21ace9d9c4 CMake Nightly Date Stamp 2016-09-07 00:01:04 -04:00
Daniel Pfeifer d47c7bf608 CPack: include what you use 2016-09-07 00:21:35 +02:00
Ben Keller 290e4ce8a8 install: Fix computed import prefix in export files when it is "/"
When exporting from a project (with install(EXPORT ...)), the
`<PROJECT>Targets.cmake` file contains logic for computing the
`_IMPORT_PREFIX` from its own location.  This `_IMPORT_PREFIX` is then
used in the `<PROJECT>Targets-<config>.cmake` file to generate the
`IMPORTED_LOCATION_<CONFIG>`.  The generation unconditionally appends a
"/" to `_IMPORT_PREFIX` before appending the rest of the path.  If
`_IMPORT_PREFIX` is "/", then the `IMPORTED_LOCATION_<CONFIG>`
properties all start with exactly two leading slashes ("//").

Exactly two leading slashes is a special case in POSIX file paths, such
that its interpretation is left up to the implementation.  This means
that changing the path prefix from "/" to "//" should not be allowed.

Since references to `_IMPORT_PREFIX` are always followed by a "/",
simply check the value to replace "/" with "".
2016-09-06 16:47:02 -04:00
Brad King f1ad71d7f8 cmMakefile: Restore nested error logic use of cmExecutionStatus
Since commit 14a8d61f (cmMakefile: Port nested error logic away from
cmExecutionStatus) we fail to continue processing function and macro
bodies after non-fatal errors.  A non-fatal error should not stop
foreach loops, macro bodies, nested bodies, or the outer script.
Add a test covering these cases, and revert the change to fix them.

Also revert commit 2af853de (cmMakefile: Simplify IssueMessage
implementation) because the assertion it added (which was removed by the
above commit and is restored by reverting it) is incorrect.  We do have
code paths that call cmMakefile::IssueMessage with an empty execution
stack, such as in CheckForUnusedVariables's LogUnused call.
2016-09-06 16:20:39 -04:00
Brad King d28da906fe cmFortranParser: Inject a newline at end-of-file when missing
Our parser grammar expects all statements to end in an `EOSTMT` token
such as a newline.  Ensure that the last statement in a file can be
parsed even if it is missing a newline.
2016-09-06 15:52:40 -04:00
Brad King 8c65a5017f cmFortranParser: Revise indentation style to match rest of CMake
While at it, remove unused token CPP_TOENDL.
2016-09-06 15:52:40 -04:00