Commit Graph

1846 Commits

Author SHA1 Message Date
Brad King
5daf7d92f8 Merge topic 'file-size'
12b471e828 file: add SIZE option

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2639
2018-11-28 09:05:16 -05:00
Brad King
bae71966fb Merge topic 'ctest-updates'
d9195ab081 Tests: Teach run_ctest to handle removal of CTestConfig.cmake
1ca53f5ef1 Remove unnecessary CTEST_PROJECT_NAME variables
15ac4aae0e Remove warning when no CTestConfig.cmake file exists
3125c47d27 ctest_build: Do not require unnecessary [CTEST_]PROJECT_NAME value
36bbd07a76 CDashUpload: Use the query part of the submit url as field
e1dfe8cee6 CTest: Don't require 'submit.php?' in submit location

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2640
2018-11-27 08:48:49 -05:00
Brad King
4aad340ec4 Merge topic 'FindBoost-no-cxx'
0369362132 FindBoost: Restore finding without CXX language enabled

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2663
2018-11-27 08:44:11 -05:00
Wouter Klouwen
12b471e828 file: add SIZE option
This commit adds the SIZE option to file(). It returns the file size of
the given path if it exists and produces an error if not.
2018-11-27 08:50:36 +00:00
Brad King
0369362132 FindBoost: Restore finding without CXX language enabled
Since commit v3.13.0~7^2 (FindBoost: Improve compiler prefix
detection for GCC 5+ and clang 4+, 2018-11-07) we run the internal
`_Boost_COMPILER_DUMPVERSION` macro on all UNIX platforms.  Teach
the macro to tolerate missing `CMAKE_CXX_COMPILER_VERSION`, which
occurs when the CXX language is not enabled.

Fixes: #18624
2018-11-26 13:13:58 -05:00
Brad King
d9195ab081 Tests: Teach run_ctest to handle removal of CTestConfig.cmake
When running tests in a non-fresh build tree there may be files left
from previous test runs.  In the case that a test removes
`CTestConfig.cmake.in`, we must remove any `CTestConfig.cmake` that
may have been left behind.
2018-11-26 08:05:13 -05:00
Regina Pfeifer
1ca53f5ef1 Remove unnecessary CTEST_PROJECT_NAME variables 2018-11-20 21:43:27 +01:00
Kyle Edwards
b5f8113ca7 Genex: Add policy to handle empty list items in $<IN_LIST:...>
The old behavior of $<IN_LIST:...> is inconsistent with that of
if(IN_LIST), in that it does not find an empty search item even if
the list contains empty items. This change adds a new policy to
correctly handle empty items and make the behavior more consistent
with if(IN_LIST).

Fixes: #18556
2018-11-19 17:02:06 -05:00
Brad King
e593161bd5 Merge branch 'backport-configure_file-canonical-deps' into release-3.13
Merge-request: !2635
2018-11-19 10:14:26 -05:00
Frank Benkstein
57701227d6 configure_file: canonicalize input and output path in dependencies
Represent the input file path internally in canonical form.  Otherwise
multiple `configure_file` calls that share the same input file but specify
it relative to different directories (e.g. via `../`) result in multiple
copies of the dependency on the rule to re-run CMake.  This causes the
Ninja generator to emit duplicate phony build statements for these
dependencies, which generates an error with `-w dupbuild=err`, which
will be default in Ninja 1.9.

Also canonicalize the output path for consistency.

Add a test case.

Fixes: #18584
2018-11-19 10:11:12 -05:00
Brad King
95a735116f Merge topic 'ctest-stdin'
86e8315482 CTest: Restore inheritance of stdin by test processes
bdec3bd896 Tests: Teach RunCMake infrastructure to optionally provide stdin

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2618
2018-11-19 09:52:07 -05:00
Brad King
1763f04281 Merge topic 'test-WriteBasicConfigVersionFile'
f3a381115f Tests: Simplify RunCMake.WriteBasicConfigVersionFile
0dbcc1afbf Tests: Factor out RunCMake.WriteBasicConfigVersionFile test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2612
2018-11-15 10:41:07 -05:00
Brad King
20aab1a4e7 Merge topic 'configure_file-canonical-deps'
6199637e95 configure_file: canonicalize input and output path in dependencies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2586
2018-11-15 10:40:33 -05:00
Brad King
59fc717c25 Merge topic 'deprecate-findqt'
0f5c1b404b find_package(): Add policy to remove the FindQt module

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: noo mook <noomook2519@gmail.com>
Merge-request: !2554
2018-11-15 10:39:55 -05:00
Brad King
86e8315482 CTest: Restore inheritance of stdin by test processes
Since commit v3.11.0-rc1~117^2 (CTest: Re-implement test process
handling using libuv, 2017-12-10) we do not give the child test
processes any stdin.  Prior to that change we let the child test
processes inherit stdin from ctest itself.  Tests that run serially
might be able to use the real stdin meaningfully, so restore that
behavior and add a test case.

Fixes: #18591
2018-11-15 08:08:56 -05:00
Brad King
bdec3bd896 Tests: Teach RunCMake infrastructure to optionally provide stdin 2018-11-15 08:08:56 -05:00
Kyle Edwards
0f5c1b404b find_package(): Add policy to remove the FindQt module
Removing FindQt.cmake gives Qt upstream a path forward to export its
own QtConfig.cmake files which can be found by find_package()
without having to explicitly specify CONFIG. Projects that still
want to use Qt3/4 can call find_package(Qt[34]), include(FindQt),
or add FindQt.cmake to their CMAKE_MODULE_PATH.
2018-11-14 15:05:06 -05:00
Brad King
ca355d92d8 Tests: Add option for custom RunCMake.XcodeProject timeout
The test has many cases and can take a long time on busy machines.
2018-11-14 11:50:36 -05:00
Brad King
f3a381115f Tests: Simplify RunCMake.WriteBasicConfigVersionFile 2018-11-14 10:46:39 -05:00
Brad King
0dbcc1afbf Tests: Factor out RunCMake.WriteBasicConfigVersionFile test
The `WriteBasicConfigVersionFile` section of the `FindPackageTest`
is independent of the rest.
2018-11-14 10:46:08 -05:00
Brad King
117272412e Merge topic 'GNUInstallDirs-FreeBSD-info'
f835f189ae GNUInstallDirs: Update FreeBSD "info" destination to share/info
4c0d97dd98 GNUInstallDirs: Split "info" and "man" default logic
1b8f0ca515 Tests: Split GNUInstallDirs expectations for FreeBSD

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Rolf Eike Beer <eike@sf-mail.de>
Merge-request: !2588
2018-11-14 08:59:19 -05:00
Frank Benkstein
6199637e95 configure_file: canonicalize input and output path in dependencies
Represent the input file path internally in canonical form.  Otherwise
multiple `configure_file` calls that share the same input file but specify
it relative to different directories (e.g. via `../`) result in multiple
copies of the dependency on the rule to re-run CMake.  This causes the
Ninja generator to emit duplicate phony build statements for these
dependencies, which generates an error with `-w dupbuild=err`, which
will be default in Ninja 1.9.

Also canonicalize the output path for consistency.

Add a test case.

Fixes: #18584
2018-11-13 15:01:17 -05:00
Tobias C. Berner
f835f189ae GNUInstallDirs: Update FreeBSD "info" destination to share/info
FreeBSD ports commit r484628 (Install texinfo files (GNU info) into
${PREFIX}/share/info, 2018-11-10) changed the "info" destination
from "info" to "share/info".  The commit included a patch to their
distribution of CMake to fix the `GNUInstallDirs` module too.
Apply a similar logic change to our upstream version of the module.

We already made a similar change for GNU/kFreeBSD in commit
v3.13.0-rc2~8^2 (GNUInstallDirs: Don't use BSD info and man paths on
GNU/kFreeBSD, 2018-10-21).

Fixes: #18585
2018-11-13 13:35:50 -05:00
Brad King
1b8f0ca515 Tests: Split GNUInstallDirs expectations for FreeBSD 2018-11-13 13:35:19 -05:00
Craig Scott
ddb967cca1 Merge topic 'pie-link-options'
c4b4d8b3a6 POSITION_INDEPENDENT_CODE: Manage link flags for executables
724a0346f7 POSITION_INDEPENDENT_CODE: Fix erroneous '-fPIE' flag for Sun Studio
023188ffb4 INTERFACE_POSITION_INDEPENDENT_CODE: add generator expressions support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2465
2018-11-12 15:43:07 -05:00
Marc Chevrier
c4b4d8b3a6 POSITION_INDEPENDENT_CODE: Manage link flags for executables
Fixes: #14983, #16561
2018-11-11 17:34:09 +01:00
Robert Maynard
eba7273c20 cpack: Better error message when generator doesn't exist.
Currently the CPack error message when passed an invalid generator
name  reads like the generator failed to work, rather than the
name was invalid.
2018-11-08 09:32:18 -05:00
Marc Chevrier
023188ffb4 INTERFACE_POSITION_INDEPENDENT_CODE: add generator expressions support
Fixes: #16532
2018-11-08 14:58:57 +01:00
Kyle Edwards
9fc20a4f3e install: Add sane set of defaults for DESTINATION and file type parameters
If the user does not specify a DESTINATION for a target type, the
install() command checks to see if the appropriate variable from
GNUInstallDirs is set. If it is not, then it uses an appropriate
hard-coded guess.

In addition, for FILES and DIRECTORY, the user can specify a file
type instead of a DESTINATION, and the command will use the
appropriate variable from GNUInstallDirs, or a hard-coded guess if
it is not set.
2018-11-07 14:08:48 -05:00
Brad King
cf78a7df95 Merge topic 'fix-double-warn-uninitialized-in-script-mode'
53a5aec899 CMP0053: Fix double warning on uninitialized variables in -P mode
f92f93467e cmMakefile: Rename SuppressWatches to SuppressSideEffects

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2565
2018-11-07 07:28:02 -05:00
Brad King
1674a5b0a4 Merge topic 'rename-cpack-ext-generator'
20d5e77a27 CPack: Rename Ext generator to External

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2566
2018-11-06 11:30:27 -05:00
Brad King
47255060e7 Merge branch 'rename-cpack-ext-generator' into release-3.13
Merge-request: !2566
2018-11-06 11:27:41 -05:00
R2RT
53a5aec899 CMP0053: Fix double warning on uninitialized variables in -P mode
When `CMP0053` is not set to OLD or NEW then we compute both variants
in case we need to warn about a behavior change.  Do not allow both
code paths to produce an uninitialized variable warning.

Fixes: #18552
2018-11-05 08:31:09 -05:00
Craig Scott
20d5e77a27 CPack: Rename Ext generator to External
Ext and External were used inconsistently in the code and the
docs. This change converts all uses of Ext to External, including
within variable names used by the generator.
2018-11-05 07:56:03 -05:00
Brad King
9578c3f0d1 Merge topic 'check-keywords-only-if-used'
4babc9058a cmTargetPropCommandBase: check keywords after parsing
45a49ae58a cmTargetPropCommandBase: simplify code path
9f64974f5e cmTargetPropCommandBase: skip property setting if there's nothing to add
4201a11c2b Tests: add tests for empty-value keyword arguments in target_*

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2514
2018-11-02 07:55:14 -04:00
Brad King
d955b4f753 Merge topic 'fix-custom-target-with-csharp'
9040df31e2 Merge branch 'backport-fix-custom-target-with-csharp'
1acd1c2b50 CSharp: Fix regression in VS project type selection for custom target
a56edad6d6 CSharp: Fix regression in VS project type selection for custom target

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2549
2018-11-01 07:36:39 -04:00
Brad King
3065a8a793 Merge branch 'fix-custom-target-with-csharp' into release-3.13
Merge-request: !2549
2018-10-31 09:36:38 -04:00
Brad King
a56edad6d6 CSharp: Fix regression in VS project type selection for custom target
A target created by `add_custom_target` should always be a `.vcxproj`
file even if it has `.cs` sources involved in custom commands and such.
The latter case was broken by refactoring in commit v3.12.0-rc1~160^2~7
(remove TargetIsCSharpOnly() and use methods from cmGeneratorTarget,
2018-03-19).  The reason is that the `HasLanguage` method added by
commit v3.12.0-rc1~239^2~6 (cmGeneratorTarget: add HasLanguage() as
wrapper for GetLanguages(), 2018-03-19) does not check the target type
and so is not a suitable check for deciding the project file extension.

The `HasLanguage` method was an attempt at an abstraction that turns
out not to work very well.  Replace it with a dedicated `IsCSharpOnly`
method that considers the target type, sources, and non-transitive
`LINKER_LANGUAGE`.

Fixes: #18515
2018-10-31 09:13:19 -04:00
Brad King
87dfd53b27 Merge topic 'set_directory_properties-script-mode'
50572d638b set_directory_properties: Restore in script mode

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2544
2018-10-30 11:01:36 -04:00
Brad King
44cef5fd92 Merge branch 'set_directory_properties-script-mode' into release-3.13
Merge-request: !2544
2018-10-29 11:45:49 -04:00
Brad King
50572d638b set_directory_properties: Restore in script mode
Since commit v3.10.0-rc1~391^2~3 (Add directory property 'LABELS' and
CMAKE_DIRECTORY_LABELS variable, 2017-06-23) this command was
accidentally not allowed in script mode.  It was dropped because
`ctest -S` mode needs to start with CMake's normal script mode and
then replace the `set_directory_properties` implementation.  Restore
the normal `set_directory_properties` in script mode and then add
special logic to replace it in ctest.  Also add a test case.

Fixes: #18523
2018-10-29 11:37:32 -04:00
Brad King
4eb77958d2 Merge topic 'minusCparse'
379e5f93a9 Tests: Add cases for -{C,D,U} without a source tree
5873815fef cmake: distinguish '-Cpath' from '-C path' in source dir parsing

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2517
2018-10-29 09:29:34 -04:00
Ben Boeckel
4babc9058a cmTargetPropCommandBase: check keywords after parsing
The following was disallowed:

   add_library(iface INTERFACE)
   target_link_libraries(iface PUBLIC)

just due to the mention of the `PUBLIC` keyword. Instead, only error if
there are actually `PUBLIC` dependencies specified (and analogously for
other restrictions).

Update tests to expect this new behavior.
2018-10-26 12:09:41 -04:00
Ben Boeckel
4201a11c2b Tests: add tests for empty-value keyword arguments in target_*
Not all of these commands accept non-compilable (i.e., IMPORTED)
targets, so those calls are currently just commented out. If they ever
do start to accept them, the tests should be enabled.
2018-10-26 12:08:05 -04:00
Brad King
379e5f93a9 Tests: Add cases for -{C,D,U} without a source tree 2018-10-26 10:56:46 -04:00
Peter Wu
6114d85a7d RPATH: Add option for using $ORIGIN in build tree
This makes binaries independent of the build directory by not embedding
the build directory via RPATH.  The tests are partially based on the
existing RuntimePath test, but with the check moved into a POST_BUILD
command such that it can be skipped when the platform lacks support.

Fixes: #18413
2018-10-26 09:25:51 -04:00
Brad King
d049201fac Merge topic 'GNUInstallDirs-kfreebsd-man'
b2d7ab8bd1 GNUInstallDirs: Don't use BSD info and man paths on GNU/kFreeBSD

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2511
2018-10-23 10:21:47 -04:00
Brad King
718033b97d Merge branch 'GNUInstallDirs-kfreebsd-man' into release-3.13
Merge-request: !2511
2018-10-22 12:59:23 -04:00
James Clarke
b2d7ab8bd1 GNUInstallDirs: Don't use BSD info and man paths on GNU/kFreeBSD 2018-10-22 12:58:54 -04:00
Kyle Edwards
31b6825bd2 Merge branch 'master' into deployqt4-cmp0080-fix 2018-10-19 10:00:29 -04:00