Commit Graph

1956 Commits

Author SHA1 Message Date
Brad King
c1247d861a Merge topic 'cmake_build_jobs_supports_no_space'
f2fca92686 cmake: --build supports '-jN'
e463133cd2 Tests: Remove unused files from RunCMake.CommandLine test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2819
2019-01-23 08:15:36 -05:00
Craig Scott
68b51fb19a cmake: Convert no source/build dir error to warning
Temporarily restore previous behavior that allowed specifying
no source or build directory to work, even though it was
neither documented nor supported. This commit is expected
to eventually be reverted to restore the fatal error for such
cases.

Relates: #18817
2019-01-22 14:46:03 -05:00
Brad King
fa5bf870df Merge topic 'implicit-includes'
5990ecb741 Compute implicit include directories from compiler output
d751d2d2ed CMakeDetermineCompilerABI: set locale to C for try_compile()
c765ae495a CMakeDetermineCompilerABI: pass verbose flag during compilation
8c5221fb1f try_compile: Preserve special characters in COMPILE_DEFINITIONS
15ad830062 Refactor exclusion of -I/usr/include to avoid per-language values

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2716
2019-01-22 11:37:49 -05:00
Robert Maynard
f2fca92686 cmake: --build supports '-jN' 2019-01-22 08:27:04 -05:00
Brad King
e463133cd2 Tests: Remove unused files from RunCMake.CommandLine test
Drop `-stderr.txt` files for cases that do not exist.
2019-01-22 08:24:23 -05:00
Chuck Cranor
5990ecb741 Compute implicit include directories from compiler output
- CMakeParseImplicitIncludeInfo.cmake: new parser that extracts the
   compiler's include path from verbose output.  If the parser cannot
   parse the output, we fall back to the old behavior.  On osx we skip
   over framework directories (handled elsewhere).

 - CMakeDetermineCompilerABI.cmake:
     - use verbose flag in try_compile for ${src}
     - use new cmake_parse_implicit_include_info() to attempt extract
       implicit include directory path and if successful set
        CMAKE_${LANG}_IMPLICIT_INCLUDE_DIRECTORIES

 - CMakeCCompiler.cmake.in and CMakeCXXCompiler.cmake.in - preserve
   CMAKE_${LANG}_IMPLICIT_INCLUDE_DIRECTORIES value between runs in
   the same way CMAKE_${LANG}_IMPLICIT_LINK_DIRECTORIES is preserved

 - Tests/RunCMake/ParseImplicitIncludeInfo: tests for parse
   based on the older Tests/CMakeTests/ImplicitLinkInfoTest.cmake.in.
   The test runs a set of verbose compiler outputs collected from
   various machines through the parser and checks the results.  New
   compiler files can be added by dropping input/output files in the
   ParseImplicitIncludeInfo/data subdirectory and then adding the new set
   of files to the ${targets} list in ParseImplicitIncludeInfo.cmake.
   There is a helper CMakeLists.txt in ParseImplicitIncludeInfo/data
   that can help with the generation of test input files.
   NOTE: the standard cmake pre-commit hook rejects verbose compiler
   output with trailing spaces... you have to manually edit them out.
   This shouldn't impact the test.

Note that both the parser and the test code can use CMAKE_${LANG}_COMPILER_*
variables such as ${CMAKE_CXX_COMPILER_ID} to decide how to parse
verbose compiler output.  For the test code, this requires us to
save the variables values in the test input files.

Fixes: #16291
2019-01-21 11:14:08 -05:00
Kyle Edwards
ab3b549ee0 CROSSCOMPILING_EMULATOR: Fix test generation for empty value
If CROSSCOMPILING_EMULATOR was set to an empty string, and a test
was generated with the executable as the command, CMake would segfault
upon trying to generate the test file. Fix this.

Fixes: #18819
2019-01-21 09:57:25 -05:00
Brad King
177b5fb61b Merge topic 'fortran-compiler-id'
a080914274 Fortran: Add compiler ID/Version generator expressions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2804
2019-01-21 07:56:59 -05:00
Brad King
eadaf0c8c3 Merge topic 'cmake-role-fix'
264bdac185 CMAKE_ROLE: Fix value for ctest --build-and-test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2820
2019-01-21 07:54:06 -05:00
Brad King
7e5f9b192e Merge topic 'ctest-json-polish'
cae9d2a61a CTest: Teach --show-only= to reject unknown values
7370b02c36 CTest: Teach --show-only=json-v1 to filter out not-available tests
62fec84ad7 Tests: Fix RunCMake.CTestCommandLine case when no python is found
75a7a23746 Tests: Rename RunCMake.CTestCommandLine show-only test cases
fecbc87608 Tests: Fix RunCMake.CTestCommandLine to actually check json-v1

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2812
2019-01-21 07:51:08 -05:00
Brad King
d704cc3407 Merge topic 'command_file_link'
0f08ed8936 cmSystemTools: Silence CreateLink and CreateSymlink errors
593d986470 Tests: Avoid cross-device links in CREATE_LINK test
9a3d85cfc5 Tests: Skip symlink tests on Windows
e68ea269d7 Tests: CREATE_LINK subcommand negative test case
45aa9c65a1 Tests: file CREATE_LINK subcommand test cases
8bb7562f1a Help: Add documentation for file(CREATE_LINK) subcommand
81650e488c cmFileCommand: Add CREATE_LINK subcommand

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2759
2019-01-21 07:48:26 -05:00
Brad King
d1aa2e1109 Merge topic 'find-package-resolve-symlinks'
b773e58099 find_package: add test coverage for CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS
a5e948a36f find_package: optionally resolve symlinks when discovering packages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2798
2019-01-21 07:47:29 -05:00
Brad King
fefae527c8 Merge topic 'submit-url'
2915a75615 CTest: Add documentation and release notes for SubmitURL
d6475daa79 Modules/CTest: Set SubmitURL
938f06fda6 ctest_submit: Add parameter SUBMIT_URL
65e725c957 CTest: Add option SubmitURL
65f1fc9d63 CTest: Add function GetSubmitURL
2bedd5fb7c ctest_submit: Remove submit method from log output

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2719
2019-01-21 07:46:20 -05:00
Kyle Edwards
264bdac185 CMAKE_ROLE: Fix value for ctest --build-and-test
--build-and-test builds a CMake project, so CMAKE_ROLE should be
PROJECT. Fix this and add a test case.
2019-01-18 10:15:25 -05:00
Andrew Paprocki
a080914274 Fortran: Add compiler ID/Version generator expressions
Adds `Fortran_COMPILER_ID` and `Fortran_COMPILER_VERSION` generator
expression support to match equivalent `C_COMPILER_ID`,
`CXX_COMPILER_ID`, `C_COMPILER_VERSION`, and `CXX_COMPILER_VERSION`
support.

This is very helpful in the case where the C/C++ compiler suite is a
different type of compiler from the platform Fortran compiler and
projects use generator expressions to assign compiler flags and
definitions.  (e.g. `GNU` C/C++ and `SunPro` Fortran on Linux)
2019-01-18 08:56:13 -05:00
Brad King
cae9d2a61a CTest: Teach --show-only= to reject unknown values 2019-01-17 12:01:07 -05:00
Brad King
7370b02c36 CTest: Teach --show-only=json-v1 to filter out not-available tests
Avoid exposing the internal special value that we use to track tests not
available in the tested configuration.  This also prevents clients from
having to do the filtering themselves.
2019-01-17 12:01:07 -05:00
Brad King
62fec84ad7 Tests: Fix RunCMake.CTestCommandLine case when no python is found
Do not try to run the python checks if the python executable is
not available.
2019-01-17 12:01:07 -05:00
Brad King
68e20f674a Merge topic 'cmake_role-global-property'
4568d046c4 Properties: Add CMAKE_ROLE global property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2805
2019-01-17 11:43:09 -05:00
Brad King
bd3685b6cf Merge topic 'vs-debug-utility-targets'
22b43b0009 VS: Add support for VS_DEBUGGER_* properties on custom targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2794
2019-01-17 11:07:11 -05:00
Brad King
9e3e93fc6f Merge topic 'fix_csharp_defines'
a541d113e6 VS: Honor target_compile_definitions for C# projects

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2809
2019-01-17 11:06:04 -05:00
Brad King
75a7a23746 Tests: Rename RunCMake.CTestCommandLine show-only test cases
The current name was chosen from an earlier design iteration of the
command-line option name.  Rename the case to match the final name.
2019-01-17 10:57:51 -05:00
Kyle Edwards
4568d046c4 Properties: Add CMAKE_ROLE global property
This property allows scripts to determine whether they're in project
mode, script mode, find-package mode, CTest, or CPack.
2019-01-17 09:44:29 -05:00
Brad King
fecbc87608 Tests: Fix RunCMake.CTestCommandLine to actually check json-v1
Add a file missing from commit 67209a9291 (Tests: Add cases for ctest
--show-only=json-v1, 2018-11-01) to actually hook up the content check.
2019-01-16 14:10:15 -05:00
Regina Pfeifer
2bedd5fb7c ctest_submit: Remove submit method from log output 2019-01-16 10:34:08 -05:00
Nils Gladitz
22b43b0009 VS: Add support for VS_DEBUGGER_* properties on custom targets
Visual studio itself supports the corresponding `LocalDebugger*`
properties on utility targets; support generating them from CMake as
well.
2019-01-16 10:21:01 -05:00
Tushar Maheshwari
593d986470 Tests: Avoid cross-device links in CREATE_LINK test
Add a test for COPY_ON_ERROR to cover that scenario.
2019-01-16 10:03:35 -05:00
Tushar Maheshwari
9a3d85cfc5 Tests: Skip symlink tests on Windows 2019-01-16 10:03:35 -05:00
Tushar Maheshwari
e68ea269d7 Tests: CREATE_LINK subcommand negative test case 2019-01-16 10:03:35 -05:00
Tushar Maheshwari
45aa9c65a1 Tests: file CREATE_LINK subcommand test cases 2019-01-16 10:03:35 -05:00
David Aguilar
b773e58099 find_package: add test coverage for CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS 2019-01-16 09:59:46 -05:00
Brad King
e44cc45530 Merge topic 'autogen_adaptive_warning'
5fe18eee13 Autogen: Adaptive missing Qt warning
f2f1661334 Autogen: Add and use QtAutoGen::Tools method
b2343ff086 Autogen: Fix rcc validity check

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2806
2019-01-16 09:51:33 -05:00
Wil Stark
a541d113e6 VS: Honor target_compile_definitions for C# projects
Fixes: #18698
2019-01-15 21:29:59 -08:00
Brad King
da566d4de8 Merge topic 'fetchcontent-uses-terminal'
2119c33b7e FetchContent: Give access to the terminal for download and update

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Michael Hirsch, Ph.D. <michael@scivision.co>
Merge-request: !2800
2019-01-15 13:26:02 -05:00
Brad King
41b0c0dc73 Merge topic 'vs2019'
57e48f16f2 VS: Add Visual Studio 16 2019 generator
bdef729646 VS: Parameterize VS 2017 generator to support future versions
68d316e0cf VS: Rename VS 2017 generator sources to be version-independent
d8ed309d05 VS: Parameterize cmVSSetupAPIHelper instances with VS version

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2789
2019-01-15 13:23:38 -05:00
Brad King
d7835e4d0e Merge topic 'fix-source-group-CMakeLists.txt'
77303314dc Restore support for a custom source group for CMakeLists.txt

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2803
2019-01-15 13:20:01 -05:00
Brad King
4cf301ca77 Merge topic 'vs10_cs_cf_support'
5b1364a2e3 cmVisualStudio10TargetGenerator: Fix .NET Compact Framework projects.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2715
2019-01-15 13:16:46 -05:00
Brad King
b2084a330d Merge topic 'deprecate-policy-old'
6845e2559d Add deprecation warnings for policies CMP0065 and below

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2793
2019-01-15 13:12:08 -05:00
Sebastian Holtermann
5fe18eee13 Autogen: Adaptive missing Qt warning
This makes the warning message for a missing Qt use
the requested Qt version in the message text.
2019-01-15 10:15:03 +01:00
Sebastian Holtermann
f2f1661334 Autogen: Add and use QtAutoGen::Tools method 2019-01-15 09:52:35 +01:00
Brad King
77303314dc Restore support for a custom source group for CMakeLists.txt
Since commit v3.11.0-rc1~467^2 (VS,Xcode: Add CMakeLists.txt sources
without mutating targets, 2017-10-18) we do not add `CMakeLists.txt` to
target sources but instead generate references to them directly.  This
accidentally dropped generation of the `.vcxproj.filters` entry for a
source group in which `CMakeLists.txt` is the only member.

Fixes: #18795
2019-01-14 08:43:30 -05:00
Brad King
97d2109294 Tests: Make RunCMake.FindBoost robust to Boost_ROOT in environment
Remove the environment variable within the test to avoid CMP0074
behavior.
2019-01-14 07:44:32 -05:00
Craig Scott
2119c33b7e FetchContent: Give access to the terminal for download and update
A main scenario where this is needed is when a git operation
needs the password to a private key and asks for it on the
console. Without this change, such operations can appear to
hang indefinitely with no prompt if QUIET is in effect (which it
is by default).

Another scenario this addresses is when progress of a
download or update should be shown. Without this change,
all such progress is buffered with some generators and will
only be shown at the end, which defeats the purpose of logging
any progress to begin with.

Relates: #18238
2019-01-14 23:32:18 +11:00
Brad King
1f411b0cfa Merge topic 'cmake-option-parsing'
27eb7c5bdb cmake: Ensure source and binary dirs are set
a1adbc7243 cmake: Stop processing if -P option lacks file name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2799
2019-01-14 07:25:46 -05:00
Brad King
6a23e16ec2 Merge topic 'autogen_noqt_warning'
0377fe1e2b Merge branch 'backport-autogen_noqt_warning' into autogen_noqt_warning
dd39da5518 Tests: Add case for warning when AUTOMOC/UIC/RCC gets disabled
f44a0414ae Autogen: Issue a warning when AUTOMOC/UIC/RCC gets disabled.
5ae69f5919 Autogen: Issue a warning when AUTOMOC/UIC/RCC gets disabled.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2787
2019-01-14 06:51:42 -05:00
Craig Scott
27eb7c5bdb cmake: Ensure source and binary dirs are set
If only the source dir is provided, the binary dir is assumed
to be the working directory. If only the binary dir is provided
and it doesn't yet have a CMakeCache.txt to provide the
source dir, then the source dir is assumed to be the working
directory. This logic was not previously being handled
correctly when -S and/or -B options were involved.
Furthermore, when both were missing, no suitable error
message was provided and an empty string was used for
the build directory.

Fixes: #18707
2019-01-14 07:13:28 +11:00
Brad King
6845e2559d Add deprecation warnings for policies CMP0065 and below
The OLD behaviors of all policies are deprecated, but only by
documentation.  Add an explicit deprecation diagnostic for some policies
to encourage projects to port away from setting policies to OLD.
2019-01-11 14:47:20 -05:00
Wil Stark
5b1364a2e3 cmVisualStudio10TargetGenerator: Fix .NET Compact Framework projects.
Fixes: #18672
2019-01-11 09:08:55 -08:00
Brad King
57e48f16f2 VS: Add Visual Studio 16 2019 generator
Add this generator *without* support for specifying the target
architecture in the generator name.  cmake-gui will be taught
to provide a field for this, and command-line builds can use -A.

Also, teach this generator to select a default target architecture
based on the host architecture.

Fixes: #18689
Inspired-by: Egor Pugin <egor.pugin@gmail.com>
2019-01-11 11:04:51 -05:00
Brad King
73aca0572b Merge topic 'vs_ce_support'
5e4887e673 VS: Honor WinCE deployment properties in VS 2010+
a4332cac4b Tests: Detect VS and SDK availability early

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2680
2019-01-11 10:06:58 -05:00