Commit Graph

25792 Commits

Author SHA1 Message Date
Brad King
147d36ce93 Find native build tool after selecting a toolset
This will allow `CMAKE_GENERATOR_TOOLSET` to influence build tool
selection.

For reference, commit f8cb9944a1 (Find native build tool after
determining the target system, 2017-09-26, v3.10.0-rc1~31^2) already
delayed this step from where it was historically.
2019-01-29 09:09:18 -05:00
Brad King
fa7077e741 Merge topic 'vs-host-arch'
0fd742a6ff VS: Teach VS 2019 generator to select host tools matching host arch
17cef3806d VS: Add support for explicit 32-bit toolset selection via host=x86
bf774e521b VS: Remove stray semicolons from VS 2019 implementation
142e67eac6 VS: Use internal abstraction for VCTargetsPath host arch

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2870
2019-01-29 09:05:51 -05:00
Brad King
eeb34232fc Merge topic 'add-missing-macos-framework'
475e78d907 macOS: Add missing explicit dependency on CoreServices framework

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2873
2019-01-29 08:59:59 -05:00
Brad King
bcb1297faf Merge topic 'autogen_reenable_implicit_include_dirs'
03dbb62d31 Autogen: Reenable passing compiler implicit include directories to moc
5f34bdc7f9 cmLocalGenerator: Refactor `GetIncludeDirectoriesImplicit` method
f16dfdf71f cmLocalGenerator: Simplify `GetIncludeDirectories`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2864
2019-01-29 08:59:06 -05:00
Chuck Atkins
475e78d907 macOS: Add missing explicit dependency on CoreServices framework
On Apple, the implementation of cmGlobalXCodeGenerator::Open uses
LSOpenCFURLRef from CoreServices.  This get's transitively pulled in
from CMake's libuv build but ends up generating a linker error when
using an external libuv.  This explicitly adds the appropriate
dependency.
2019-01-29 06:59:24 -05:00
Kitware Robot
62c0b1aebb CMake Nightly Date Stamp 2019-01-29 00:01:06 -05:00
Brad King
0fd742a6ff VS: Teach VS 2019 generator to select host tools matching host arch
This generator is new so we can introduce the long-desired behavior
of selecting ``host=x64`` tools by default on x64 hosts.
2019-01-28 12:58:21 -05:00
Brad King
17cef3806d VS: Add support for explicit 32-bit toolset selection via host=x86
Generalize the ``host=x64`` option in `CMAKE_GENERATOR_TOOLSET`
to also support ``host=x86``.
2019-01-28 11:22:50 -05:00
Brad King
bf774e521b VS: Remove stray semicolons from VS 2019 implementation 2019-01-28 11:22:31 -05:00
Brad King
142e67eac6 VS: Use internal abstraction for VCTargetsPath host arch
Call our internal host architecture lookup method rather than directly
accessing a member used by its implementation.
2019-01-28 11:16:02 -05:00
Sebastian Holtermann
03dbb62d31 Autogen: Reenable passing compiler implicit include directories to moc
Since commit 5990ecb741 (Compute implicit include directories from
compiler output, 2018-12-07) we now have compiler implicit include
directory computation for gcc and clang.  It should be safe now to pass
these to `moc`.  This patch re-enables passing the compiler implicit
include directories to `moc`, which was disabled due to issue #18669.

Fixes: #18041
Issue: #18669
2019-01-28 08:41:37 -05:00
Sebastian Holtermann
5f34bdc7f9 cmLocalGenerator: Refactor GetIncludeDirectoriesImplicit method
Use a dedicated `std::set` for implicit include directories instead
of (ab)using the emitted variable.  This in combination with lambdas
makes it easier to comprehend which paths are emitted.

For the implicit include directories we used to omit the
`CMAKE_SYSROOT_COMPILE`/`CMAKE_SYSROOT` prefix.  This has been changed and
the implicit paths are returned prefixed.  Implicit include directory returning
is only ever used by QtAutoGen which requires prefixed paths.  QtAutoGen passes
the (implicit) include paths to the `moc` which isn't aware of
`CMAKE_SYSROOT_COMPILE`/`CMAKE_SYSROOT`.
2019-01-28 08:41:28 -05:00
Sebastian Holtermann
f16dfdf71f cmLocalGenerator: Simplify GetIncludeDirectories
This patch strips the `stripImplicitDirs` and `appendAllImplicitDirs`
parameters from the `cmLocalGenerator::GetIncludeDirectories` method and makes
it a wrapper into the new `cmLocalGenerator::GetIncludeDirectoriesImplicit`
method.  `cmLocalGenerator::GetIncludeDirectoriesImplicit` is the renamed old
implementation of `cmLocalGenerator::GetIncludeDirectories` and still
accepts `stripImplicitDirs` and `appendAllImplicitDirs`.

The motivation is that there's only *one* case where
`cmLocalGenerator::GetIncludeDirectories` is called with the
`stripImplicitDirs` parameter being `false` (QtAutoGen), but many other places
where it is called using the `true` default value.

QtAutoGen is modified to use `cmLocalGenerator::GetIncludeDirectoriesImplicit`
directly.  In two use cases of `cmLocalGenerator::GetIncludeDirectories`
the manually set `true` value for `stripImplicitDirs` is removed.
2019-01-28 08:41:28 -05:00
Brad King
8e495333c0 Merge topic 'cmake-gui-s-b'
ad0853b3d4 QtDialog: Clean up and document -S and -B options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !2863
2019-01-28 08:36:58 -05:00
Brad King
a844c7248d Merge topic 'cmake-E-compare_files-eol'
a5098cad94 cmake: Add --ignore-eol option to `-E compare_files` command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2778
2019-01-28 08:27:03 -05:00
Taylor Braun-Jones
a5098cad94 cmake: Add --ignore-eol option to -E compare_files command
Fixes: #13007
2019-01-28 08:24:50 -05:00
Brad King
1593e16d88 Merge topic 'get_filename_component_last_ext'
2a9220c34d Help: Add notes for topic 'get_filename_component_last_ext'
edda30d0f5 Tests: Add tests for LAST_EXT and NAME_WLE
7a25ef326b Help: Add documentation for new get_filename_component components
e50a36df48 cmGetFilenameComponentCommand: Add more components

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2853
2019-01-28 08:21:50 -05:00
Brad King
ce57bc8e04 Merge topic 'vs2019'
626c51f47b VS: Update for Visual Studio 2019 Preview 2
fd45cbf40e VS: Fix `/MANIFESTUAC:` link flag mapping for v142
db35e3cfd6 VS: Fix support for '/guard:cf' linker flag for v142
533f95c847 VS: Map the link `/debug` flag for v142
d2fcc6748a VS: Fix `/MANIFESTUAC:NO` link flag mapping for v142
a7973ccb53 VS: Populate `/permissive` flag table entry for v142
049410c0b6 VS: Populate `/JMC-` flag table entry for v142
43aa632f57 VS: Populate `-Qspectre-` flag table entry for v142
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2856
2019-01-28 08:07:28 -05:00
Brad King
70fabb8f25 Merge topic 'png-optimize'
b9e6d04558 Reduce size of PNG images
880e380599 CPack: Replace corrupted background png with original

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2852
2019-01-28 08:04:51 -05:00
Kitware Robot
f832f15509 CMake Nightly Date Stamp 2019-01-28 00:01:05 -05:00
Kitware Robot
f725750f04 CMake Nightly Date Stamp 2019-01-27 00:01:05 -05:00
Kitware Robot
be2cc309f1 CMake Nightly Date Stamp 2019-01-26 00:01:07 -05:00
Kyle Edwards
ad0853b3d4 QtDialog: Clean up and document -S and -B options 2019-01-25 16:23:56 -05:00
Lucy Phipps
b9e6d04558 Reduce size of PNG images
Use FileOptimizer 13.50.2431 (x86) and ZopfliPNG 1.0.2.

Update expected file hashes in tests.
2019-01-25 09:14:51 -05:00
Brad King
40628b2519 Merge topic 'max-recursion-depth'
a6982cff0d cmMakefile: Impose maximum recursion limit

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Juraj Oršulić <juraj.orsulic@fer.hr>
Merge-request: !2746
2019-01-25 08:09:37 -05:00
Brad King
24b6e4830d Merge topic 'exclude_from_all'
dc6888573d Pass EXCLUDE_FROM_ALL from directory to targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2816
2019-01-25 08:06:54 -05:00
Brad King
15bc4a25e5 Merge topic 'swift'
de13c55d74 Ninja: support `SWIFT_MODULE_NAME` property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2850
2019-01-25 08:06:01 -05:00
Brad King
a8f5155523 Merge topic 'clang-warnings'
c3203bf316 Silence -Wcomma warning
68eabb3576 Avoid -Wstring-plus-int warning

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2846
2019-01-25 08:04:19 -05:00
Brad King
b4ccb6cd32 Merge topic 'update-kwsys'
d67ce0a61e Merge branch 'upstream-KWSys' into update-kwsys
bee32e96b3 KWSys 2019-01-24 (b9dd1636)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2851
2019-01-25 08:02:21 -05:00
Brad King
40745ad35a Merge topic 'cmake-files-directory'
3e867ed400 cmake: inlined files dir constant and removed it from cmake.h

Acked-by: Kitware Robot <kwrobot@kitware.com>
Rejected-by: vvs31415 <vstakhovsky@fastmail.com>
Merge-request: !2655
2019-01-25 08:01:26 -05:00
Brad King
c18fc30d1a Merge topic 'renamefile-string'
9e5c13738b cmSystemTools::RenameFile: Accepts std::string args

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2842
2019-01-25 08:00:14 -05:00
Brad King
9f84cbd8c3 Merge topic 'error-overloads'
99337d345b cmSystemTools::Error(): new overload accepting std::string

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2845
2019-01-25 07:59:11 -05:00
Brad King
5a6e683a32 Merge topic 'unixmfg3-string'
614876c638 cmLocalUnixMakefileGenerator3: more methods accept std::string

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2840
2019-01-25 07:58:12 -05:00
Brad King
a5f7652fb9 Merge topic 'revert-file-alt-httpauth'
646eedcfcb Revert "file: Allow DOWNLOAD/UPLOAD using alternate authentication methods"

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2858
2019-01-25 07:51:25 -05:00
Brad King
29fbd3c9a0 Merge topic 'aarch64-no-std-move-function'
8f56f22b84 cmListCommand: Avoid std::function move constructor on aarch64

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2857
2019-01-25 07:50:23 -05:00
Kitware Robot
d47aa71b39 CMake Nightly Date Stamp 2019-01-25 00:01:06 -05:00
Brad King
646eedcfcb Revert "file: Allow DOWNLOAD/UPLOAD using alternate authentication methods"
Revert commit 31301b46a7 (file: Allow DOWNLOAD/UPLOAD using alternate
authentication methods, 2018-08-28, v3.13.0-rc1~155^2).  It regressed
support for password-protected redirects.

Fixes: #18691
2019-01-24 14:14:40 -05:00
Brad King
8f56f22b84 cmListCommand: Avoid std::function move constructor on aarch64
Since commit 5a0784ddea (clang-tidy: Pass by value, 2019-01-21), some of
the `RunCMake.{list,PositionIndependentCode}` cases have crashed on an
aarch64 build with GCC 6.  Avoiding use of the `std::function` move
constructor avoids the crash.  Use a strict preprocessor condition to
use this workaround only where needed.
2019-01-24 14:07:05 -05:00
Brad King
626c51f47b VS: Update for Visual Studio 2019 Preview 2
The toolset is now called `v142`.  Use matching flag tables.

Fixes: #18834
2019-01-24 13:49:25 -05:00
Tushar Maheshwari
e50a36df48 cmGetFilenameComponentCommand: Add more components
LAST_EXT: gets last extension from filename with multiple periods
NAME_WLE: gets the name without the last extension
2019-01-24 22:38:52 +05:30
Brad King
d67ce0a61e Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2019-01-24 (b9dd1636)
2019-01-24 09:52:25 -05:00
Saleem Abdulrasool
de13c55d74 Ninja: support SWIFT_MODULE_NAME property
Add a new `SWIFT_MODULE_NAME` property that defaults to the target name.
This can be adjusted via `set_target_properties`.  This is needed as
otherwise, the first source file determines the module name.

Issue: #18800
2019-01-23 21:21:07 -08:00
Kitware Robot
a578922467 CMake Nightly Date Stamp 2019-01-24 00:01:08 -05:00
Brad King
c3203bf316 Silence -Wcomma warning
We use a comma-in-paren expression to evaluate multiple statements
in a condition.  Clang warns that this may be incorrect.  Follow
its suggestion to cast all but the last expression to `void` to
silence the warning.
2019-01-23 13:20:14 -05:00
Brad King
68eabb3576 Avoid -Wstring-plus-int warning
In `cmState::GetGlobalProperty` we use a macro to produce a string of
the form ";a;b;c" and want to return "a;b;c" by skipping the leading
";".  Switch from pointer arithmetic to indexing+addressing to silence
the "warning: adding 'int' to a string does not append to the string"
diagnostic from Clang.
2019-01-23 13:17:22 -05:00
Vitaly Stakhovsky
99337d345b cmSystemTools::Error(): new overload accepting std::string 2019-01-23 10:19:30 -05:00
Kyle Edwards
a6982cff0d cmMakefile: Impose maximum recursion limit
In order to keep infinitely-recursive scripts from causing a stack
overflow in the CMake executable, CMake now imposes a maximum
recursion limit before issuing an error message. The limit can be
adjusted at runtime with CMAKE_MAXIMUM_RECURSION_DEPTH.

Fixes: #18694
2019-01-23 09:52:29 -05:00
Brad King
a7f5cd45e1 Merge topic 'tidy-pass-by-value'
5a0784ddea clang-tidy: Pass by value

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2836
2019-01-23 08:17:49 -05:00
Brad King
22893baed1 Merge topic 'update-kwsys'
405d9cb4b5 Merge branch 'upstream-KWSys' into update-kwsys
3068a0d0dc KWSys 2019-01-22 (4fecfe6f)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2833
2019-01-23 08:17:04 -05:00
Brad King
e898f48bbc Merge topic 'getmodulesfile-string'
2993fc347a cmMakefile: GetModulesFile() accepts std::string param

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2838
2019-01-23 08:16:15 -05:00