Commit Graph

46599 Commits

Author SHA1 Message Date
Brad King
4b89232ffa Merge topic 'mf-json-type'
5a72ffb33a cmMakefile: Fix construction of Json::Value from fixed-size int types

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4291
2020-01-29 10:21:24 -05:00
Kitware Robot
e13a858555 CMake Nightly Date Stamp 2020-01-29 00:01:14 -05:00
Raul Tambre
5a72ffb33a cmMakefile: Fix construction of Json::Value from fixed-size int types
Cast to the Json-provided fixed-size integer types rather than assuming
that the `std::*` variants match.

Fixes: #20278
2020-01-28 11:47:33 -05:00
Brad King
228dc92b09 Merge topic 'mf-typo'
7b6af980eb cmMakefile: Fix spelling typo in comment

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4292
2020-01-28 11:40:02 -05:00
Brad King
a4d7a79beb Merge topic 'ninja-1.10'
ccaa0bccc4 Ninja: Do not clean metadata when re-generating inside a running build
657820a00b Ninja: Track when running to re-generate during a build
b12b013028 Ninja: Factor metadata cleanup into dedicated method
5d92e60d81 Ninja: Skip cleandead and recompact if build.ninja is missing
dd0a4718fd Ninja: Fix CMAKE_NINJA_OUTPUT_PATH_PREFIX with Ninja 1.10
0944caaebb Tests: Fix RunCMake.CMP0037 test with Ninja 1.10
9d4883cce5 Tests: Fix RunCMake.Ninja test for Ninja 1.10

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4290
2020-01-28 11:35:24 -05:00
Brad King
7706b6a714 Merge topic 'xcode-top-level-only-with-object-library'
64304fe72b Xcode: Fix post build script for 'top level project only' opt

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4284
2020-01-28 11:05:17 -05:00
Brad King
ee5edfbda2 Merge topic 'dot-dir'
830a7d8803 cmArchiveWrite: Remove ./ suffix from zip archives

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4288
2020-01-28 11:04:30 -05:00
Brad King
cb8bd146c9 Merge topic 'modernize-memory-management'
b50b2755da cmComputeLinkInformation: modernize memory management

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4285
2020-01-28 11:03:34 -05:00
Brad King
1d08099be7 Merge topic 'FindBoost-delay-helper-targets'
e0e87b9d70 FindBoost: Do not add any Boost targets until after Boost found

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alexander Grund <github@grundis.de>
Merge-request: !4280
2020-01-28 11:02:41 -05:00
Brad King
193352e420 Merge topic 'clang-tidy-driver-mode'
f6f4eb0907 clang-tidy: Add driver mode argument

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4208
2020-01-28 11:01:19 -05:00
Brad King
e3be80f4fc Merge topic 'append-std-string'
1398517f31 AppendProperty: convert value param to std::string

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4282
2020-01-28 11:00:16 -05:00
Brad King
b6da71e299 Merge topic 'osx-version-flags'
6a84f0b791 macOS: Test OSX_COMPATIBILITY_VERSION and OSX_CURRENT_VERSION properties
4a62e3d97c macOS: Add OSX_COMPATIBILITY_VERSION and OSX_CURRENT_VERSION properties

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4274
2020-01-28 10:59:03 -05:00
Brad King
e4e41d33d6 Merge topic 'cmsting-stl-compatibility'
8f839d02e3 cm::String: enhance compatibility with STL

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4281
2020-01-28 10:58:11 -05:00
Brad King
571205fb6b Merge topic 'QNX_CMAKE_SYSROOT'
32a6ab1f3b QNX: Add support for CMAKE_SYSROOT

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4277
2020-01-28 10:56:41 -05:00
Masashi Fujita
7b6af980eb cmMakefile: Fix spelling typo in comment 2020-01-28 10:54:15 -05:00
Brad King
1f9321c683 Merge topic 'cuda_runtime_library_controls'
0d0145138f CUDA: Add abstraction for cuda runtime selection

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4178
2020-01-28 10:52:33 -05:00
Brad King
2e4a948fb8 Merge topic 'findCUDAToolkit_better_find_root_support'
45d21dd5d4 CUDAToolkit: Use CMAKE_FIND_ROOT_PATH for all sdk lib searches
e357772f20 CUDAToolkit: Use HINTS as it has higher precedence for searches
c6ec51c625 CUDAToolkit: functions names now use CMake's reserved namespace

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4278
2020-01-28 10:49:05 -05:00
Brad King
d6028df6a5 Merge topic 'install-name-tool-bug'
162e8aeb9e Tests: Disable test on problematic versions of install_name_tool

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4276
2020-01-28 10:46:10 -05:00
Kitware Robot
03e2757c66 CMake Nightly Date Stamp 2020-01-28 00:01:07 -05:00
Yauheni Khnykin
64304fe72b Xcode: Fix post build script for 'top level project only' opt
When CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY is set on
Xcode generator created post build scripts which tried to call
XCODE_DEPEND_HELPER.make script in subproject.
But XCODE_DEPEND_HELPER.make don't exist in
subprojects when mentioned option is set on.

Fixes: #20262
2020-01-27 16:14:19 -05:00
Robert Maynard
0d0145138f CUDA: Add abstraction for cuda runtime selection
Fixes #17559
Replace our hard-coded default of cudart=static with a first-class abstraction to select the runtime library from an enumeration of logical names.
2020-01-27 16:02:26 -05:00
Niall Murphy
e0e87b9d70 FindBoost: Do not add any Boost targets until after Boost found
Move creation of the "helper" targets that do not require anything to be
found to be done only after Boost is found.

Fixes: #20261
2020-01-27 15:56:37 -05:00
Brad King
ccaa0bccc4 Ninja: Do not clean metadata when re-generating inside a running build
When `ninja` re-runs CMake to re-generate the build system, do not try
to use the ninja tools to update metadata on Windows.  The outer ninja
process is already holding the files open.

Issue: #20274
2020-01-27 15:39:04 -05:00
Brad King
657820a00b Ninja: Track when running to re-generate during a build
Tell CMake explicitly when it is re-running inside a `ninja` invocation
to re-generate the build system.
2020-01-27 15:39:04 -05:00
Brad King
b12b013028 Ninja: Factor metadata cleanup into dedicated method 2020-01-27 15:39:04 -05:00
Brad King
5d92e60d81 Ninja: Skip cleandead and recompact if build.ninja is missing
In error cases the `build.ninja` file may not exist.  Skip running ninja
tools that require it so that we do not generate additional errors.
2020-01-27 15:09:18 -05:00
Brad King
dd0a4718fd Ninja: Fix CMAKE_NINJA_OUTPUT_PATH_PREFIX with Ninja 1.10
The ninja 1.10 tools we use since commit fb18215904 (Ninja: clean ninja
metadata once generated, 2019-05-13) expect `build.ninja` to be
available and loadable.  In commit 6cc74b6140 (cmGlobalNinjaGenerator:
avoid cleandead and recompact in Ninja-Multi, 2020-01-22) we added a
condition to exclude the tools in a case where `build.ninja` is not
available.  Generalize that condition using a local variable and extend
it for the case that `build.ninja` is not loadable in the current
directory because it is meant to be a sub-ninja for a higher directory.
2020-01-27 15:09:18 -05:00
Brad King
6a84f0b791 macOS: Test OSX_COMPATIBILITY_VERSION and OSX_CURRENT_VERSION properties
Issue: #17652
2020-01-27 14:19:35 -05:00
Stephen Kelly
32a6ab1f3b QNX: Add support for CMAKE_SYSROOT
QCC is a wrapper around GCC, but it is not a fully transparent wrapper.
Some compile options need to be passed to GCC using a `-Wc` option.

QCC does not support --sysroot, so setting CMAKE_SYSROOT in a toolchain
file currently does not work.  This means that it is likely that no one
is setting CMAKE_SYSROOT in existing QNC toolchain files.  Override the
GCC option for sysroot in the QCC.cmake file with -Wc,-isysroot.

This exposes a further issue in that the QNX SDK does not follow the
same architectural folder structure as linux uses.  That is, on linux
systems, architecture-specific libraries might be in

    <sysroot>/usr/lib/<arch>

such as

    /usr/lib/x86_64-linux-gnu/libcurl.so

CMake models this by suffixing the <arch> onto lib directories when
searching for libraries.

The QNX SDK is structured differently such that the <arch> should be
used as a prefix:

    <sysroot>/<arch>/usr/lib

such as

    <sysroot>/x86_64/usr/lib/libcurl.so

Add a variable for platform configuration to set whether to prefix or
suffix the <arch> and set that in the QCC.cmake.

Use the directory structure of the QNX SDK to compute the <arch> from
the implicit library directories.  The assumption is that the arch will
be a single directory directly below the CMAKE_SYSROOT, below which the
usr/ prefix occurs.

It would not be appropriate to instruct users to make the <arch> part of
the sysroot when specified in the toolchain file because:

1.  That would be non-DRY - The QCC wrapper already determines the <arch>
    by the -V argument passed to the compiler, specified in the toolchain
    file as the CMAKE_C_COMPILER_TARGET variable.
2.  The includes in the QNX SDK are not below the <arch> directory.

So, the location of the <arch> in the full path is different on QNX
compared to, say an embedded linux platform, but the intent is the same.

Add documentation to recommend the use of CMAKE_SYSROOT in a QNX
toolchain file.

As the CMAKE_SYSROOT is always the same for QNX, it would be possible to
simply set it in QCC.cmake.  However, that would change behavior for
existing users as when CMAKE_SYSROOT is set, files/paths outside of the
CMAKE_SYSROOT do not get found.

The <arch> prefixing is only enabled in cmSearchPath.cxx if
CMAKE_SYSROOT is set.  This ensures that the user gets consistency in
the current state without CMAKE_SYSROOT, and gets better consistency
when using CMAKE_SYSROOT.
2020-01-27 14:04:56 -05:00
Hanjiang Yu
f6f4eb0907 clang-tidy: Add driver mode argument
`clang-tidy` does not infer driver mode if it is not provided with a
JSON compilation database.  This is exactly the way cmake launches it.
Hence clang-tidy will only use the default driver mode.  Add an explicit
driver mode argument to avoid this.
2020-01-27 13:59:05 -05:00
Robert Maynard
45d21dd5d4 CUDAToolkit: Use CMAKE_FIND_ROOT_PATH for all sdk lib searches 2020-01-27 13:42:18 -05:00
Brad King
0944caaebb Tests: Fix RunCMake.CMP0037 test with Ninja 1.10
The CMP0037 OLD and WARN cases that actually use reserved target names
like `all` produce `build.ninja` files with duplicate build statements
producing the same output.  With Ninja 1.10 and above we run ninja
tools at the end of generation that require `build.ninja` to be loadable.
It is not loadable for these test cases, so skip them.
2020-01-27 13:26:40 -05:00
Brad King
9d4883cce5 Tests: Fix RunCMake.Ninja test for Ninja 1.10
With Ninja 1.10 we run the cleandead and recompact tools after
generation.  These require that `build.ninja` be loadable.  Update the
`CustomCommandJobPool` case to define the referenced job pools to make
`build.ninja` loadable.
2020-01-27 13:26:40 -05:00
Cristian Adam
830a7d8803 cmArchiveWrite: Remove ./ suffix from zip archives
Fixes: #20238
2020-01-27 16:53:46 +01:00
Brad King
f624b44524 Merge topic 'fix-ninja-multi-framework-header'
63c9cd2088 Ninja Multi-Config: Fix bug with MacOS frameworks

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4279
2020-01-27 10:06:53 -05:00
Brad King
306328ace8 Merge topic 'depend-on-target-real-name'
08699cec68 add_custom_command: Fix dependency on macOS framework target

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4273
2020-01-27 10:04:08 -05:00
Brad King
0bf9589bf1 Merge topic 'csharp-no-valued-macros'
effd4d0569 CSharp: Do not pass definitions with values

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4267
2020-01-27 10:03:26 -05:00
Kyle Edwards
162e8aeb9e Tests: Disable test on problematic versions of install_name_tool
According to https://cmake.org/pipermail/cmake-developers/2015-September/026462.html,
there is a bug in Xcode 7.0's install_name_tool that manifests when we
try to test file(GET_RUNTIME_DEPENDENCIES). Add a cache option to disable
this test.
2020-01-27 09:52:54 -05:00
Brad King
fd6c1d99e3 Merge topic 'check-language-make-program'
9d0f61839b CheckLanguage: Pass CMAKE_MAKE_PROGRAM to child process

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4272
2020-01-27 09:35:14 -05:00
Brad King
6f7f293562 Merge topic 'cpack-dmg-breaklongline'
4a3a7d5f5d CPack/DragNDrop: Fix word corruption in BreakLongLines

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4275
2020-01-27 09:33:45 -05:00
Brad King
d5f5496783 Merge topic 'cpack-dmg-rtf-for-sla'
9571929701 CPack/DragNDrop: Support RTF licenses

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4270
2020-01-27 09:32:51 -05:00
Brad King
647ff12ca6 Merge topic 'stl-support'
73d1da4f86 Stl support: cm::append now supports any sequential container

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4251
2020-01-27 09:31:22 -05:00
Brad King
a9a1a7a325 Merge topic 'makefiles-suppress-vcs-implicit-rules'
879e56f336 makefiles: suppress RCS and SCCS implicit rules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4264
2020-01-27 09:29:58 -05:00
Brad King
e0a288b0ff Merge topic 'FindGTest-upstream-lib-names'
fbd3ea2047 FindGTest: Add GTest::{gtest,gtest_main} library names

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4268
2020-01-27 09:29:10 -05:00
Brad King
b13a446ed0 Merge branch 'release-3.16' 2020-01-27 09:27:37 -05:00
Brad King
64e3bb4aee Merge topic 'cpack-deb-fix-description'
baec299ecd CPack: Fix regression in Deb description

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4271
2020-01-27 09:27:36 -05:00
Brad King
89ed119c0f Merge topic 'cpack-deb-fix-description' into release-3.16
baec299ecd CPack: Fix regression in Deb description

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4271
2020-01-27 09:27:36 -05:00
Kitware Robot
ee4299ce46 CMake Nightly Date Stamp 2020-01-27 00:01:05 -05:00
Marc Chevrier
b50b2755da cmComputeLinkInformation: modernize memory management 2020-01-26 14:01:45 +01:00
Kitware Robot
55ea8f6b1b CMake Nightly Date Stamp 2020-01-26 00:01:13 -05:00