Commit Graph

7162 Commits

Author SHA1 Message Date
Daniel Mensinger
00f25dacc0
trace: Directly parse commandline arguments without argparse 2020-01-01 11:18:26 +01:00
Rolf Eike Beer
397d162b9a Tests: do not use the same variable name in nested loops
Spotted by LGTM.com.
2019-12-31 13:30:18 +01:00
Sylvain Joubert
a179cbf205 FindLibXml2: provide imported target LibXml2::xmllint 2019-12-31 12:45:26 +01:00
Craig Scott
da9cbeb3e9 Merge topic 'ctest-resource-allocation-spec-message'
b393b32b4b CTest: Improve error handling when reading resource spec file

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4162
2019-12-28 19:03:00 -05:00
Kyle Edwards
b393b32b4b CTest: Improve error handling when reading resource spec file
Fixes: #20079
2019-12-27 10:53:52 -05:00
Kyle Edwards
bb811568cc Merge topic 'traceJSON'
e113ab1168 trace: Add test for the JSON-v1 trace
482497e0de trace: Add JSON output format

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4102
2019-12-27 10:53:13 -05:00
Kyle Edwards
e8776d6e3a Merge topic 'cmcoretrycompile_cleanup_symlinks'
a024d614ca cmCoreTryCompile::CleanupFiles now removes symlinks instead of their contents.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4158
2019-12-27 10:52:36 -05:00
Johnny Jazeix
a024d614ca cmCoreTryCompile::CleanupFiles now removes symlinks instead of their contents.
Fixes: #17522
2019-12-26 17:39:36 +01:00
Daniel Mensinger
e113ab1168
trace: Add test for the JSON-v1 trace 2019-12-23 14:05:42 +01:00
Marc Chevrier
417c533010 Merge topic 'findpython_conda_support'
776d27d4a4 FindPython: Extend virtual environment handling by considering conda

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4155
2019-12-23 06:33:54 -05:00
Sebastian Müller
776d27d4a4 FindPython: Extend virtual environment handling by considering conda
- Add functionality to recognize and use CONDA_PREFIX environment variable
- Add tests for conda virtual environments
- Fixes: #20111
2019-12-21 15:38:00 +01:00
Kyle Edwards
dbc8b3c599 Merge topic 'test-objc-enable'
2b6c2e55e7 Tests: Enable missing Objective C/C++ tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4152
2019-12-20 13:00:19 -05:00
Kyle Edwards
61960fa466 Merge topic 'add_find_call_debugging'
f3c9396260 Help: Document CMAKE_FIND_DEBUG_MODE
204b8d9f4e find_*: Use debug logging infrastructure
a7ea20649d find_*: Add debug logging infrastructure

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3935
2019-12-20 12:59:50 -05:00
Kyle Edwards
1a81acdd22 Merge topic 'add_custom_command-depends-path'
f5126badd8 add_custom_command: convert DEPENDS path arguments to absolute paths
a5f44ec925 cmAddCustomCommandCommand: remove unnecessary braces

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4148
2019-12-20 12:58:31 -05:00
Brad King
2b6c2e55e7 Tests: Enable missing Objective C/C++ tests
Some test cases added by commit 80f120a85f (Languages: Add support for
Objective-C, 2019-09-13, v3.16.0-rc1~44^2~3) have never actually been
run because the condition to enable them is never true.  Fix the
condition and fix the tests to pass.
2019-12-19 11:38:53 -05:00
Brad King
a3455779fb Merge topic 'autogen-no-hh'
7fa7f55230 Autogen: Revert processing of .hh files for compatibility

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4146
2019-12-19 09:52:34 -05:00
Brad King
f9ee055d53 Merge topic 'autogen-no-hh' into release-3.16
7fa7f55230 Autogen: Revert processing of .hh files for compatibility

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4146
2019-12-19 09:52:33 -05:00
Brad King
4126784ce4 Merge topic 'test-resource-spec-init-lists' into release-3.16
e8dbe4bba1 Tests: Fix testCTestResourceSpec struct initialization for some compilers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Michael Dickens <michael.dickens@ettus.com>
Merge-request: !4141
2019-12-19 09:51:53 -05:00
Brad King
1546ee39bd Merge topic 'test-resource-spec-init-lists'
e8dbe4bba1 Tests: Fix testCTestResourceSpec struct initialization for some compilers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Michael Dickens <michael.dickens@ettus.com>
Merge-request: !4141
2019-12-19 09:51:53 -05:00
Robert Maynard
204b8d9f4e find_*: Use debug logging infrastructure
Teach the find_package, find_library, find_program, find_path, and
find_file commands to print debug log messages when enabled by the
`--debug-find` command-line option or `CMAKE_FIND_DEBUG_MODE` variable.
2019-12-19 08:09:49 -05:00
Ben Boeckel
f5126badd8 add_custom_command: convert DEPENDS path arguments to absolute paths
This is only done if they are "obviously" paths in that they contain a
directory separator.

Fixes: #17111
2019-12-18 13:57:07 -05:00
Brad King
0607a50bb3 Merge topic 'add-header-cmext-algorithm'
f7d12609f0 Refactoring: use append functions from cmext/algorithm
a38d04c076 Refactoring: introduce header cmext/algorithm with append functions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4131
2019-12-18 09:32:03 -05:00
Michael Dickens
e8dbe4bba1 Tests: Fix testCTestResourceSpec struct initialization for some compilers
Some compilers do not like the nested `{{{}}}` member initialization
syntax, so use just `{}`.  GCC 4.8 warns about the latter, so add a
suppression.

Fixes: #20097
2019-12-18 05:45:08 -05:00
Brad King
7fa7f55230 Autogen: Revert processing of .hh files for compatibility
Since commit 4a9154537c (Autogen: Use cmake::IsHeader/SourceExtension
for file type detection, 2019-07-02, v3.16.0-rc1~470^2~4) we process
`.hh` files with `AUTOMOC`.  However, this change can break existing
projects that do not expect the behavior.  Revert it for now.  It can
be restored later via a policy.

Fixes: #20101
2019-12-18 05:34:27 -05:00
Brad King
3289322e4f Merge topic 'FindCUDAToolkit-module'
d484a3c4d8 FindCUDAToolkit: correct searches for Toolkit components
e2a5d8374f FindCUDAToolkit: Improve usage, library set, and tests
29560bf07b FindCUDAToolkit: Import targets for toolkit libraries
2c0ff263b4 FindCUDAToolkit: Add module to find the CUDA Toolkit
12d324e55d CUDA: Persist SIZEOF_VOID_P and PLATFORM_ABI

Acked-by: Kitware Robot <kwrobot@kitware.com>
Rejected-by: Brad King <brad.king@kitware.com>
Acked-by: Brad King <brad.king@kitware.com>
Merge-request: !4093
2019-12-17 11:13:50 -05:00
Brad King
37a30f228a Merge topic 'fix-vs-winrt-by-default'
557ea4614e VS: Change CMAKE_VS_WINRT_BY_DEFAULT to not implicitly enable WinRT
7bcef355bf Vs: Add test for VS_WINRT_BY_DEFAULT

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4127
2019-12-17 11:11:24 -05:00
Marc Chevrier
a38d04c076 Refactoring: introduce header cmext/algorithm with append functions 2019-12-17 10:43:58 +01:00
Robert Maynard
d484a3c4d8 FindCUDAToolkit: correct searches for Toolkit components 2019-12-16 14:35:03 -05:00
Petr Polezhaev
557ea4614e VS: Change CMAKE_VS_WINRT_BY_DEFAULT to not implicitly enable WinRT
Original behaviour would unconditionally enable WinRT for all projects
so source file flag generation code can acknowledge WinRT being present
and disable it for C language source files.  An unintentional result of
that approach is that WinRT is enabled for ALL projects, including C++
projects/source files with no way to disable it

Instead use `CMAKE_VS_WINRT_BY_DEFAULT` as a hint that the platform is
WinRT-by-default and set global `CompileAsWinRT` flag to `false` unless
it was explicitly requested by either `WINRT_COMPONENT` option or `/ZW`
compilation option - similar to what Windows Phone/Windows Store
platform logic does

In case WinRT compilation is enabled for a project by either of
aforementioned methods, C language source file override logic will still
kick in and disable CompileAsWinRT for C source files

Fixes: #20063
2019-12-16 13:46:59 -05:00
Robert Maynard
e2a5d8374f FindCUDAToolkit: Improve usage, library set, and tests
Refined the initial design of FindCUDAToolkit and improve it
by adding more library support, more toolkit information and
tests.
2019-12-16 11:15:12 -05:00
Brad King
19f04031b6 Merge topic 'ninja-multi'
8c062f9d99 Help: Add documentation and release notes for multi-config Ninja
e0478cc646 Tests: Add test for Multi-Configuration Ninja generator
5a8a9f7229 Ninja: Add multi-config variant
3bc63e99e4 Refactor: Prepare Ninja generator for multi-config

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4086
2019-12-16 10:06:48 -05:00
Brad King
43e6254a17 Merge topic 'test-vtk'
59e2e72159 Tests/Contracts: Update VTK repository URL

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4138
2019-12-16 10:05:18 -05:00
Brad King
dfbe8109b4 Merge topic 'pch-force-include' into release-3.16
c5c218fa0d PCH: Append pch header file to list of forced include files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4135
2019-12-16 10:04:03 -05:00
Brad King
fe7626da54 Merge topic 'pch-force-include'
c5c218fa0d PCH: Append pch header file to list of forced include files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4135
2019-12-16 10:04:03 -05:00
Petr Polezhaev
7bcef355bf Vs: Add test for VS_WINRT_BY_DEFAULT 2019-12-16 15:00:44 +03:00
Brad King
59e2e72159 Tests/Contracts: Update VTK repository URL
The vtk.org/vtk.git repository has long been superseded by the
repository on gitlab.kitware.com.  The former is no longer available.
2019-12-14 12:55:26 -05:00
Kyle Edwards
e0478cc646 Tests: Add test for Multi-Configuration Ninja generator 2019-12-13 10:52:07 -05:00
Kyle Edwards
5a8a9f7229 Ninja: Add multi-config variant
Co-Authored-by: vector-of-bool <vectorofbool@gmail.com>
2019-12-13 10:51:46 -05:00
Cristian Adam
c5c218fa0d PCH: Append pch header file to list of forced include files
Fixes: #20088
2019-12-13 15:21:27 +01:00
Kyle Edwards
966a9eece3 Merge topic 'function-var-current'
24fdd51f45 Refactor: Replace CMAKE_CURRENT_LIST_DIR with CMAKE_CURRENT_FUNCTION_LIST_DIR
90e3e2a777 cmFunctionCommand: Introduce `CMAKE_CURRENT_FUNCTION*` variables
dd54290dab Refactor: Modernize `function` command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !4000
2019-12-12 14:00:41 -05:00
Brad King
f6e29e0405 Merge topic 'link-options-propagation'
af9d4f24ae Link properties: must be transitive over private dependency on static library

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4130
2019-12-12 12:05:57 -05:00
Marc Chevrier
af9d4f24ae Link properties: must be transitive over private dependency on static library
Ensure transitivity over multiple static libraries.

Fixes: bbba701899 (Link properties: must be transitive over private dependency on static library, 2019-12-06)
2019-12-12 18:02:32 +01:00
Brad King
4fb9c88042 Merge topic 'add_cuda_meta_compiler_features'
2467a2b318 CUDA: Add cuda meta-features (e.g. ``cuda_std_11``) support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3992
2019-12-12 11:57:18 -05:00
Kyle Edwards
106137492b Merge topic 'ctest-configuration-type'
e6f758be6d ctest: Populate CTEST_CONFIGURATION_TYPE from the -C command line when set

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4109
2019-12-11 11:00:13 -05:00
Kyle Edwards
651b5d157a Merge topic 'cpack-use-CPACK_PACKAGE_HOMEPAGE_URL'
3476dbe6d7 CPack: CMAKE_PROJECT_HOMEPAGE_URL -> CPACK_PACKAGE_HOMEPAGE_URL

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4024
2019-12-11 10:59:29 -05:00
Robert Maynard
2467a2b318 CUDA: Add cuda meta-features (e.g. `cuda_std_11`) support 2019-12-10 17:56:48 -05:00
Alex Turbov
90e3e2a777 cmFunctionCommand: Introduce CMAKE_CURRENT_FUNCTION* variables
`CMAKE_CURRENT_FUNCTION`
  Can be used for diagnostic or debugging messages like the
  `__PRETTY_FUNCTION__` macro of GCC.

`CMAKE_CURRENT_FUNCTION_LIST_DIR`
  Eliminates the necessity of the additional "global"
  variables inside a module used to access additional "resource"
  files from functions defined in the module.

...
2019-12-10 16:43:27 +02:00
Alex Turbov
3476dbe6d7 CPack: CMAKE_PROJECT_HOMEPAGE_URL -> CPACK_PACKAGE_HOMEPAGE_URL
At CPack running time the `CMAKE_PROJECT_HOMEPAGE_URL` variable
is not set.

Internal CPack modules (e.g. CPackDEB, CPackRPM, CPackFreeBSD)
should use `CPACK_PACKAGE_HOMEPAGE_URL` instead, which is available
after inclusion of `CPack.cmake` into `CMakeLists.txt`.

Closes: #19607
2019-12-09 17:06:10 -05:00
Julien Jomier
e6f758be6d ctest: Populate CTEST_CONFIGURATION_TYPE from the -C command line when set 2019-12-09 13:10:59 -05:00
Brad King
b358f1827c Merge topic 'link-options-propagation'
bbba701899 Link properties: must be transitive over private dependency on static library

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4120
2019-12-09 11:32:05 -05:00
Marc Chevrier
bbba701899 Link properties: must be transitive over private dependency on static library
Fixes: #20022
2019-12-09 11:29:36 -05:00
Brad King
f62c674202 Merge topic 'foreach-ZIP_LISTS'
d30468a2f6 foreach: Allow multiple iteration variables for `ZIP_LIST` mode
f3e51a2b1d foreach: Introduce `IN ZIP_LISTS` mode

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4021
2019-12-09 11:25:35 -05:00
Brad King
1da7fa3b47 Merge topic 'compiler-launcher-env'
6f48c59257 launcher: support setting a compiler launcher through the environment

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4095
2019-12-09 11:19:57 -05:00
Brad King
21ba61c50c Merge topic 'unity-object-libraries' into release-3.16
fa93b4a59b Unity: Proper handling of object libraries
5ae07e7166 Unity: Generic source file handling for all generators
f742f7ac1f Unity/PCH: Skip more target types when adding automatic sources

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4110
2019-12-09 10:16:31 -05:00
Brad King
bde1bc7386 Merge topic 'unity-object-libraries'
fc99130752 Merge branch 'backport-unity-object-libraries' into unity-object-libraries
fa93b4a59b Unity: Proper handling of object libraries
5ae07e7166 Unity: Generic source file handling for all generators
f742f7ac1f Unity/PCH: Skip more target types when adding automatic sources

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4110
2019-12-09 10:16:31 -05:00
Brad King
47c6b6cdee Merge topic 'pch-reuse-importlib' into release-3.16
93becd61d1 PCH: Use the target's PREFIX for building the pdb file name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4114
2019-12-09 10:15:19 -05:00
Brad King
835f1bcbde Merge topic 'pch-reuse-importlib'
93becd61d1 PCH: Use the target's PREFIX for building the pdb file name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4114
2019-12-09 10:15:19 -05:00
Cristian Adam
93becd61d1 PCH: Use the target's PREFIX for building the pdb file name
Also copy the REUSE_FROM pdb file only if the file is newer than the
existing one.

Fixes: #19731
Fixes: #20068
2019-12-08 20:22:34 +01:00
Brad King
fc99130752 Merge branch 'backport-unity-object-libraries' into unity-object-libraries 2019-12-08 11:21:38 -05:00
Alex Turbov
d30468a2f6
foreach: Allow multiple iteration variables for ZIP_LIST mode 2019-12-07 18:03:20 +02:00
Cristian Adam
fa93b4a59b Unity: Proper handling of object libraries
Fixes: #20051
2019-12-07 15:44:38 +01:00
T.J. Corona
30488b3b9f FindLibArchive: create a target 2019-12-05 17:18:28 -05:00
Ben Boeckel
6f48c59257 launcher: support setting a compiler launcher through the environment
This makes it much easier to use a launcher for all CMake projects in an
environment rather than having to remember to pass the setting to every
CMake build.
2019-12-05 14:25:36 -05:00
Brad King
e9e0e401c6 Merge topic 'cmext-memory'
fc3b4caa2e Memory management: cast functions for managed pointers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4064
2019-12-04 14:22:01 -05:00
Alex Turbov
f3e51a2b1d foreach: Introduce IN ZIP_LISTS mode 2019-12-01 22:28:39 +02:00
Kyle Edwards
398dfc1338 Merge topic 'ctest-spec-file-version-test'
59df85194e CTest Resource Allocation: Add test for spec file with no version

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4092
2019-11-27 22:48:20 -05:00
Marc Chevrier
fc3b4caa2e Memory management: cast functions for managed pointers 2019-11-27 16:03:04 +01:00
Kyle Edwards
59df85194e CTest Resource Allocation: Add test for spec file with no version 2019-11-26 11:41:56 -05:00
Brad King
3d5227e6b6 Merge topic 'ctest-resource-fixes'
a033bafbe0 Help: Clarify how tests are run if no resource spec file is specified
a64ba0235f CTest: Clarify that resource requirements can be split
f9f294f5fa CTest: Add version field to resource spec file

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4080
2019-11-26 09:12:34 -05:00
Kyle Edwards
a64ba0235f CTest: Clarify that resource requirements can be split
Add a note to the documentation to clarify this, and add test cases
to ensure it.

Fixes: #19987
2019-11-25 11:08:27 -05:00
Kyle Edwards
f9f294f5fa CTest: Add version field to resource spec file
Fixes: #20007
2019-11-25 11:08:27 -05:00
Brad King
ae7d99fbd5 Merge topic 'load_cache_in_script'
5e9ecaae0e load_cache: Allow READ_WITH_PREFIX mode in cmake scripts

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4042
2019-11-21 11:03:09 -05:00
Kyle Edwards
51c69fe5f8 FileAPI: Add "multiConfig" parameter to index file 2019-11-20 09:46:10 -05:00
Craig Scott
9e9787f19a Merge topic 'ctest-repeat'
32c165d263 CTest: Consolidate '--repeat-* n' options as `--repeat *:n`

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4053
2019-11-19 15:48:38 -05:00
Charles Barto
5e9ecaae0e load_cache: Allow READ_WITH_PREFIX mode in cmake scripts 2019-11-19 14:39:00 -05:00
Gregor Jasny
92c4c852db Xcode: Add custom working directory property
Closes: #19967
2019-11-18 22:34:34 +01:00
Brad King
6cb9867ba3 Merge topic 'pch-reuse-no-prop' into release-3.16
bb4c2781ce PCH: Do not issue an error on duplicate target_precompile_headers call

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4046
2019-11-18 09:46:26 -05:00
Brad King
e14c9af013 Merge topic 'pch-reuse-no-prop'
bb4c2781ce PCH: Do not issue an error on duplicate target_precompile_headers call

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4046
2019-11-18 09:46:26 -05:00
Brad King
32c165d263 CTest: Consolidate '--repeat-* n' options as --repeat *:n
Combine `--repeat-until-fail`, `--repeat-until-pass`, and
`--repeat-after-timeout` to create a single `--repeat <mode>:<n>`
option.  Retain `--repeat-until-fail` too because that has been
available in previous releases.
2019-11-15 10:08:33 -05:00
Kyle Edwards
5695b0464b Merge topic 'cmake-e-rm'
2d0100fac7 replace remove and remove_directory with rm in tests
5239fc5c75 cmake -E: Add rm with improved semantics over remove and remove_directory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3949
2019-11-15 09:57:56 -05:00
Cristian Adam
bb4c2781ce PCH: Do not issue an error on duplicate target_precompile_headers call
Fixes: #19970
2019-11-15 09:47:56 -05:00
Brad King
c1ae0532f3 Merge topic 'ctest_test-repeat'
28994115e8 ctest_test: Add option to REPEAT tests
42d5d8f425 cmCTestMultiProcessHandler: Hold repeat mode as a member
ed65b3e984 CTest: Rename internal APIs for --repeat options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4011
2019-11-15 09:17:26 -05:00
Brad King
330b7b0190 Merge topic 'objc-tests' into release-3.16
d2e5e6ff1a Tests: Organize Objective C/C++ test directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4051
2019-11-15 09:04:40 -05:00
Brad King
ee200b7d96 Merge topic 'objc-tests'
d2e5e6ff1a Tests: Organize Objective C/C++ test directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4051
2019-11-15 09:04:40 -05:00
Brad King
7ee73962ec Merge topic 'fix-optional-test'
e8bd920df1 Tests: Fix reliance on undefined behavior of cm::optional

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !4049
2019-11-15 09:03:17 -05:00
Brad King
d2e5e6ff1a Tests: Organize Objective C/C++ test directories
Move them all under `Tests/ObjC` and `Tests/ObjCXX`.
2019-11-14 10:57:42 -05:00
Johnny Jazeix
2d0100fac7 replace remove and remove_directory with rm in tests 2019-11-13 18:02:18 -05:00
Johnny Jazeix
5239fc5c75 cmake -E: Add rm with improved semantics over remove and remove_directory 2019-11-13 18:02:18 -05:00
Kyle Edwards
e8bd920df1 Tests: Fix reliance on undefined behavior of cm::optional
The test for cm::optional assumed that *opt would return a reference
to a non-constructed object if opt.has_value() is false. However, on
certain systems that build CMake with flags to harden the build,
this condition aborts rather than returning the invalid reference.
Fix this by getting the reference only when the cm::optional is
known to actually have a value.

Fixes: #19964
2019-11-13 13:56:22 -05:00
Brad King
5b46bc3194 Merge topic 'unity-HEADER_FILE_ONLY'
9a5418320e Unity: Don't include sources with HEADER_FILE_ONLY property set

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4023
2019-11-12 09:51:16 -05:00
Brad King
eae743bf17 Merge topic 'unity-HEADER_FILE_ONLY' into release-3.16
9a5418320e Unity: Don't include sources with HEADER_FILE_ONLY property set

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4023
2019-11-12 09:51:15 -05:00
Brad King
b197d20c08 Merge topic 'objc-xcode-flags' into release-3.16
bb42e1ed43 ObjC: Add OBJC/OBJCXX flags to Xcode projects

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4020
2019-11-12 09:43:11 -05:00
Brad King
43ef704d51 Merge topic 'objc-xcode-flags'
bb42e1ed43 ObjC: Add OBJC/OBJCXX flags to Xcode projects

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4020
2019-11-12 09:43:11 -05:00
Brad King
ffa9965700 Merge topic 'pch-cray-classic' into release-3.16
77a8f9ecbc Tests: Fix ExportImport PCH expectation on Cray Classic compiler

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4033
2019-11-12 09:35:38 -05:00
Brad King
e2c3da8d4b Merge topic 'pch-cray-classic'
77a8f9ecbc Tests: Fix ExportImport PCH expectation on Cray Classic compiler

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4033
2019-11-12 09:35:38 -05:00
Craig Scott
cba091d3a9 Merge topic 'pch-no-duplicates' into release-3.16
e01935ac9d PCH: No repeated path for internal generated PCH files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4030
2019-11-12 08:28:46 -05:00
Craig Scott
9a935adca9 Merge topic 'pch-no-duplicates'
e01935ac9d PCH: No repeated path for internal generated PCH files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4030
2019-11-12 08:28:46 -05:00
Craig Scott
00f5e02060 Merge topic 'remove-CPACK_INSTALL_CMAKE_CONFIGURATIONS' into release-3.16
1d1fa5d3e4 Tests: Add RunCMake.CPackCommandLine case for multi-config package
108207cc84 CPack: Remove CPACK_INSTALL_CMAKE_CONFIGURATIONS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4025
2019-11-12 08:16:31 -05:00
Craig Scott
27020c81d5 Merge topic 'remove-CPACK_INSTALL_CMAKE_CONFIGURATIONS'
1d1fa5d3e4 Tests: Add RunCMake.CPackCommandLine case for multi-config package
108207cc84 CPack: Remove CPACK_INSTALL_CMAKE_CONFIGURATIONS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4025
2019-11-12 08:16:31 -05:00
Brad King
1d1fa5d3e4 Tests: Add RunCMake.CPackCommandLine case for multi-config package
In commit da5ac4bb60 (cpack: Add `CPACK_INSTALL_CMAKE_CONFIGURATIONS`
variable, 2019-07-10, v3.16.0-rc1~165^2) we added support for running
the `cpack -C ...` command-line with multiple configurations.  Add an
explicit test for this.

Fixes: #19918
2019-11-11 14:16:48 -05:00
Alex Turbov
108207cc84 CPack: Remove CPACK_INSTALL_CMAKE_CONFIGURATIONS
In commit da5ac4bb60 (cpack: Add `CPACK_INSTALL_CMAKE_CONFIGURATIONS`
variable, 2019-07-10, v3.16.0-rc1~165^2) we added both the variable
and support for `cpack -C` with multiple configurations.  Drop the
variable because the `package` target cannot ensure that all of the
configurations are built.  Keep the command-line interface so that
it can be used manually in scripts.

Fixes: #19918
2019-11-11 14:15:09 -05:00
Cristian Adam
bb42e1ed43 ObjC: Add OBJC/OBJCXX flags to Xcode projects
Fixes: #19936
2019-11-11 17:43:17 +01:00
Brad King
77a8f9ecbc Tests: Fix ExportImport PCH expectation on Cray Classic compiler
Do not expect PCH-included definitions for this compiler.
2019-11-11 11:18:35 -05:00
Brad King
5e328c6d74 Merge topic 'objc-trycompile' into release-3.16
7447aa4b34 ObjC: Add try_compile support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4006
2019-11-11 10:25:47 -05:00
Brad King
ac7f41d20e Merge topic 'objc-trycompile'
7447aa4b34 ObjC: Add try_compile support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4006
2019-11-11 10:25:47 -05:00
Cristian Adam
9a5418320e Unity: Don't include sources with HEADER_FILE_ONLY property set
Fixes: #19946
Fixes: #19947
Co-authored-by: Craig Scott <craig.scott@crascit.com>
2019-11-11 14:10:18 +01:00
Cristian Adam
e01935ac9d PCH: No repeated path for internal generated PCH files
Fixes: #19952
2019-11-11 13:21:12 +01:00
Cristian Adam
7447aa4b34 ObjC: Add try_compile support
Fixes: #19920
2019-11-09 11:25:32 +01:00
Brad King
28994115e8 ctest_test: Add option to REPEAT tests 2019-11-07 14:21:18 -05:00
Kyle Edwards
87dcbe0b21 Merge topic 'ctest-resource-groups' into release-3.16
c1435d9812 Help: Fix error in resource allocation example
eb9d945f14 CTest: Rename hardware -> resources for RunCMake tests
c544cb6698 CTest: Rename hardware -> resources for source code
6ce27d3a2e cmCTestMultiProcessHandler: Rename resource locking functions
a7c1e15cc4 CTest: Rename hardware -> resources for CMake variables, command options
73a40b19ff CTest: Rename "Processes" lexer to "ResourceGroups"
af9ed543b0 CTest: Rename PROCESSES test property to RESOURCE_GROUPS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3994
2019-11-07 13:10:57 -05:00
Kyle Edwards
bea26f5aa0 Merge topic 'ctest-resource-groups'
016601e5e6 Merge branch 'backport-ctest-resource-groups'
c1435d9812 Help: Fix error in resource allocation example
eb9d945f14 CTest: Rename hardware -> resources for RunCMake tests
c544cb6698 CTest: Rename hardware -> resources for source code
6ce27d3a2e cmCTestMultiProcessHandler: Rename resource locking functions
a7c1e15cc4 CTest: Rename hardware -> resources for CMake variables, command options
73a40b19ff CTest: Rename "Processes" lexer to "ResourceGroups"
af9ed543b0 CTest: Rename PROCESSES test property to RESOURCE_GROUPS

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3994
2019-11-07 13:10:57 -05:00
Brad King
74569996e8 Merge topic 'refactor-foreach'
53227a4ff2 Refactor: Modernize `foreach` code and fix some bugs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3986
2019-11-07 10:27:59 -05:00
Brad King
f7612a6668 Merge topic 'unity-include-generated'
7ddf462304 Unity build: Include GENERATED files into unity build

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Julien Schueller <schueller@phimeca.com>
Merge-request: !4001
2019-11-07 10:26:50 -05:00
Brad King
02ed66c04b Merge topic 'unity-include-generated' into release-3.16
7ddf462304 Unity build: Include GENERATED files into unity build

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Julien Schueller <schueller@phimeca.com>
Merge-request: !4001
2019-11-07 10:26:49 -05:00
Brad King
4011b1be41 Merge branch 'backport-findpostgres-10-and-older' into release-3.15
Merge-request: !4007
2019-11-07 09:29:20 -05:00
Ben Boeckel
aeae4182cb FindPostgreSQL: support version encoding used in pre-10 releases
With the 10.x release, PostgreSQL upstream started encoding the version
as `MMmmmm` where `M` is major and `m` is minor. Prior to that, `MMmmPP`
was used where `P` was the patch number. Detect this difference and
decode it based on the used encoding.

Fixes: #19912
2019-11-07 09:24:12 -05:00
Cristian Adam
7ddf462304 Unity build: Include GENERATED files into unity build
There is no reason to skip the generated files, in case of problems
one can use the SKIP_UNITY_BUILD_INCLUSION property.

Fixes: #19925
2019-11-06 11:47:15 -05:00
Brad King
ce7408514c Merge topic 'install-name-dir-genex'
a0e2e0ca97 Help: Add documentation and release notes for INSTALL_NAME_DIR genex
deeab72aae Tests: Add tests for INSTALL_NAME_DIR
3c85f11fed INSTALL_NAME_DIR: Add support for generator expressions
2ec1156b80 Refactor: Generalize cmExportInstallFileGenerator::ReplaceInstallPrefix()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3989
2019-11-06 09:32:22 -05:00
Brad King
bae7a82ffa Merge topic 'xcode-restore-CMakeLists' into release-3.16
0ce8a5c08d Xcode: Fix generated references to CMakeLists.txt files
9457c95aa0 cmGlobalXCodeGenerator: Mark known source locations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3999
2019-11-06 09:23:56 -05:00
Brad King
30908fa0ee Merge topic 'xcode-restore-CMakeLists'
0ce8a5c08d Xcode: Fix generated references to CMakeLists.txt files
9457c95aa0 cmGlobalXCodeGenerator: Mark known source locations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3999
2019-11-06 09:23:56 -05:00
Alex Turbov
53227a4ff2
Refactor: Modernize foreach code and fix some bugs
- fix the typo in `foreach` documentation
- fix broken `foreach(... IN ITEMS ... LISTS ...)`
- add tests of `foreach` for existed functionality and fixes
2019-11-06 16:14:47 +02:00
Brad King
0ce8a5c08d Xcode: Fix generated references to CMakeLists.txt files
Refactoring in commit 2d888e3390 (cmSourceFile: Rename mutating
GetFullPath() overload, 2019-08-29, v3.16.0-rc1~160^2) accidentally left
the paths to `CMakeLists.txt` files empty in generated Xcode project
files.

Fixes: #19927
2019-11-05 14:29:41 -05:00
Brad King
016601e5e6 Merge branch 'backport-ctest-resource-groups' 2019-11-05 12:59:16 -05:00
Craig Scott
eb9d945f14 CTest: Rename hardware -> resources for RunCMake tests
Also includes variants like hw -> res
2019-11-05 12:08:35 -05:00
Craig Scott
c544cb6698 CTest: Rename hardware -> resources for source code 2019-11-05 12:08:35 -05:00
Craig Scott
a7c1e15cc4 CTest: Rename hardware -> resources for CMake variables, command options
Only changes the user-visible effects of renaming hardware
allocation to resource allocation. Code changes are the minimum
needed to achieve that.
2019-11-05 12:08:35 -05:00
Brad King
af9ed543b0 CTest: Rename PROCESSES test property to RESOURCE_GROUPS
The `PROCESSES` test property name added for CMake 3.16 is too close to
the existing `PROCESSORS` test property.  Furthermore, the property in
principle specifies groups of resources organized in a way that is
meaningful to a particular test.  The groups may often correspond to
processes but they could have other meanings.  Since the property name
`PROCESSES` has not been in a final 3.16 release yet, simply rename it
to `RESOURCE_GROUPS`.

Fixes: #19914
2019-11-05 12:08:01 -05:00
Brad King
3c0a317a1d Merge branch 'findpostgres-10-and-older' into release-3.16
Merge-request: !3993
2019-11-05 11:31:24 -05:00
Brad King
0ec60a4002 Merge branch 'source_group-tree' into release-3.16
Merge-request: !3979
2019-11-05 11:31:16 -05:00
Brad King
cb165b8b79 Merge topic 'source_group-tree'
3c0ca5a9d9 source_group: ensure that passed file is not a directory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3979
2019-11-05 11:30:27 -05:00
Brad King
3521e3d524 Merge topic 'findpostgres-10-and-older'
e992d62b7e FindPostgreSQL: support version encoding used in pre-10 releases

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3993
2019-11-05 11:23:59 -05:00
Brad King
57db062414 Merge topic 'ctest-repeat-until-pass'
30e79bb4a3 Tests: Extend RunCMake.CTestCommandLine internal timeout for valgrind

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3987
2019-11-05 10:55:41 -05:00
Kyle Edwards
deeab72aae Tests: Add tests for INSTALL_NAME_DIR 2019-11-04 19:02:16 -05:00
Ben Boeckel
e992d62b7e FindPostgreSQL: support version encoding used in pre-10 releases
With the 10.x release, PostgreSQL upstream started encoding the version
as `MMmmmm` where `M` is major and `m` is minor. Prior to that, `MMmmPP`
was used where `P` was the patch number. Detect this difference and
decode it based on the used encoding.

Fixes: #19912
2019-11-04 16:38:52 -05:00
Craig Scott
9667996923 Merge topic 'message-check-types'
7b2dd9dedc Refactor: Use added message types in various modules
949a1e120a message: New message types to mark checks performed by CMake

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3689
2019-11-04 14:11:45 -05:00
Mateusz Janek
3c0ca5a9d9 source_group: ensure that passed file is not a directory
Fixes: #19769
2019-11-04 13:37:41 -05:00
Brad King
30e79bb4a3 Tests: Extend RunCMake.CTestCommandLine internal timeout for valgrind
A case added by commit 39ac8b4eb5 (ctest: Add --repeat-after-timeout
option, 2019-10-29) includes a success-case timeout of 2 seconds.  That
is too short when running under valgrind, so extend it to 5 seconds.
2019-11-04 11:22:58 -05:00
Brad King
dbd14ecacf Merge topic 'FindPython-customize-failure-message'
687a354518 FindPython: customize failure message

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3970
2019-11-04 10:30:39 -05:00
Brad King
abac3a31a2 Merge topic 'root-dir-assertion-fix'
0692eaf0fe ForceToRelativePath: Fix spurious assertion when local path is root dir

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3976
2019-11-04 10:24:31 -05:00
Brad King
1463cfb437 Merge topic 'pgi-license-warnings'
59673bb2dc Tests: Teach RunCMake to ignore PGI license expiry warnings
210d04bb79 CTestCustom: Suppress PGI Community Edition compiler license warnings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3975
2019-11-04 10:12:26 -05:00
Alex Turbov
949a1e120a
message: New message types to mark checks performed by CMake
Closes #19638.

Co-Authored-By: Craig Scott <craig.scott@crascit.com>
2019-11-02 14:10:09 +02:00
Craig Scott
0692eaf0fe ForceToRelativePath: Fix spurious assertion when local path is root dir
Fixes: #19909
2019-11-02 17:54:13 +11:00
Brad King
6660926f22 Merge topic 'ctest-repeat-until-pass'
39ac8b4eb5 ctest: Add --repeat-after-timeout option
80c2c9d14c ctest: Add --repeat-until-pass option
0187e52244 cmCTestRunTest: Use inline member initializers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3960
2019-11-01 09:55:18 -04:00
Brad King
59673bb2dc Tests: Teach RunCMake to ignore PGI license expiry warnings
These are not useful in nightly testing.
2019-11-01 09:23:03 -04:00
Marc Chevrier
687a354518 FindPython: customize failure message 2019-11-01 12:10:30 +01:00
Brad King
dbf5ae35b5 Merge topic 'scanbuild-fixes'
fe5ba71bd0 Tests: Suppress clang scan-build warning in UTF8 test
3cf71e8c7d cmLocalGenerator: Drop unused initializer in AddUnityBuild

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3958
2019-10-30 09:30:34 -04:00
Brad King
39ac8b4eb5 ctest: Add --repeat-after-timeout option
Add an option to re-run tests if they timeout.  This will help tolerate
sporadic timeouts on busy machines.
2019-10-29 15:14:36 -04:00
Brad King
80c2c9d14c ctest: Add --repeat-until-pass option
Add an option to re-run tests if they fail.  This will help tolerate
sporadic failures.

Issue: #17010
Co-Author: Ben Boeckel <ben.boeckel@kitware.com>
Co-Author: Chuck Atkins <chuck.atkins@kitware.com>
2019-10-29 15:10:12 -04:00
Brad King
fe5ba71bd0 Tests: Suppress clang scan-build warning in UTF8 test
Clang scan-build 7 reports:

```
Tests/CMakeLib/testUTF8.cxx:12:3: warning: 4th function call argument is an uninitialized value
  printf("[0x%02X,0x%02X,0x%02X,0x%02X]", static_cast<int>(d[0]),
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```

Manual tracing of all call sites shows that all values are initialized.
2019-10-29 11:20:47 -04:00
Craig Scott
c37f4eff5e FindPackageModeMakefileTest: macOS needs isysroot flag
macOS/Xcode no longer populate /usr/include.
Building with the compiler directly instead of using /usr/bin/c++
can result in missing headers without the -isysroot flag.

Relates: #19885
2019-10-29 07:14:08 +11:00
Brad King
336a826f77 Merge topic 'framework-tests-multiarch-old-macos'
3e30c4cc1f Tests: Match file command output for older macOS (Framework test)
89ad3b3959 Tests: Prevent CMP0012 policy warnings in Framework test output

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3954
2019-10-28 10:10:37 -04:00
Brad King
62267715fe Merge branch 'framework-tests-multiarch-old-macos' into release-3.16
Merge-request: !3954
2019-10-28 10:09:29 -04:00
Brad King
cb13aa580d Merge topic 'ExternalProject-git-no-recurse'
5bc6230741 ExternalProject: Option to turn off recursive update of git submodules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3923
2019-10-28 10:05:45 -04:00
Craig Scott
c79e9d8c21 Merge branch 'project-version-buffer-overflow' into release-3.16
Merge-request: !3948
2019-10-28 21:55:20 +11:00
Craig Scott
cdcc173e23 Merge topic 'project-version-buffer-overflow'
82cdb26c93 project: Fix potential buffer write-past-end for version components
15a0b0d046 Help: math() expressions must be representable as signed 64-bit

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3948
2019-10-28 06:50:22 -04:00
Craig Scott
3e30c4cc1f Tests: Match file command output for older macOS (Framework test) 2019-10-27 23:48:41 +11:00
Craig Scott
89ad3b3959 Tests: Prevent CMP0012 policy warnings in Framework test output 2019-10-27 23:28:17 +11:00
Craig Scott
82cdb26c93 project: Fix potential buffer write-past-end for version components
This fixes two errors: not accounting for the trailing null and a
misunderstanding of what std::numeric_limits::digits10 means.
2019-10-26 17:50:24 +11:00
Charis Marangos
5bc6230741 ExternalProject: Option to turn off recursive update of git submodules
Fixes: #19832
2019-10-24 13:36:19 -04:00
Brad King
667f2861dc Merge topic 'project-include-before'
f7acc1266c project: Add variable CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE_BEFORE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3936
2019-10-21 11:24:28 -04:00
Brad King
53f95dc5fb Merge topic 'export-compile-commands-environment-variable'
8065a686dd Initialize CMAKE_EXPORT_COMPILE_COMMANDS from envvar of the same name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3914
2019-10-21 11:23:47 -04:00
Brad King
ede1bebd50 Merge topic 'FindOpenMP-include-dir'
409891baf7 FindOpenMP: Allow try_compile() to find omp.h for AppleClang

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3916
2019-10-21 11:20:33 -04:00
Brad King
50afd147f8 Merge topic 'vs-per-config-sources'
55a0bebdd3 VS: Add support for per-config sources
bcaecf6bcd Teach check for single-language targets to consider all configurations
324988a6b1 cmGeneratorTarget: Add GetAllConfigCompileLanguages method
fd2c9fac10 cmGeneratorTarget: Return non-const sources from GetAllConfigSources

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3882
2019-10-21 11:12:06 -04:00
Brad King
eaebd4fc47 Merge branch 'FindOpenMP-include-dir' into release-3.16
Merge-request: !3916
2019-10-21 11:09:56 -04:00
Deniz Bahadir
f7acc1266c project: Add variable CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE_BEFORE
Follow up commit 0761186949 (project: Add variable
CMAKE_PROJECT_INCLUDE_BEFORE, 2019-03-28, v3.15.0-rc1~294^2) with a
project-specific variant.  This variable will be used similar to the
already existing `CMAKE_PROJECT_INCLUDE_BEFORE` and
`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE` variables.

Fixes: #19854
2019-10-18 14:44:24 -04:00
Daan De Meyer
8065a686dd Initialize CMAKE_EXPORT_COMPILE_COMMANDS from envvar of the same name
Fixes: #18386
2019-10-18 14:37:33 -04:00
Brad King
fdb41a5102 Merge topic 'variable_watch-modernize'
4bedf6c9fa Refactor: Modernize `cmVariableWatchCommand` a little

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3892
2019-10-18 09:02:29 -04:00
Brad King
b34b4c5eac Merge topic 'vs-vctargetspath'
e7d57bc3c3 VS: Propagate CMAKE_VS_GLOBALS into custom targets
45b4b4b930 VS: Propagate CMAKE_VS_GLOBALS into compiler id projects
548e9051a4 VS: Add support to override VCTargetsPath through toolset
99e83d4235 cmake: Teach --build mode to load CMAKE_GENERATOR_TOOLSET

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3817
2019-10-18 09:01:48 -04:00
Brad King
1c84b5c86f Merge topic 'pch-makefile-depends'
797689ab35 PCH: Fix Makefile dependencies to rebuild PCH on header changes
0b10b3ed6b cmMakefileTargetGenerator: Inline WriteObjectBuildFile in only call site

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3928
2019-10-18 08:57:16 -04:00
Brad King
55a0bebdd3 VS: Add support for per-config sources
Since commit 97cc29c766 (VS: Teach generators how to mark per-config
source files, 2017-04-10, v3.9.0-rc1~268^2~2) the VS generators have
known how to generate per-config sources.  We've now converted most
other code paths to support per-config sources, so drop the check
that disallows it.

This leaves only per-config support for precompiled headers and unity
build transformations, but those are optional features that can be
addressed later.

Fixes: #18233
Issue: #19789
2019-10-17 14:05:39 -04:00
Brad King
5417737fac Merge topic 'graphviz'
553658393c Graphviz: added test suite, fixes, enhancements

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: slodki <slodki_dom@poczta.onet.pl>
Merge-request: !3766
2019-10-17 13:54:26 -04:00
Brad King
d61b8921ac Merge topic 'doc-pch-compile-language'
ac75886525 PCH: Document and test COMPILE_LANGUAGE genex for per-language header

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3925
2019-10-17 13:52:49 -04:00
Brad King
ea048ed66c Merge topic 'export-target-lang-name'
0e436c573c install,export: Do not treat language names as target names

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3927
2019-10-17 13:52:00 -04:00
Brad King
6dedb97420 Merge branch 'pch-makefile-depends' into release-3.16
Merge-request: !3928
2019-10-17 10:41:43 -04:00
Brad King
797689ab35 PCH: Fix Makefile dependencies to rebuild PCH on header changes
Teach the Makefile generator to scan the implicit dependencies of PCH
creation.  When a header named by `target_precompile_headers` changes
the corresponding PCH must be rebuilt and all consumers recompiled.

Fixes: #19830
2019-10-17 10:29:31 -04:00
Brad King
7aab792716 Merge branch 'export-target-lang-name' into release-3.16
Merge-request: !3927
2019-10-17 10:23:36 -04:00
Alexander Boczar
45b4b4b930 VS: Propagate CMAKE_VS_GLOBALS into compiler id projects
Issue: #19708
2019-10-17 10:18:52 -04:00
Alex Turbov
4bedf6c9fa Refactor: Modernize cmVariableWatchCommand a little 2019-10-17 09:38:31 -04:00
Craig Scott
409891baf7 FindOpenMP: Allow try_compile() to find omp.h for AppleClang
Fixes: #18098 #18470 #18520
2019-10-17 18:50:05 +11:00
Brad King
0e436c573c install,export: Do not treat language names as target names
When generating `IMPORTED_LINK_INTERFACE_LANGUAGES`, do not treat the
entries as target names.

Fixes: #19846
2019-10-16 12:48:20 -04:00
Brad King
84e14a52ff Merge branch 'doc-pch-compile-language' into release-3.16
Merge-request: !3925
2019-10-16 10:54:11 -04:00
Brad King
ac75886525 PCH: Document and test COMPILE_LANGUAGE genex for per-language header
Fixes: #19839
2019-10-16 10:32:56 -04:00
Alexander Boczar
548e9051a4 VS: Add support to override VCTargetsPath through toolset
Fixes: #19708
2019-10-15 13:28:45 -04:00
Charly Mourglia
89ff3ee779 VS: Add VS_DOTNET_DOCUMENTATION_FILE property
Add a `VS_DOTNET_DOCUMENTATION_FILE` target property to tell VS
generators to add a `DocumentationFile` setting in `.csproj` files.

Fixes: #19784
2019-10-15 11:44:55 -04:00
Brad King
dc164bccc1 Merge topic 'cmake-initial-cache-relative'
c9d73b26b0 cmake: Fix relative path regression in -C

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3912
2019-10-15 11:14:09 -04:00
Brad King
7716be4561 Merge branch 'cmake-initial-cache-relative' into release-3.16
Merge-request: !3912
2019-10-14 16:18:16 -04:00
Peter Waller
c9d73b26b0 cmake: Fix relative path regression in -C
Since commit 4ca0526f8a (cmake: Pass -S and -B into PreLoad.cmake and -C
scripts, 2019-08-20, v3.16.0-rc1~195^2) the value of `CMAKE_SOURCE_DIR`
is the source directory rather than the current working directory.
This was correct on its own, but the place storing that value is also
used as the base for relative paths specified on the command line.
The latter should of course be relative to the current working
directory.

The fix is to switch to use a full path internally, unless a full path
is already specified.  Add tests for the behaviour of `-C` under these
four circumstances:

    {with -S, without -S} x {full path, relative path}

Fixes: #19827
2019-10-14 16:17:00 -04:00
Craig Scott
25eef45f16 Merge topic 'feature/CMAKE_MESSAGE_CONTEXT'
7cf79f4419 message: Support logging a context with each message
5bf85e2517 message: Add new CMAKE_MESSAGE_LOG_LEVEL variable
aa59badd6f Tests: Message log level tests must fail on unwanted output
7c579f0a03 Help: Move CMAKE_MESSAGE_INDENT variable to correct section
4b021bd3e9 message: Minor refactor to make code less verbose

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3680
2019-10-13 17:08:44 -04:00
Brad King
04ad7b8571 Merge topic 'objc-c++flags'
806e01d638 Objective-C: Do not treat Objective-C files as C++ files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3904
2019-10-12 10:26:13 -04:00
Alex Turbov
7cf79f4419 message: Support logging a context with each message 2019-10-12 18:21:36 +11:00
Alex Turbov
5bf85e2517 message: Add new CMAKE_MESSAGE_LOG_LEVEL variable 2019-10-12 17:01:15 +11:00
Craig Scott
aa59badd6f Tests: Message log level tests must fail on unwanted output
The previous regular expressions were allowing output from
lower log levels. The tests still pass after these changes but will
now catch regressions (previously they would not have).
2019-10-12 17:01:15 +11:00
Brad King
3709389520 Merge branch 'objc-c++flags' into release-3.16
Merge-request: !3904
2019-10-11 09:24:24 -04:00
Brad King
ae24597202 Merge topic 'intel-19-compile-features'
3fb146cb11 Tests: Update CompileFeatures test for Intel 19 with VS 2015
847e8bc98c Intel: Fix default C++ dialect detection on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3900
2019-10-11 08:34:16 -04:00
Cristian Adam
806e01d638 Objective-C: Do not treat Objective-C files as C++ files
When both C and C++ langauges are enabled, the Objective-C files
should be treated as C files and not as C++ files.
2019-10-11 14:01:48 +02:00
Brad King
3fb146cb11 Tests: Update CompileFeatures test for Intel 19 with VS 2015
Blacklist `cxx_relaxed_constexpr` for this case because the compiler
does not advertise the support in this mode but compiles our example.
2019-10-10 13:14:42 -04:00
Brad King
847e8bc98c Intel: Fix default C++ dialect detection on Windows
For the Intel Compiler for Windows we have some subtle preprocessor
checks in compiler feature detection to detect C++11 and C++14 modes.
Use these when detecting the default C++ dialect too.
2019-10-10 13:14:42 -04:00
Brad King
e3b9d125ef Merge topic 'deprecate-policy-old'
d00bb419ca Add deprecation warnings for policies CMP0069 and below

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3893
2019-10-10 09:27:06 -04:00
Brad King
d00bb419ca Add deprecation warnings for policies CMP0069 and below
The OLD behaviors of all policies are deprecated, but only by
documentation.  Add an explicit deprecation diagnostic for policies
introduced in CMake 3.9 and below to encourage projects to port away
from setting policies to OLD.
2019-10-10 09:26:10 -04:00
Craig Scott
7bbddeb78d CLI: Rename --loglevel to --log-level for naming consistency
Other multi-word command line options use hyphens to separate
the words, so the --loglevel option introduced in CMake 3.15 was
inconsistent in this regard. Rename it to --log-level but still support
the original --loglevel name to preserve backward compatibility.
2019-10-10 09:20:50 -04:00