25228 Commits
Author SHA1 Message Date
Brad King 8887ebc69b CMake 3.13.3 2019-01-14 07:27:44 -05:00
Brad King c63a19e920 Merge branch 'cmake-option-parsing' into release-3.13
Merge-request: !2799
2019-01-14 07:24:36 -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
Craig Scott a1adbc7243 cmake: Stop processing if -P option lacks file name
While an error message was being logged, processing was
continuing nonetheless except with the -P argument omitted.
This could have allowed unintended effects if the remaining
arguments formed a valid set of command line options.
2019-01-14 07:13:27 +11:00
Sebastian Holtermann 5ae69f5919 Autogen: Issue a warning when AUTOMOC/UIC/RCC gets disabled.
We used to silently disable AUTOMOC/UIC/RCC when no valid Qt
version was found.  This patch introduces the generation of
a warning message in that case.

Closes #18732.
2019-01-10 16:48:28 +01:00
Brad King 91fa6a472c Merge branch 'cmake-CDU-option-parsing' into release-3.13
Merge-request: !2783
2019-01-10 09:34:14 -05:00
Paul Seyfert 6d53a60f00 cmake: distinguish '-Cpath' from '-C path' in source dir parsing
This results in the correct source directory being picked up in calls
with

    cmake sourcedir -C settings

and in a more appropriate error message when calling

    mkdir build ; cd build ; cmake -C settings

Also fix `-D` and `-U` in the same way.
2019-01-10 21:19:24 +11:00
Brad King d44f81c217 VS: Exclude VS 2019 instances when using VS 2017 generator
Filter instances reported by the VS Installer to consider only VS 2017
instances for the "Visual Studio 15 2017" generator.

Fixes: #18721
2019-01-08 14:10:16 -05:00
Brad King 9bbfbd54ba CMake 3.13.2 2018-12-13 06:44:30 -05:00
Brad King 3b4e86f26d Merge branch 'backport-autogen_revert_implicit_includes' into release-3.13
Merge-request: !2709
2018-12-07 08:04:55 -05:00
Brad King 0becea2d60 Merge branch 'cpack-status-callback' into release-3.13
Merge-request: !2696
2018-12-07 08:04:21 -05:00
Sebastian Holtermann 187481d4d9 Autogen: Revert passing compiler implicit includes to moc
Passing an incomplete list of compiler include directories causes
a regression in the KIO project (and probably others). We need to
disable it until the complete list is available (see #16291).

Fixes: #18669
Issue: #18041
2018-12-07 07:56:46 -05:00
Nils Gladitz 4a3ae1710e CPack/External: Fix status messages of staging scripts
Set progress callback on cmake instance used by CPack.  The progress
callback is used to output STATUS messages which are otherwise missing
when issued from e.g. CPack External staging scripts.

Fixes: #18567
2018-12-07 07:33:30 -05:00
Brad King 7b74213461 CUDA: Fix crash on linking to a CUDA target without CUDA enabled
Do not try to device link or add CUDA runtime libraries if the language
is not enabled.

Fixes: #18673
Issue: #18614
2018-12-05 14:45:19 -05:00
Brad King 6294296906 CMake 3.13.1 2018-11-28 06:49:16 -05:00
Brad King 0f0c8a2c7d Merge branch 'autogen_uic_empty_fix_3_13' into release-3.13
Merge-request: !2667
2018-11-27 08:45:58 -05:00
Sebastian Holtermann b1b5004c1a Autogen: Fix empty uic executable string
In CMake 3.13.0 when a target has ``AUTOUIC`` enabled but doesn't
link against Qt5Widgets, the uic executable string is empty and
an error string "The uic executable \"\" does not exist" is generated.
In CMake 3.12 ``AUTOUIC`` was silently disabled instead.
This patch fixes the regression and restores the behavior of CMake 3.12.

Fixes: #18630
2018-11-27 08:21:40 -05:00
Brad King 2cf836fa5e Merge branch 'vs2015-no-sdk' into release-3.13
Merge-request: !2656
2018-11-26 13:48:22 -05:00
Harry Mallon f54d28a838 VS: Avoid crash with VS 2015 when all SDKs are higher than 10.0.14393.0
Move the filter added by commit v3.13.0-rc1~72^2~2 (VS: Do not select a
Windows SDK too high for current VS version, 2017-08-07, committed
2018-09-17) to before our check that the remaining list is empty.
Otherwise we crash when dereferencing the first entry of an empty
vector.

Also add a comment explaining where 10.0.14393.0 came from.

Fixes: #18633
2018-11-26 13:42:50 -05:00
Brad King ead16adfc8 Fortran: Fix module dependency scanning with upper-case SUBMODULE
The lexical token expression added by commit v3.7.0-rc1~73^2~1 (Fortran:
Add support for submodule syntax in dependency scanning, 2016-09-05)
has a typo and does not match upper-case `B` in `SUBMODULE`.  Fix it.

Fixes: #18595
2018-11-20 14:16:26 -05:00
Brad King 05a2ca7f87 CMake 3.13.0 2018-11-20 09:31:28 -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 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 8d70ed5a10 CMake 3.13.0-rc3 2018-11-07 07:50:43 -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
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 36280e6157 Merge branch 'custom-command-work-dir-genex' into release-3.13
Merge-request: !2559
2018-11-05 07:48:39 -05:00
Brad King 98d59417b0 add_custom_{command,target}: Fix WORKING_DIRECTORY leading genex
Since commit v3.13.0-rc1~39^2 (add_custom_{command,target}:
WORKING_DIRECTORY generator expressions, 2018-09-22) the
`WORKING_DIRECTORY` option accepts generator expressions.
Fix support for the case of a leading generator expression
by deferring conversion to an absolute path until after
evaluation of the generator expression.

Fixes: #18543
2018-11-03 08:39:45 -04:00
Brad King a567f533db Merge branch 'server-file-monitor-check' into release-3.13
Merge-request: !2556
2018-11-01 09:02:41 -04:00
Vladimir Penev eb52529ff4 server: Fix assertion failure on directory paths in file monitor
Fixes: #18532
2018-11-01 07:25:17 -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 f366228c80 Merge branch 'cuda-filter-device-link-libs' into release-3.13
Merge-request: !2536
2018-10-29 12:02:46 -04:00
Robert Maynard 3c31ec7a0a CUDA: Filter out non-static libraries during device linking
Since commit v3.12.0-rc1~278^2 (CUDA: Pass more link libraries to device
linking, 2018-03-27) we consider every link library during device
linking and use `-Xnvlink` to pass those that do not end in `.a`.
However, nvlink breaks on versioned shared library names such as
`.so.1`.  Work around this problem by not passing library paths that do
not end in `.a` or `.lib`.  nvlink would not find device symbols in them
anyway.

Fixes: #18504
2018-10-29 11:57:29 -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 44cc305ac1 CMake 3.13.0-rc2 2018-10-25 07:52:24 -04:00
Brad King 82db7cbed8 Merge branch 'cmake-gui-vs-open-space' into release-3.13
Merge-request: !2524
2018-10-25 07:34:57 -04:00
Brad King e178bd46cb cmake-gui: Fix "Open Project" for VS IDE with space in path
Do not encode the path for a shell until after we check that it exists.

Fixes: #18501
2018-10-25 07:32:26 -04:00
Brad King d81c4db489 Merge branch 'cuda-thread-flags' into release-3.13
Merge-request: !2512
2018-10-24 10:52:46 -04:00
Brad King 5d481919d4 Merge branch 'tar-warnings' into release-3.13
Merge-request: !2519
2018-10-24 10:52:37 -04:00
Brad King 95c8a03f00 cmake: Distinguish '-E tar' warnings from errors copying data
The logic added by commit v3.12.0-rc1~62^2 (cmake: Teach '-E tar' to
report errors copying data, 2018-05-16) incorrectly reports failure
in the case of ARCHIVE_WARN.  Convert this case to a warning.

Fixes: #18496
2018-10-24 10:51:11 -04:00
Brad King cf92fd9ae9 Merge branch 'cuda-filter-device-link-items' into cuda-thread-flags 2018-10-24 10:14:32 -04:00
Robert Maynard e768d96c74 CUDA: Filter out host link flags during device linking
Since commit v3.12.0-rc1~278^2 (CUDA: Pass more link libraries to device
linking, 2018-03-27) we consider every link item during device linking.
However, items that start in `-` may be host-specific link flags that
nvcc will not understand during device linking.  Filter such items using
a white list.

In particular, this allows `-pthread` to be used for host linking while
not polluting the device link line.

Issue: #18008
2018-10-24 09:54:25 -04:00
Brad King f87d5f13c2 Merge branch 'vs-csharp-win32-flags' into release-3.13
Merge-request: !2516
2018-10-23 11:06:52 -04:00
Brad King 35fe47bd5d Merge branch 'vs-csharp-in-custom-target' into release-3.13
Merge-request: !2515
2018-10-23 11:06:44 -04:00
Brad King 8e56e8b283 VS: Fix CSharp support for win32res: and win32icon: flags
Add a missing `:` to these entries in the flag table.  The user
value is always required and must come after the `:`.

Fixes: #18486
2018-10-23 11:03:42 -04:00
Brad King d004d8c59a VS: Fix crash on CSharp sources in a custom target
The target generator does not compute ClOptions for custom targets,
so we should not use them either.

Fixes: #18377, #18485
2018-10-23 10:58:42 -04:00
Brad King de1dec7052 Merge branch 'update-kwsys' into release-3.13
Merge-request: !2506
2018-10-19 10:29:07 -04:00