44456 Commits

Author SHA1 Message Date
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
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
3cf89d18c3 Merge topic 'ExternalProject-avoid-extra-checkout'
627fc5b44f ExternalProject: Avoid unnecessary checkout on clone

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3626
2019-07-31 11:47:09 -04:00
Brad King
ac7ac46fce Merge topic 'FindPythonInterp-no-version-verify'
800c3ab2e0 FindPythonInterp: Document lack of version filtering for plain `python`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Rolf Eike Beer <eike@sf-mail.de>
Merge-request: !3631
2019-07-31 11:45:38 -04:00
Brad King
dad7868db8 Merge branch 'release-3.15' 2019-07-31 11:43:52 -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
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
800c3ab2e0 FindPythonInterp: Document lack of version filtering for plain python
Also drop the `CMakeOnly.MajorVersionSelection-PythonInterp_2` test
because some environments now have a plain `python` executable for
Python 3.

Fixes: #19536
2019-07-30 12:09:43 -04:00
Tetragramm
627fc5b44f ExternalProject: Avoid unnecessary checkout on clone
The clone step checks out the cloned branch but is always followed by an
explicit checkout of the desired `GIT_TAG`.  Tell `git clone` not to
check out.
2019-07-30 11:45:33 -04:00
Brad King
0e2e3e0f9f Merge branch 'release-3.15' 2019-07-30 11:40:55 -04:00
Brad King
a21bccfd30 Merge topic 'find_more_binutils'
993fe2b4af CMakeFindBinUtils: add some more binutils
5412d63714 CMakeFindBinUtils: add missing llvm alternatives
3a82ef78eb CMakeFindBinUtils: Rename and unset variables for additional names

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3584
2019-07-30 11:39:38 -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
b15dbdfce8 Merge topic 'multipackage_tutorial_compiles'
98164b707f Tutorial: MultiPackage now correctly compiles

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3594
2019-07-30 11:37:36 -04:00
Brad King
7d98cd0442 Merge branch 'source_group-tree-files' into release-3.15
Merge-request: !3630
2019-07-30 11:31:15 -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
Brad King
4053d5737d Merge branch 'vs-spectre-off' into release-3.15
Merge-request: !3629
2019-07-30 11:20:59 -04: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
Brad King
b61fcdc8bc fileapi: Compute codemodel compile groups without target-wide settings
Previously we computed the entire description of each source file
including all target-wide settings, and then computed compile groups
using those complete descriptions.  This is inefficient when target-wide
settings are large because they are included in comparisons even though
they are the same for every source.  Instead compute source groups using
only the source-specific settings, and then merge the target-wide
settings into place only once per unique compile group.

This is a slight behavior change in the case that a source-specific
compile definition duplicates a target-wide definition.  Previously that
source would still be grouped with other sources which do not have the
definition because they would all get it from the target.  Now that
source will be in its own compile group even though it ultimately
compiles with the same settings as another group.  This is acceptable
because the source is specified by the project with source-specific
settings already.

Fixes: #19520
2019-07-30 10:03:35 -04:00
Kyle Edwards
f799ff43d5 Merge topic 'function-blocker-stack'
020478dbea cmMakefile: Keep function blockers in a stack

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3613
2019-07-30 10:03:34 -04:00
Brad King
e337e60a50 fileapi: Compute codemodel compile groups before converting to Json
Previously we converted the description of each source file into its
compile group Json object and then used the Json object itself as a
unique identifier for the group.  When source files have large
descriptions their Json objects make inefficient map keys requiring deep
comparison operations.  Instead use our internal `CompileData` structure
as a map key.  This enables use of a hash map.

Issue: #19520
2019-07-30 10:01:49 -04:00
Brad King
d89c0ecf79 fileapi: Generate codemodel Json backtraces earlier
Convert from `cmListFileBacktrace` to Json `backtraceGraph` entries
before storing in `CompileData`.  This will allow backtraces to be
uniquely identified, hashed, and compared as a single integer.
2019-07-30 10:01:36 -04:00
Craig Scott
ffe555ad88 Merge topic 'cmake-version'
fe2c558ba6 CMakeVersion: Preserve Git information during 'git archive'
0505a66cbf CMakeVersion: Add generic '-git' suffix when no git info is available
f7bf08754b CMakeVersion: Provide Git information in non-exact release versions
ac48259333 CMakeVersion: Re-order logic to obviate addition of each component
311f232f7a CMakeVersion: De-duplicate variable initialization
2f608566b4 CMakeVersion: Factor git execution into helper macro
74ff80323c CMakeVersion: Use FindGit module to find Git
e1e7986c00 CMakeVersion: Consider Git even with just a `.git` file
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3622
2019-07-30 09:41:57 -04:00
Regina Pfeifer
4af094c8df clang-tidy: Blacklist violations for version 8
Check the codebase with clang-tidy version 8, fix the low hanging
fruits, blacklist the rest.
2019-07-30 12:38:30 +02:00
Kitware Robot
473f288e97 CMake Nightly Date Stamp 2019-07-30 00:01:11 -04:00
Brad King
055a782b8a Merge branch 'swift-with-interface-libs' into release-3.15
Merge-request: !3624
2019-07-29 15:34:19 -04:00
Brad King
601fe84bd1 Swift: Restore support for enabling with INTERFACE libraries
The check added in commit b06f4c8a74 (Swift: disallow WIN32_EXECUTABLE
properties, 2019-05-31, v3.15.0-rc1~9^2) makes sense only for
executables because the `WIN32_EXECUTABLE` property is defined only for
them.  Running the check on other target types, particularly those that
do not link such as INTERFACE libraries, violates internal assumptions.
In particular, `GetLinkerLanguage` should not be called on such targets.

Fixes: #19528
2019-07-29 15:24:29 -04:00
Sebastian Holtermann
f71f7ce3f0 cmStringAlgorithms: Move string functions to the new cmStringAlgorithms.h
This adds the `cmStringAlgorithms.h` header and moves all string functions
from `cmAlgorithms.h` to `cmStringAlgorithms.h`.
2019-07-29 21:13:56 +02:00
Brad King
f6df9c2565 Merge topic 'modernize_string_view_cmOutputConverter'
ec892a572b cmOutputConverter: Make shell escaping methods cm::string_view based
8573e20c43 cmOutputConverter: Let GetFortranFormat accept a cm::string_view
4911762358 cmOutputConverter: Return bool instead of int in utility functions
a929255dec cmOutputConverter: Let cmOutputConverterIsShellOperator accept cm::string_view
1b30b28c04 cmOutputConverter: Let cmOutputConverterIsShellOperator accept cm::string_view
6675f785be cmOutputConverter: Let EscapeForCMake accept a cm::string_view
09977c1816 cmSystemTool: Let TrimWhitespace accept a cm::string_view
2f19e53705 cmSystemTool: Let HelpFileName accept a cm::string_view
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3615
2019-07-29 11:56:29 -04:00
Brad King
f22a2a1fa5 Merge topic 'CheckCXXSymbolExists-c++-syntax'
72fcadb007 CheckCXXSymbolExists: Make C++-syntax symbols work on more compilers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3545
2019-07-29 11:50:42 -04:00
Brad King
d275877dfc Merge topic 'better_gen_exp_example_tutotrial'
fa203ee323 Tutorial: Improve Step 10 generator expression example.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3571
2019-07-29 11:49:45 -04:00
Brad King
23503ba5f0 Merge topic 'android-ndk-r19'
97bca2f9fa Android: Use unified toolchain in NDK r19+
19f36c5fb2 Android: Update test to not require GCC compiler to exist in NDK
f3e32ddae9 Android: Re-order system initialization to select sysroot last
9a0720b819 Android: Clarify name of internal variable for arch triple
4e6c58d937 Android: Select NDK host tag while determining system

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3612
2019-07-29 11:48:33 -04:00
Brad King
08cd8ef5ee Merge topic 'test-cleanup-src-dir'
d1aa9f307e Tests: Remove stray source dir modification in RunCMake.find_program

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3610
2019-07-29 11:47:30 -04:00
Brad King
fe2c558ba6 CMakeVersion: Preserve Git information during 'git archive'
Use `export-subst` to get information about the Git commit used to
produce an archive.
2019-07-29 11:37:32 -04:00
Brad King
0505a66cbf CMakeVersion: Add generic '-git' suffix when no git info is available 2019-07-29 11:25:44 -04:00
Brad King
f7bf08754b CMakeVersion: Provide Git information in non-exact release versions
Our exact release commits have a subject of the form `CMake <version>`.
Distinguish development on a release branch in commits after such a
version but before the next release by providing Git information.
2019-07-29 11:25:44 -04:00
Brad King
ac48259333 CMakeVersion: Re-order logic to obviate addition of each component 2019-07-29 11:25:44 -04:00
Brad King
311f232f7a CMakeVersion: De-duplicate variable initialization 2019-07-29 11:25:44 -04:00
Brad King
2f608566b4 CMakeVersion: Factor git execution into helper macro 2019-07-29 11:25:44 -04:00
Brad King
74ff80323c CMakeVersion: Use FindGit module to find Git
We now require at least CMake 3.1 to build, and that has the FindGit
module.
2019-07-29 11:25:44 -04:00