Commit Graph

28725 Commits

Author SHA1 Message Date
Brad King
aae1efc7d2 Merge topic 'ninja-fortran-doc'
f2fa7d20b2 Merge branch 'backport-3.17-ninja-fortran-doc' into ninja-fortran-doc
fa31c195b8 Ninja: Document that Fortran support is available with Ninja 1.10+

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4626
2020-04-20 07:53:49 -04:00
Kitware Robot
04e05550bb CMake Nightly Date Stamp 2020-04-20 00:01:34 -04:00
Craig Scott
348a2a9734 Merge topic 'ctest-memcheck-sanitizers'
e03d3c08f0 CTest: Fix '-T MemCheck' command-line support for sanitizers
82b6091776 Tests: Fix RunCMake.ctest_memcheck test script syntax errors

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4618
2020-04-19 07:07:13 -04:00
Kitware Robot
53b773113d CMake Nightly Date Stamp 2020-04-19 00:01:15 -04:00
Marc Chevrier
40d1735681 Merge topic 'add-contains-to-cmext-algorithm'
aacd4e4a90 Refactoring: add cm::contains to <cmext/algorithm>

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4606
2020-04-18 05:27:52 -04:00
Kitware Robot
fbf8db89e4 CMake Nightly Date Stamp 2020-04-18 00:01:14 -04:00
Brad King
f2fa7d20b2 Merge branch 'backport-3.17-ninja-fortran-doc' into ninja-fortran-doc 2020-04-17 11:04:56 -04:00
Brad King
fa31c195b8 Ninja: Document that Fortran support is available with Ninja 1.10+
Ninja 1.10 was released in Jan 2020 and has the features we need
to support Fortran.  Replace documentation that mentions Kitware's
branch with mention of Ninja 1.10+ instead.
2020-04-17 10:58:53 -04:00
Brad King
e03d3c08f0 CTest: Fix '-T MemCheck' command-line support for sanitizers
In commit 49948f7221 (ctest_memcheck: Add support for ThreadSanitizer,
2014-07-07, v3.1.0-rc1~322^2~1) and commit 1e005eadbc (CTest: Fix
MemoryCheckType from 'ctest -T MemCheck', 2014-07-15, v3.1.0-rc1~298^2),
the `CMakeCommand` internal setting was left set only when using `ctest
-S` scripts.  Instead simply use CTest's corresponding CMake directly
without passing it through an internal setting.

Fixes: #20584
2020-04-17 08:36:01 -04:00
Marc Chevrier
aacd4e4a90 Refactoring: add cm::contains to <cmext/algorithm> 2020-04-17 10:00:03 +02:00
Kitware Robot
9a450bcfec CMake Nightly Date Stamp 2020-04-17 00:01:16 -04:00
Kyle Edwards
5f20e85412 Merge topic 'cat_cmd_20557'
a625f30785 cmake -E: add cat command.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4600
2020-04-16 11:35:55 -04:00
Brad King
7e8df1bb24 Merge topic 'cuda_architectures'
21131ca60c CUDA: Add CudaOnly.CompileFlags test
f0931b0790 CUDA: Convert tests to use CUDA_ARCHITECTURES
e98588aaba CUDA: Add CUDA_ARCHITECTURES target property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Patrick Stotko <stotko@cs.uni-bonn.de>
Merge-request: !4568
2020-04-16 11:11:33 -04:00
Brad King
854cc83a76 Merge topic 'makefile-target-special'
a4173ef165 Tests: Enable coverage of special chars in include dirs for Makefiles
d74e651b78 Makefiles: Re-implement makefile target path escaping and quoting
031bfaa865 Makefiles: Factor out makefile target path escaping and quoting
ca343dad07 Makefiles: Convert paths with '#' on command-lines to short path on Windows
af7de05853 Makefiles: Do not use '\#' escape sequence with Windows-style make tools
1639ee70ef cmDepends: Update types to always use a Makefile generator
413d26030f cmGlobalNinjaGenerator: Remove outdated comment

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4605
2020-04-16 11:05:04 -04:00
Brad King
b9b69774ee Merge topic 'update-kwsys'
87a06afce3 Merge branch 'upstream-KWSys' into update-kwsys
1b37136633 KWSys 2020-04-15 (5ada375f)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4614
2020-04-16 09:09:00 -04:00
Kitware Robot
bec1c211d9 CMake Nightly Date Stamp 2020-04-16 00:01:11 -04:00
Johnny Jazeix
a625f30785 cmake -E: add cat command.
Concatenate files and print on the standard output.

FIXES: #20557
2020-04-15 20:56:56 +02:00
Raul Tambre
e98588aaba CUDA: Add CUDA_ARCHITECTURES target property
Simplifies CUDA target architecture handling.

Required for Clang support as Clang doesn't automatically select a supported architecture.
We detect a supported architecture during compiler identification and set CMAKE_CUDA_ARCHITECTURES to it.

Introduces CMP0104 for backwards compatibility with manually setting code generation flags with NVCC.

Implements #17963.
2020-04-15 17:55:41 +03:00
Brad King
4f7d16c68f Merge topic 'cpack-nsis-dpi-aware'
d6840a4f3c CPack/NSIS: Add option for setting DPI-aware

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4607
2020-04-15 09:50:49 -04:00
Brad King
156196938c Merge topic 'cmprop-source'
e64fa5f1b6 cmSourceFile::GetProperty: return cmProp
fc223f9860 cmGlobalXCodeGenerator: Fix genex interpreter overloads

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4603
2020-04-15 09:49:46 -04:00
Brad King
a67565751f Merge topic 'msbuildUtf8Support'
bc877a7e94 Add support to indicate UTF-8 custom command pipe output encoding

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4587
2020-04-15 09:44:48 -04:00
Brad King
45d61f9f89 Merge topic 'ibmi-aix-exports'
420e91c951 AIX: Activate symbol export/import IBM i (OS400)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4611
2020-04-15 09:39:56 -04:00
Brad King
d74e651b78 Makefiles: Re-implement makefile target path escaping and quoting
Previously we used `cmSystemTools::ConvertToOutputPath` which internally
used KWSys methods

* SystemTools::ConvertToUnixOutputPath
* SystemTools::ConvertToWindowsOutputPath

These were written in very early days of CMake and have some
limitations:

* They do not encode all characters.  E.g. '#' is left out.
* They attempt to do some path cleanup and handle existing quotes.
  These days CMake has clean unquoted paths already.
* They attempted to encode paths both for makefile targets and
  for shell command lines.  The latter use has mostly been replaced.
* Choosing between the two methods depends on a global variable!
  Several code paths in CMake have to copy the global generator's
  member ForceUnixPaths variable over to the cmSystemTools global.

Re-implement the `ConvertToMakefilePath` method to drop use of those
methods.  Compute suitable makefile target path escaping and quoting
via local logic.  Add support for more characters like '#'.

Fixes: #20555
2020-04-15 08:34:49 -04:00
Brad King
031bfaa865 Makefiles: Factor out makefile target path escaping and quoting
Code paths that write makefile target paths use a combination of
`cmSystemTools::ConvertToOutputPath` and `cmMakeSafe`.  Some were
missing the latter.  Wrap these two steps up into a dedicated
`ConvertToMakefilePath` method provided on both the local and global
generators.
2020-04-15 08:34:48 -04:00
Brad King
ca343dad07 Makefiles: Convert paths with '#' on command-lines to short path on Windows
In `ConvertToOutputForExisting` we convert paths with spaces to short
paths on Windows for use on command lines, e.g. for include directories.
Do the same for paths with `#` since tools like NMake do not have a way
to reliably put `#` in variable assignments.
2020-04-15 08:34:46 -04:00
Brad King
af7de05853 Makefiles: Do not use '\#' escape sequence with Windows-style make tools
Since commit fbf7a92975 (Makefile: Handle '#' in COMPILE_OPTIONS,
2014-08-12, v3.1.0-rc1~174^2) we escape `#` as `\#` in `flags.make`
variable assignments so that they are not treated as a comment.
Windows-style make tools like NMake do not interpret backslashes
in that way.  Other means will be needed to handle `#` in contexts
where it is even possible.  The test suite is not covering this
for NMake anyway, and actually has a workaround in `Tests/TryCompile`
for the old behavior, which we can now update.
2020-04-15 08:34:18 -04:00
Brad King
87a06afce3 Merge branch 'upstream-KWSys' into update-kwsys
# By KWSys Upstream
* upstream-KWSys:
  KWSys 2020-04-15 (5ada375f)
2020-04-15 06:41:18 -04:00
Kitware Robot
c63fb217c0 CMake Nightly Date Stamp 2020-04-15 00:01:08 -04:00
Brad King
420e91c951 AIX: Activate symbol export/import IBM i (OS400)
Fixes: #20582
2020-04-14 14:45:51 -04:00
Vitaly Stakhovsky
e64fa5f1b6 cmSourceFile::GetProperty: return cmProp 2020-04-14 10:57:17 -04:00
Brad King
fc223f9860 cmGlobalXCodeGenerator: Fix genex interpreter overloads
Overload both signatures to add Xcode-specific functionality.

Co-Author: Vitaly Stakhovsky <vvs31415@gitlab.org>
2020-04-14 10:56:45 -04:00
Brad King
734238d64f Merge topic 'sort_list_natural_20563'
da99eca1e7 list: add NATURAL sorting on SORT sub-command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4602
2020-04-14 09:45:55 -04:00
Brad King
b54d80b293 Merge topic 'cmake-gui-system-processor'
11cbf79d15 cmake-gui: Pass CMAKE_SYSTEM_PROCESSOR to from gui to cmake

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4604
2020-04-14 09:43:34 -04:00
Brad King
1ee921531c Merge topic 'clang-tidy-9.0-changes'
7cb72fadc8 cmConfigureFileCommand: simplify no-op argument handling
f413727d27 clang-tidy: address bugprone-sizeof-expression lint
609c3b7cdc cmComputeLinkInformation: reserve space in built-up string
89207abf1f cmParseCacheCoverage: use cmSystemTools::SplitString
59b7adddc4 nits: replace some "c" instances with 'c'
80edc2cd8a cmMakefile: use std::string_view
37872088cf clang-tidy: address readability-else-after-return lint
f2a33107be clang-tidy: address bugprone-branch-clone lints
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4584
2020-04-14 09:42:17 -04:00
Johnny Jazeix
d6840a4f3c CPack/NSIS: Add option for setting DPI-aware
See https://nsis.sourceforge.io/Reference/ManifestDPIAware
for more information.

Fixes: #17724
2020-04-14 13:47:49 +02:00
Kitware Robot
deba768e14 CMake Nightly Date Stamp 2020-04-14 00:01:11 -04:00
Justin Goshi
bc877a7e94 Add support to indicate UTF-8 custom command pipe output encoding
Adds a flag to indicate that pipe output from a custom command should be
interpreted as UTF-8 encoded. This change does not introduce a public
way to set the flag, but generators that create internally-generated
commands know if they are calling cmake, which uses UTF-8 pipes.

MSBuild added support for interpreting output of PreBuildEvent,
PreLinkEvent, PostBuildEvent, and CustomBuildStep as UTF-8. This change
will appear in Visual Studio 16.6 Preview 3. It is opt-in, and you need
to add the StdOutEncoding tag. MSBuild treats these as property bags so
if we emit the tag for earlier versions of Visual Studio it would be
safely ignored. This change emits the StdOutEncoding tag and sets it to
UTF-8 whenever the custom command UTF-8 pipe flag is set. This fixes
globalization issues when the output from cmake contained characters
that required MSBuild to interpret as UTF-8 before displaying them.
2020-04-13 12:54:47 -07:00
Johnny Jazeix
da99eca1e7 list: add NATURAL sorting on SORT sub-command
Fixes: #20563
2020-04-13 18:26:28 +02:00
Ben Boeckel
7cb72fadc8 cmConfigureFileCommand: simplify no-op argument handling 2020-04-13 11:26:03 -04:00
Ben Boeckel
f413727d27 clang-tidy: address bugprone-sizeof-expression lint 2020-04-13 11:26:03 -04:00
Ben Boeckel
609c3b7cdc cmComputeLinkInformation: reserve space in built-up string
This should avoid any reallocations that would occur in this function.
2020-04-13 11:26:03 -04:00
Ben Boeckel
89207abf1f cmParseCacheCoverage: use cmSystemTools::SplitString 2020-04-13 11:26:03 -04:00
Ben Boeckel
59b7adddc4 nits: replace some "c" instances with 'c' 2020-04-13 11:26:03 -04:00
Ben Boeckel
80edc2cd8a cmMakefile: use std::string_view 2020-04-13 11:26:03 -04:00
Ben Boeckel
f2a33107be clang-tidy: address bugprone-branch-clone lints
Arguably, many of these are bugs in `clang-tidy`. An if/else tree with
other conditionals between cloned blocks may be relying on the
intermediate logic to fall out of the case and inverting this logic may
be non-trivial.

See: https://bugs.llvm.org/show_bug.cgi?id=44165
2020-04-13 11:26:02 -04:00
Jiri Malak
11cbf79d15 cmake-gui: Pass CMAKE_SYSTEM_PROCESSOR to from gui to cmake
Add missing `CMAKE_SYSTEM_PROCESSOR` cmake cache entry to passed options
for first configure.  We already pass `CMAKE_SYSTEM_{NAME,VERSION}`.
2020-04-13 11:17:10 -04:00
Brad King
1639ee70ef cmDepends: Update types to always use a Makefile generator
We only use these classes with a `cmLocalUnixMakefileGenerator3`.
Construct using that type instead of just `cmLocalGenerator` so
that the Makefile-specific methods are available.
2020-04-13 11:03:00 -04:00
Brad King
413d26030f cmGlobalNinjaGenerator: Remove outdated comment 2020-04-13 11:02:59 -04:00
Brad King
eb28858586 Merge topic 'include-dir-special'
9be48c4d0b Tests: Add coverage for special characters in include directories
dc0dc974a9 Xcode: Fix quoting of paths with square brackets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4591
2020-04-13 11:01:03 -04:00
Brad King
140c11e8d0 Merge topic 'update-kwsys'
0b495b6ca9 Merge branch 'upstream-KWSys' into update-kwsys
4ab6fcd676 KWSys 2020-04-10 (b62956f5)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4594
2020-04-13 10:47:55 -04:00