Commit Graph

29241 Commits

Author SHA1 Message Date
Justin Goshi 7d6861f367 fileapi: Extend codemodel targets with language standard 2020-06-26 08:52:29 -04:00
Kitware Robot 035a3940f5 CMake Nightly Date Stamp 2020-06-26 05:51:02 -04:00
Asit Dhal d4812a955b cmake-install: implement default directory permissions
provide an argument for default directory permissions in cmake --install

Fixes: #20700
2020-06-25 14:43:30 -04:00
Kitware Robot aae35feea2 CMake Nightly Date Stamp 2020-06-25 00:02:04 -04:00
Kyle Edwards 6051a49c78 Visual Studio: Add Android support 2020-06-24 08:41:09 -04:00
Robert Maynard eae15dce6a Genex: $<CONFIG:> now supports multiple configurations
Instead of having to do $<OR:$<CONFIG:Release>,$<CONFIG:MinSizeRel>>
you can do $<CONFIG:Release,MinSizeRel>
2020-06-24 08:38:28 -04:00
Robert Maynard c4cc21d20b cmVisualStudio10TargetGenerator: Do not segfault on empty config
The VS generator should error out earlier when no configurations
are specified, but for now cover this symptom.
2020-06-24 08:38:02 -04:00
Kitware Robot bb2d9a02be CMake Nightly Date Stamp 2020-06-24 00:02:09 -04:00
Craig Scott 4f90fef85f Merge topic 'deprecate-pre-2.8.12'
5845c218d7 Deprecate compatibility with CMake versions older than 2.8.12
7b07ccdd2b Tests/*Only: Update cmake_minimum_required versions
9b99b4bfc8 Tests/RunCMake: Update cmake_minimum_required versions
fcea4a3b45 cmStateSnapshot: Invert CanPopPolicyScope return value to match name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !4897
2020-06-23 09:36:03 -04:00
Brad King eeff90389f Merge topic 'refactor_file_extension_queries'
7628153edb Refactor file extension queries to be more consistent

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4925
2020-06-23 08:14:01 -04:00
Brad King 81399d5438 Merge topic 'refactor_language_mapping_logic'
c4e890946a try_compile: consistently add language properties
0e16da8233 cmCoreTryCompile use anonymous namespace instead of static

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4895
2020-06-23 08:13:16 -04:00
Brad King a84c85310c Merge topic 'graphviz-cycles'
ee5eb2eab4 Graphviz: add missing support for circular dependencies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4926
2020-06-23 08:12:23 -04:00
Brad King 22dbe547fb Merge topic 'makefile-fix-verbose' into release-3.18
7f78bc42cb Makefile: Fix regression in .SILENT rule

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4928
2020-06-23 07:57:33 -04:00
Brad King 63382b5277 Merge topic 'makefile-fix-verbose'
7f78bc42cb Makefile: Fix regression in .SILENT rule

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4928
2020-06-23 07:57:33 -04:00
Kitware Robot ee5893c10e CMake Nightly Date Stamp 2020-06-23 00:02:37 -04:00
Justin Goshi ba835874a4 Add backtrace support for language standard 2020-06-22 09:26:23 -04:00
Justin Goshi e43486a639 cmGeneratorTarget: Clarify name of language property lookup helper 2020-06-22 09:22:38 -04:00
Robert Maynard 7628153edb Refactor file extension queries to be more consistent
It was very easy to forgot to check against all language file
extensions. This updates the internal API to have a unified API.
2020-06-22 09:13:16 -04:00
Daniel Colascione 7f78bc42cb Makefile: Fix regression in .SILENT rule
Since commit d74e651b78 (Makefiles: Re-implement makefile target path
escaping and quoting, 2020-04-10, v3.18.0-rc1~334^2~1), `WriteMakeRule`
now correctly escapes `$` in make target paths as `$$`.  However, this
caused an existing call site to escape the `$(VERBOSE)` variable
reference in the `.SILENT` prefix, making it ineffective.  Sub-makefiles
are invoked with `MAKESILENT`, so this bug matters only for the `all`
target, which emits progress messages from toplevel.

Before:

    # Suppress display of executed commands.
    $$(VERBOSE).SILENT:

After:

    # Suppress display of executed commands.
    $(VERBOSE).SILENT:
2020-06-22 08:48:53 -04:00
Robert Maynard c4e890946a try_compile: consistently add language properties
It was very easy to forgot to add all the possible language
properties that try_compile might need. Refactored the code
to make it harder to skip flags.

This changes adds the missing language properties for
the CUDA, Fortran, OBJC, OBJCXX, and Swift languages:

- CMAKE_<LANG>_COMPILER_EXTERNAL_TOOLCHAIN
- CMAKE_<LANG>_COMPILER_TARGET
- CMAKE_<LANG>_LINK_NO_PIE_SUPPORTED
- CMAKE_<LANG>_PIE_SUPPORTED
2020-06-22 08:37:44 -04:00
Kitware Robot 9692931f83 CMake Nightly Date Stamp 2020-06-22 00:02:06 -04:00
Corentin Plouet ee5eb2eab4 Graphviz: add missing support for circular dependencies
This support was actually added by removing a superfluous check that was
too eager in cmLinkItemGraphVisitor.cxx.

Extended the existing Graphviz tests to include this particular case,
and re-generated the expected output files.

Fixes: #20720
2020-06-22 01:17:19 +10:00
Kitware Robot 71f6c7badf CMake Nightly Date Stamp 2020-06-21 00:02:53 -04:00
Kitware Robot eae0c0afbb CMake Nightly Date Stamp 2020-06-20 00:02:46 -04:00
Brad King 6f7853cb42 Merge topic 'get_filename_component-error-fatal'
470b3a76b3 get_filename_component: make errors fatal

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4914
2020-06-19 08:17:12 -04:00
Brad King d736b2ef3a Merge topic 'test-extra-generators'
ab6e1e49c0 Tests: Simplify addition of extra generator tests
882483192d cmake: Simplify internal conditions for adding extra generators

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4909
2020-06-19 08:15:59 -04:00
Brad King 43e8db481b Merge topic 'try_compile-nfs'
a9a258c302 try_compile: Do not try to remove '.nfs*' files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Acked-by: Axel Huebl <axel.huebl@plasma.ninja>
Merge-request: !4913
2020-06-19 08:14:05 -04:00
Kitware Robot c0a9fc1dd6 CMake Nightly Date Stamp 2020-06-19 00:02:46 -04:00
Kyle Edwards bbcaf9689e Refactor: Add IsAndroidGuiExecutable() method to cmTarget 2020-06-18 15:35:26 -04:00
Kyle Edwards 14456923bd cmGlobalVisualStudio10Generator: Move variable initialization to header 2020-06-18 15:35:26 -04:00
Kyle Edwards d5b5c19278 cmGlobalGenerator: FindMakeProgram() before CMakeDetermineSystem
Prior to 147d36c, the build tool was found before the toolset was
selected, but was changed to be found after in order to support a
64-bit MSBuild (introduced in da402a0.) However, a bug was found in
64-bit MSBuild, which resulted in da402a0 being reverted in
f3cedf3 (but 147d36c was not reverted.) Move FindMakeProgram() even
earlier than it was before 147d36c, before CMakeDetermineSystem is
called, so that the Visual Studio Android support can report its
sysroot, giving Android-Determine the information it needs to
inspect the NDK.

When the bug in 64-bit MSBuild is fixed, we will have a chicken-and-
egg problem, but we don't need to worry about it for now.
2020-06-18 15:35:26 -04:00
Robert Maynard 0e16da8233 cmCoreTryCompile use anonymous namespace instead of static 2020-06-18 14:44:02 -04:00
Asit Dhal 470b3a76b3 get_filename_component: make errors fatal
Make all errors in `get_filename_component` fatal.

Fixes: #20015
2020-06-18 10:01:45 -04:00
Brad King 5845c218d7 Deprecate compatibility with CMake versions older than 2.8.12
Issue a deprecation warning on calls to `cmake_minimum_required` or
`cmake_policy` that set policies based on versions older than 2.8.12.
Note that the effective policy version includes `...<max>` treatment.
This is important in combination with commit ca24b70d31 (Export: Specify
a policy range in exported files, 2020-05-16, v3.18.0-rc1~133^2).
2020-06-18 09:52:05 -04:00
Brad King fcea4a3b45 cmStateSnapshot: Invert CanPopPolicyScope return value to match name 2020-06-18 09:52:05 -04:00
Brad King 0a7a4665be Merge topic 'xcode-link-libs'
58c05e1c73 Xcode: Use "Link Binary With Libraries" build phase when possible
927373b678 Xcode: Refactor generator variable names and types

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4882
2020-06-18 09:51:35 -04:00
Brad King e0b21ad924 Merge topic 'languageStandardRefactor'
742ff97f80 Refactor language standard computation
0892c798f7 cmMakefile: Change CompileFeatureKnown to take target name instead of target

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4803
2020-06-18 09:47:41 -04:00
Brad King 2399be054b Merge topic 'configure_file-error-handling'
032506acc6 cmake: implement error handling in configure_file

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4889
2020-06-18 09:43:13 -04:00
Brad King 96602aeee2 Merge topic 'refactor_try_compile_parsing'
574f71efba try_compile: Refactor language standard level parsing

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4900
2020-06-18 09:39:54 -04:00
Kitware Robot 61aa9128c3 CMake Nightly Date Stamp 2020-06-18 00:02:13 -04:00
Brad King a9a258c302 try_compile: Do not try to remove '.nfs*' files
These files are part of the NFS implementation and should not be
removed.  They will automatically disappear when NFS is done with them.

Fixes: #20844
2020-06-17 15:15:02 -04:00
Brad King e66fe75792 CMake 3.18.0-rc2 2020-06-17 09:58:40 -04:00
Brad King 882483192d cmake: Simplify internal conditions for adding extra generators
They are always present except in the bootstrap `cmake`.
2020-06-17 06:55:30 -04:00
Brad King 55ade79ab8 Merge topic 'cuda_clang_limitations'
bdb105ee94 Help: Mention CUDA Clang limitations in 3.18 release notes
fec7dd33d3 CUDA: Add issue number to Clang separable compilation error
14163d7d6b CUDA: Throw error for Clang on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4903
2020-06-17 06:44:25 -04:00
Gusts Kaksis 58c05e1c73 Xcode: Use "Link Binary With Libraries" build phase when possible
Try linking all target linked libraries through frameworks build phase
instead of linker flags, thus letting Xcode manage build product paths
correctly.  Prevent adding duplicate entries to "Link Binary With
Libraries" build phase.

Add check for configuration-dependent linking - in case the library is
not present in all configurations revert back to linker flags which are
per-configuration.

This does change the order of libraries linked, but that does not seem
to matter for Apple linkers invoked by Xcode, even for static libraries.
The linker will go back and re-consider a static library from earlier
on the link line when more symbols from its objects are needed.

Fixes: #14185
2020-06-17 06:35:25 -04:00
Robert Maynard 574f71efba try_compile: Refactor language standard level parsing
cmCoreTryCompile had significant code duplication around handling
languages that offer standard levels. This refactoring reduces
the complexity and makes it easier to add new languages in the
future.
2020-06-17 06:30:39 -04:00
Kitware Robot e96b5e4449 CMake Nightly Date Stamp 2020-06-17 00:03:25 -04:00
Asit Dhal 032506acc6 cmake: implement error handling in configure_file
Implement error handling in case it fails

Fixes: #20696
2020-06-17 05:22:34 +02:00
Justin Goshi 742ff97f80 Refactor language standard computation
Instead of mutating the configure-time cmTarget's properties at generate
time, compute and store it in a cmGeneratorTarget field.
2020-06-16 16:32:34 -07:00
Raul Tambre fec7dd33d3 CUDA: Add issue number to Clang separable compilation error 2020-06-16 14:07:30 -04:00