Commit Graph

27106 Commits

Author SHA1 Message Date
Brad King
bbf4a5771f Merge topic 'tidy_inefficient_string'
18b0330b86 clang-tidy: Enable performance-inefficient-string-concatenation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3648
2019-08-07 11:54:53 -04:00
Brad King
ddb1759b3e Merge topic 'cmStringAlgorithms_move_functions'
959b97a27f Tests: testStringAlgorithms: Add cmTrimWhitespace, cmEscapeQuotes, cmTokenize
7fbcc16dcd cmStringAlgorithms: cmIsSpace, cmTrimWhitespace, cmEscapeQuotes, cmTokenize

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3647
2019-08-07 11:47:54 -04:00
Brad King
ce14f6c677 Merge topic 'find_package-prefer-config-not-found'
8ed868606d find_package: Fix prefer-config mode to not fail on missing optional package

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3653
2019-08-07 09:57:35 -04:00
Kitware Robot
e295290ed7 CMake Nightly Date Stamp 2019-08-07 00:01:08 -04:00
Cristian Adam
8ed868606d find_package: Fix prefer-config mode to not fail on missing optional package
When `CMAKE_FIND_PACKAGE_PREFER_CONFIG` mode was set to `ON`, failure to
find a package was fatal even if it was not `REQUIRED`.  Fix this and
add a test case.

Fixes: #19557
2019-08-06 09:36:36 -04:00
Kitware Robot
53fc083d37 CMake Nightly Date Stamp 2019-08-06 00:01:07 -04:00
Sebastian Holtermann
18b0330b86 clang-tidy: Enable performance-inefficient-string-concatenation
Enables the clang-tidy test performance-inefficient-string-concatenation
and replaces all inefficient string concatenations with `cmStrCat`.

Closes: #19555
2019-08-05 17:21:00 +02:00
Brad King
2327cc0e05 Merge topic 'control-block3'
41364824ad cmFunctionBlocker: Recycle functions
6491270e0d cmFunctionBlocker: Move check for matching args
af24e4ef6e cmFunctionBlocker: Move common logic to base
ef38ff22f7 cm*FunctionBlocker: Extract function Replay
b51fba6298 cmMakefile: Add OnExecuteCommand callback
c76500949d cm*FunctionBlocker: Move to source file

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3632
2019-08-05 10:42:50 -04:00
Brad King
c969d4628b Merge topic 'cleanup_cmake_constructor'
0962589627 cmake: Initialize booleans at declaration and cleanup constructor

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3646
2019-08-05 10:40:46 -04:00
Brad King
e0f735f8f5 Merge topic 'shared-deps-no-iface'
d75cad01f0 Fix rpath-link for shared lib with only private deps
4b2e1fc9ee cmGeneratorTarget: Use local var to de-duplicate CMP0022 checks
94648953be cmLinkItem: Simplify tracking of whether link interface is explicit

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3642
2019-08-05 10:37:47 -04:00
Brad King
26a3bccb60 Merge topic 'link-library-file-flag'
f6d6dbc293 Make CMAKE_LINK_LIBRARY_FILE_FLAG work like CMAKE_LINK_LIBRARY_FLAG

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3641
2019-08-05 10:31:18 -04:00
Brad King
7eb2fd6ca6 Merge topic 'fileapi-install-generators'
d70a0f8681 fileapi: Fix codemodel target install destination for cross-dir rules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3639
2019-08-05 10:20:27 -04:00
Sebastian Holtermann
7fbcc16dcd cmStringAlgorithms: cmIsSpace, cmTrimWhitespace, cmEscapeQuotes, cmTokenize
This adds the following functions to `cmStringAlgorithms`:

- `cmIsSpace`
- `cmTrimWhitespace` (moved from `cmSystemTools::TrimWhitespace`)
- `cmEscapeQuotes` (moved from `cmSystemTools::EscapeQuotes`)
- `cmTokenize` (moved from `cmSystemTools::tokenize` and adapted to
  accept `cm::string_view`)
2019-08-05 11:25:30 +02:00
Kitware Robot
3ebd3fa51d CMake Nightly Date Stamp 2019-08-05 00:01:06 -04:00
Kitware Robot
18a0d47bec CMake Nightly Date Stamp 2019-08-04 00:01:07 -04:00
Sebastian Holtermann
0962589627 cmake: Initialize booleans at declaration and cleanup constructor 2019-08-03 11:44:38 +02:00
Kitware Robot
2a5d077a89 CMake Nightly Date Stamp 2019-08-03 00:01:09 -04:00
Brad King
d75cad01f0 Fix rpath-link for shared lib with only private deps
Under CMP0022 NEW behavior, the link interface is explicit even if there
are no public dependencies (`INTERFACE_LINK_LIBRARIES` is not set).
Mark it as such to activate our tracking of private runtime dependencies
of shared libraries for generation of `-rpath-link` flags.

Fixes: #19556
2019-08-02 14:50:57 -04:00
Brad King
4b2e1fc9ee cmGeneratorTarget: Use local var to de-duplicate CMP0022 checks 2019-08-02 14:48:34 -04:00
Brad King
94648953be cmLinkItem: Simplify tracking of whether link interface is explicit
We now only need a boolean.
2019-08-02 14:43:16 -04:00
Brad King
f6d6dbc293 Make CMAKE_LINK_LIBRARY_FILE_FLAG work like CMAKE_LINK_LIBRARY_FLAG
The `CMAKE_LINK_LIBRARY_FILE_FLAG` variable is meant for linkers that
want library file paths to be preceded by a flag.  This is used only
for OpenWatcom to add the `library` argument before library file paths.
Refactor the approach to treat `CMAKE_LINK_LIBRARY_FILE_FLAG` as a
command-line string fragment to add just before the library file path.
This has two advantages:

* `CMAKE_LINK_LIBRARY_FILE_FLAG` now works like `CMAKE_LINK_LIBRARY_FLAG`.
* `CMAKE_LINK_LIBRARY_FILE_FLAG` can now be an attached flag whose value
  is the library file path.

Technically this is a change in behavior, but this setting was created
for internal use and should be rarely used outside of CMake itself.

Fixes: #19541
2019-08-02 13:37:39 -04:00
Brad King
7bacf0233b Merge topic 'use_cmHasPrefix'
a693e875db Cleanups: Use cmHas{Prefix,Suffix} instead of String{Starts,Ends}With

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3637
2019-08-02 10:56:59 -04:00
Brad King
94f7d19a98 Merge topic 'cmStringAlgorithms_modernize'
4aa555f9da Tests: Add CMakeLib.testStringAlgorithms test
75cf7ec263 cmStringAlgorithms: Modernize cmWrap using cm::string_view
e5d3ea22d4 cmStringAlgorithms: Add cmCatViews and cmStrCat functions
a7d0fe9c24 cmStringAlgorithms: Simplify cmJoin using cm::string_view
541361a58b cmStringAlgorithms: Simplify cmStrCmp using cm::string_view

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3628
2019-08-02 10:55:39 -04:00
Kitware Robot
a1e32626f7 CMake Nightly Date Stamp 2019-08-02 00:01:05 -04:00
Sebastian Holtermann
a693e875db Cleanups: Use cmHas{Prefix,Suffix} instead of String{Starts,Ends}With 2019-08-01 13:33:00 +02:00
Sebastian Holtermann
75cf7ec263 cmStringAlgorithms: Modernize cmWrap using cm::string_view 2019-08-01 11:45:04 +02:00
Sebastian Holtermann
e5d3ea22d4 cmStringAlgorithms: Add cmCatViews and cmStrCat functions 2019-08-01 11:45:04 +02:00
Sebastian Holtermann
a7d0fe9c24 cmStringAlgorithms: Simplify cmJoin using cm::string_view 2019-08-01 10:38:12 +02:00
Sebastian Holtermann
541361a58b cmStringAlgorithms: Simplify cmStrCmp using cm::string_view 2019-08-01 10:38:12 +02:00
Kitware Robot
33d9a69130 CMake Nightly Date Stamp 2019-08-01 00:01:08 -04:00
Brad King
d70a0f8681 fileapi: Fix codemodel target install destination for cross-dir rules
Since commit e89ad0f94e (install: Allow installing targets created in
another directory, 2018-06-18, v3.13.0-rc1~407^2) we support calling
`install(TARGETS)` for targets created in another directory.  However,
install generators are associated with the directory in which the call
to `install()` appears.  This may not be the same directory in which the
target is defined.  Record in each target the list of install generators
it has.

Fixes: #19546
2019-07-31 19:32:55 -04:00
Regina Pfeifer
41364824ad cmFunctionBlocker: Recycle functions 2019-07-31 13:22:42 -04:00
Brad King
1672d3d5a5 Merge topic 'clang-tidy-8'
4af094c8df clang-tidy: Blacklist violations for version 8

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3627
2019-07-31 11:54:28 -04:00
Brad King
403b6b3bc3 Merge topic 'fileapi-optimize'
b61fcdc8bc fileapi: Compute codemodel compile groups without target-wide settings
e337e60a50 fileapi: Compute codemodel compile groups before converting to Json
d89c0ecf79 fileapi: Generate codemodel Json backtraces earlier
833d9eae4e fileapi: Refactor codemodel defines de-duplication
c9c397a14a fileapi: Avoid unnecessary CompileData move

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3621
2019-07-31 11:52:21 -04:00
Brad King
09fe6e6e94 Merge topic 'ninja-1.10'
c81a86ee6d Ninja: Record dyndep support by Ninja 1.10
83368b4dd5 Ninja: Drop unused dyndep version check
fd58bb83e6 Ninja: Use in-class initialization of global generator members

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !3256
2019-07-31 11:49:23 -04:00
Brad King
955ebe1c93 Merge topic 'source_group-tree-files'
93af8a2583 source_group: Fix regression in relative FILES

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3630
2019-07-31 11:43:17 -04:00
Brad King
cb88632790 Merge topic 'vs-spectre-off'
f9b7c660d7 VS: Fix mapping of `-Qspectre-` flag

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3629
2019-07-31 11:41:37 -04:00
Kitware Robot
72c1d564cc CMake Nightly Date Stamp 2019-07-31 00:01:13 -04:00
Regina Pfeifer
6491270e0d cmFunctionBlocker: Move check for matching args 2019-07-31 00:03:17 +02:00
Regina Pfeifer
af24e4ef6e cmFunctionBlocker: Move common logic to base 2019-07-31 00:03:17 +02:00
Regina Pfeifer
ef38ff22f7 cm*FunctionBlocker: Extract function Replay 2019-07-31 00:03:17 +02:00
Regina Pfeifer
b51fba6298 cmMakefile: Add OnExecuteCommand callback
In cmCTestScriptHandler, port away from cmFunctionBlocker
and update the elapsed time with the new callback instead.
2019-07-31 00:03:17 +02:00
Brad King
c81a86ee6d Ninja: Record dyndep support by Ninja 1.10
Upstream Ninja 1.10 and above support the `dyndep` feature we need
for Fortran.
2019-07-30 13:53:44 -04:00
Brad King
83368b4dd5 Ninja: Drop unused dyndep version check
Our dyndep support version 1 has been merged to upstream Ninja.
We never developed a second dyndep version, so simply drop our
checks for different versions.
2019-07-30 13:53:41 -04:00
Brad King
fd58bb83e6 Ninja: Use in-class initialization of global generator members 2019-07-30 13:53:34 -04:00
Brad King
e4193adf29 Merge topic 'swift-with-interface-libs'
601fe84bd1 Swift: Restore support for enabling with INTERFACE libraries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Wanderley Guimarães da Silva <wanderley.guimaraes@gmail.com>
Acked-by: Guillaume Egles <gegles@gmail.com>
Merge-request: !3624
2019-07-30 11:38:35 -04:00
Brad King
93af8a2583 source_group: Fix regression in relative FILES
Fix the check added in commit 8d93815d20 (source_group command ensures
that FILES arguments are actually files, 2019-04-25, v3.15.0-rc1~195^2)
to convert to an absolute path before checking for existence.

Also simplify the conversion to an absolute path.

Fixes: #19454
2019-07-30 11:29:58 -04:00
Regina Pfeifer
c76500949d cm*FunctionBlocker: Move to source file 2019-07-30 17:21:50 +02:00
Brad King
f9b7c660d7 VS: Fix mapping of -Qspectre- flag
The mapping for this flag was added by commit 43aa632f57 (VS: Populate
`-Qspectre-` flag table entry for v142, 2019-01-24, v3.14.0-rc1~74^2~7).
However, it did not do anything because the special logic added by
commit bb60ed6e72 (VS: Add flag table entry for -Qspectre, 2018-10-08,
v3.13.0-rc1~4^2) to move the `SpectreMitigation` element from
`ClCompile` to the top level only handled the presence of the setting
and not its value.  Extend the special logic to carry the value too.

Fixes: #19535
2019-07-30 11:17:28 -04:00
Kyle Edwards
89dc04af1d Merge topic 'cmStringAlgorithms'
f71f7ce3f0 cmStringAlgorithms: Move string functions to the new cmStringAlgorithms.h

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3618
2019-07-30 10:04:40 -04:00