Commit Graph

28716 Commits

Author SHA1 Message Date
Marc Chevrier
38332fc4fa cmGeneratorExpressionDAGChecker: introduce method Top() 2020-04-18 11:29:43 +02: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
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
Brad King
b30e5fd972 Merge topic 'clang_cuda_prep'
d86fcc6359 CUDAToolkit: Deduce toolkit binary directory from compiler path only for NVCC
87e98bf8be CUDA: Forward CMAKE_CUDA_COMPILER_TARGET in try_compile()
60e60b9201 GNU: Disable depfiles in try-compile mode only for GCC
5f02add366 CUDA: Refactor PTX compilation flag into compiler modules
25439c7d62 Clang: Refactor CXX standard flags into __compiler_clang_cxx_standards()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4567
2020-04-13 10:46:12 -04:00
Kitware Robot
e42389c83f CMake Nightly Date Stamp 2020-04-13 00:01:13 -04:00
Kitware Robot
26e4d9345c CMake Nightly Date Stamp 2020-04-12 00:01:10 -04:00
Kitware Robot
120eb23104 CMake Nightly Date Stamp 2020-04-11 00:01:11 -04:00
Brad King
bf120819c4 Merge topic 'find_program-exe-no-read'
86e6349ef7 find_program: Find programs that are executable but not readable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4571
2020-04-10 09:49:50 -04:00
Brad King
9ef0f35670 Merge topic 'ccmake-better-string-ops'
603a532b58 cmCursesLongMessageForm: avoid unnecessary string allocation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sylvain Joubert <joubert.sy@gmail.com>
Merge-request: !4590
2020-04-10 09:48:41 -04:00