Commit Graph

26667 Commits

Author SHA1 Message Date
Brad King
187928875d Merge topic 'vs-add-package-reference'
42e14d90b1 VS: Added support for VS package references for nuget

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Leonid Pospelov <pospelovlm@yandex.ru>
Merge-request: !3389
2019-05-31 13:18:31 -04:00
Brad King
ec4d70b564 Merge topic 'update-kwsys'
3a7f493b7b Merge branch 'upstream-KWSys' into update-kwsys
9ef1e13bcc KWSys 2019-05-30 (f892bacf)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3401
2019-05-31 09:09:30 -04:00
Brad King
82fec3784b Merge topic 'vs-depends-dedup'
42bc67bd43 VS: De-duplicate custom command dependencies
d03a6fc857 VS: Clarify name of custom commands AdditionalInputs variable
fcedf8e552 VS: Isolate custom command input/output generation scopes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3388
2019-05-31 09:04:47 -04:00
Brad King
0d025f75c1 Merge topic 'implicit-includes-CPATH'
2d0b0e2b9d Do not exclude include directories made implicit by CPATH

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3395
2019-05-31 09:03:28 -04:00
Kitware Robot
ebee9ff160 CMake Nightly Date Stamp 2019-05-31 00:01:06 -04:00
Frans van Dorsselaer
42bc67bd43 VS: De-duplicate custom command dependencies
Avoid listing the same input more than once in custom commands generated
in `.vcxproj` and `.csproj` files.  In the case of a `.vcxproj` file
additionally avoid listing the source to which the command is attached
since it is already implicitly a dependency.

This is a nice cleanup and also works around a VS 2019 16.1 regression
in MSBuild dependency checking.  Starting with that version, MSBuild now
re-builds custom commands when the list of dependencies has changed.
However, its check is confused by duplicate dependencies.
De-duplicating them avoids this problem.

Co-Author: Brad King <brad.king@kitware.com>
Fixes: #19303
2019-05-30 13:57:03 -04:00
Frans van Dorsselaer
d03a6fc857 VS: Clarify name of custom commands AdditionalInputs variable 2019-05-30 13:57:03 -04:00
Brad King
fcedf8e552 VS: Isolate custom command input/output generation scopes 2019-05-30 13:57:03 -04:00
Kinan Mahdi
42e14d90b1 VS: Added support for VS package references for nuget 2019-05-30 10:22:44 -04:00
Brad King
a6a04cc446 Merge topic 'fix-clang-warnings'
4fe34b2d29 Fixing warnings generated by clang 8.0 on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3396
2019-05-30 09:58:37 -04:00
Brad King
6e8acc51a5 Merge topic 'string-tar'
57cedb18c0 cmSystemTools: std::string parameters for tar functions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3392
2019-05-30 09:57:11 -04:00
Brad King
9dad42d21a Merge topic 'ninja_rule_class'
6136ab5e17 Ninja: Use cmNinjaRule as sole parameter in the WriteRule and AddRule methods
6a23fbce47 Ninja: Add cmNinjaRule class

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3393
2019-05-30 09:53:09 -04:00
Brad King
05af1770a0 Merge topic 'tar-zstd-compression'
53cb1f2d04 cmake: Teach cmake -E tar command, Zstandard compression

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3357
2019-05-30 09:39:35 -04:00
Brad King
3a7f493b7b Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2019-05-30 (f892bacf)
2019-05-30 09:31:35 -04:00
Brad King
2d0b0e2b9d Do not exclude include directories made implicit by CPATH
Entries of the `CPATH` environment variable are implicitly searched as
include directories by some C/C++ compilers.  Since commit 5990ecb741
(Compute implicit include directories from compiler output, 2018-12-07,
v3.14.0-rc1~108^2) these entries are detected by CMake and included in
the `CMAKE_{C,CXX}_IMPLICIT_INCLUDE_DIRECTORIES` variables.

However, we should not exclude them from explicit specification via `-I`
or particularly `-isystem` because they are meant as user-specified
include directories that can be re-ordered without breaking compiler
builtin headers.  In particular, we need explicit requests via
`include_directories` with the `SYSTEM` option to result in `-isystem`
so that third-party headers do not produce warnings.

Co-Author: Ben Boeckel <ben.boeckel@kitware.com>
Fixes: #19291
2019-05-30 09:24:59 -04:00
Kitware Robot
c68efd196e CMake Nightly Date Stamp 2019-05-30 00:01:07 -04:00
Zsolt Parragi
4fe34b2d29 Fixing warnings generated by clang 8.0 on Windows
* Deprecation removals previously specific to MSVC/Intel now also used
  by clang
* String literals were assigned to non const pointers. These are stored
  in mutable arrays now
* An implicit function pointer to pointer conversion is a Microsoft
  extension warning is suppressed by an explicit reinterpret_cast
* The MSVC specific deprecation macro for jsoncpp was moved after the
  clang macro to avoid redefinition warnings. This is consistent with
  how jsoncpp fixed the issue in 36d8cfd7
2019-05-29 18:18:09 +02:00
Vitaly Stakhovsky
57cedb18c0 cmSystemTools: std::string parameters for tar functions 2019-05-29 09:56:08 -04:00
Brad King
067a4f484b Merge topic 'clang-gnulike-support'
74829f01b1 Help: Add notes for topic 'clang-gnulike-support'
19669abe1d Tests: handle string escaping differences with NMake+clang
a2a90f41e3 Tests: require C++14 for the Tutorial
4819ff9647 Tests: fix failures with gnu mode clang on windows
26af0b25e7 cmake: use correct stack size with gnu mode clang on windows
d44c0db0b2 clang: setup correct configuration in gnu mode
b7d5ef23e9 cmGlobalNinjaGenerator: use gnu compatible paths with clang in gnu mode
3d0210d8dc binutils: add the llvm-* variants to the tool lists.
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Francesco Bertolaccini <francesco@bertolaccini.dev>
Acked-by: Stanislav Ershov <digital.stream.of.mind@gmail.com>
Acked-by: Saleem Abdulrasool <compnerd@compnerd.org>
Merge-request: !2992
2019-05-29 09:22:12 -04:00
Sebastian Holtermann
6136ab5e17 Ninja: Use cmNinjaRule as sole parameter in the WriteRule and AddRule methods
Instead of passing multiple strings to the `WriteRule` and `AddRule` methods
of `cmGlobalNinjaGenerator`, pass only a `cmNinjaRule` instance reference,
that is set up beforehand.

Adapt calls to `WriteRule` and `AddRule` in multiple places.
2019-05-29 13:04:52 +02:00
Sebastian Holtermann
6a23fbce47 Ninja: Add cmNinjaRule class 2019-05-29 12:59:31 +02:00
Kitware Robot
7c39a9c6b6 CMake Nightly Date Stamp 2019-05-29 00:01:08 -04:00
Brad King
22aabdfde0 Merge topic 'cmake_automoc_relaxed_mode_deprecation'
df6adb02c0 Autogen: Deprecation release notes for CMAKE_AUTOMOC_RELAXED_MODE
5bf07b9cfc Help: Mark CMAKE_AUTOMOC_RELAXED_MODE as deprecated
b5ad572ac1 Autogen: Deprecation message for CMAKE_AUTOMOC_RELAXED_MODE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3381
2019-05-28 11:56:24 -04:00
Brad King
da0937c04f Merge topic 'swift-response'
9e5457d3b4 Ninja,Swift: correct response file handling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3367
2019-05-28 11:50:28 -04:00
Kitware Robot
e13b18e2c7 CMake Nightly Date Stamp 2019-05-28 00:01:06 -04:00
Sebastian Holtermann
b5ad572ac1 Autogen: Deprecation message for CMAKE_AUTOMOC_RELAXED_MODE
`CMAKE_AUTOMOC_RELAXED_MODE` was added for backwards compatibility with KDE 4,
which had its last release in 2014.  It does not offer additional features
but complicates the `AUTOMOC` code and dependency computation considerably.

Projects that use `CMAKE_AUTOMOC_RELAXED_MODE` functionality always got
extensive warnings during builds and tips on how to convert to regular mode,
which is trivial (see commit e474dcb231, CMake 2.8.7).

It's time to consider this feature deprecated and issue a warning at
configuration time as well.

This adds a configuration time deprecation `AUTHOR_WARNING` for
`CMAKE_AUTOMOC_RELAXED_MODE`.
2019-05-27 13:06:01 +02:00
Kitware Robot
c0e763d688 CMake Nightly Date Stamp 2019-05-27 00:01:04 -04:00
Kitware Robot
63f149f598 CMake Nightly Date Stamp 2019-05-26 00:01:04 -04:00
Kitware Robot
e32f839338 CMake Nightly Date Stamp 2019-05-25 00:01:11 -04:00
Brad King
4ec2b99941 Merge topic 'selective-tar-extracting-and-listing'
c8e217e0a7 cmake: tar: Allow selective extracting and listing of archives

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3342
2019-05-24 10:43:14 -04:00
Brad King
96189e99e1 Merge topic 'cmAppend'
006229278b Use cmAppend to append ranges to std::vector instances
999516478d cmAlgorithms: Add cmAppend function

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3366
2019-05-24 10:39:01 -04:00
Brad King
96a013d44c Merge topic 'cmTargetMap_definition'
7b4b61a4d3 cmMakefile: Define cmTargetMap type in cmMakefile instead of cmTarget

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3364
2019-05-24 10:37:38 -04:00
Kitware Robot
c22693b99d CMake Nightly Date Stamp 2019-05-24 00:01:06 -04:00
Saleem Abdulrasool
9e5457d3b4 Ninja,Swift: correct response file handling
The response file was being written but not used due to the wrong
variable being configured for Swift.  Swift does compile+link in a
single phase and does not use the `<OBJECTS>` placeholder.  Use the
`<SWIFT_SOURCES>` placeholder instead for the response file substitution
which serves the same purpose.
2019-05-23 14:05:37 -07:00
Sebastian Holtermann
006229278b Use cmAppend to append ranges to std::vector instances 2019-05-23 16:19:49 +02:00
Bartosz Kosiorek
c8e217e0a7 cmake: tar: Allow selective extracting and listing of archives 2019-05-23 10:08:22 -04:00
Sebastian Holtermann
999516478d cmAlgorithms: Add cmAppend function
The new `cmAppend` function simplifies appending ranges of values to a
`std::vector`.
2019-05-23 15:32:23 +02:00
Brad King
f03a80aefd Merge topic 'genex-target-property-lifetime'
5a1af142f1 Genex: Fix value lifetimes in nested TARGET_PROPERTY evaluation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3362
2019-05-23 09:22:37 -04:00
Brad King
a4faf7788c Merge topic 'string-error'
e884b1b693 cmSystemTools::Error(): remove const char* overload

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3360
2019-05-23 09:05:47 -04:00
Brad King
4f739a4e47 Merge topic 'compiler-launcher-shell-format'
8ee6584a99 Ninja,Makefile: Fix <LANG>_COMPILER_LAUNCHER shell command syntax

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3361
2019-05-23 09:01:04 -04:00
Brad King
5222400d9f Merge topic 'FindPython-find_strategy'
8517b549f4 FindPython: Add policy to manage lookup stratgey default.
9f205acefe FindPython: Implement lookup strategies.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3354
2019-05-23 08:59:25 -04:00
Brad King
cbd1c5b4ab Merge topic 'framework-var'
26ea022c3b Add variable CMAKE_FRAMEWORK

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3347
2019-05-23 08:57:36 -04:00
Brad King
79c6a573f4 Merge topic 'swift-flags'
02c14b7fcd Ninja,Swift: pass along DEFINES/FLAGS/INCLUDES

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3355
2019-05-23 08:55:16 -04:00
Brad King
d1a570f18c Merge topic 'cmFileTimes'
5b53cfda24 cmSystemTools: Remove cmSystemToolsFileTime interface
9c576a88d9 Use cmFileTimes instead of cmSystemToolsFileTime interface
4b45a5d5c7 cmFileTimes: New RAII based cmFileTimes class

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3358
2019-05-23 08:53:17 -04:00
Brad King
d7e70d01fe Merge topic 'autogen_compiler_features'
71d6a1455e Autogen: Evaluate compiler features for the same exectuable only once

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3359
2019-05-23 08:51:38 -04:00
Sebastian Holtermann
7b4b61a4d3 cmMakefile: Define cmTargetMap type in cmMakefile instead of cmTarget
The `cmTargetMap` type is only used in the context of `cmMakefile`.
Therefore it is the most appropriate place to declare it.

This moves the `cmTarget.h/cmTargets` type definition to
`cmMakefile::cmTargetMap`.
2019-05-23 13:00:33 +02:00
Kitware Robot
22d58e07e5 CMake Nightly Date Stamp 2019-05-23 00:01:09 -04:00
Vitaly Stakhovsky
e884b1b693 cmSystemTools::Error(): remove const char* overload 2019-05-22 10:51:06 -04:00
Brad King
8ee6584a99 Ninja,Makefile: Fix <LANG>_COMPILER_LAUNCHER shell command syntax
The first entry in the compiler launcher command argument list is
the command itself and should be converted to the shell's native
command syntax (e.g. backslashes on Windows).

Without this, the `RunCMake.CompilerLauncher` test fails on Windows
when there are *no* spaces in the path to `cmake.exe`.
2019-05-22 10:47:15 -04:00
Brad King
8ed6efbbd3 Merge topic 'default-generator-env'
d0f0ba0f7a Tests: Add environment generator tests
a48ce8f4bf Help: Add documentation for default generator environment variables
083cf7e8a2 cmake: Allow default generator to be set by environment variables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3218
2019-05-22 10:32:43 -04:00