Commit Graph

45020 Commits

Author SHA1 Message Date
Sebastian Holtermann 77983c8147 Autogen: Add IsHeader flag to SourceFileT class 2019-09-16 18:18:48 +02:00
Sebastian Holtermann f9e5441eb4 Autogen: Abbreviate file paths in messages
This introduces the `cmQtAutoGenerator::MessagePath` method, that abbreviates
paths by placing a
 - "SRC:" prefix in place of the project source directory
 - "BIN:" prefix in place of the project binary directory

The method is used in `AUTO{MOC,UIC,RCC}` when paths are displayed in
messages.  This makes the messages generated by `AUTO{MOC,UIC,RCC}` shorter
and improves their readability.
2019-09-16 18:18:48 +02:00
Sebastian Holtermann 51676cf655 Autogen: Split JobEvalCacheT job into separate moc and uic jobs
This splits the `JobEvalCacheT` job into separate `JobEvalCacheMocT` and
`JobEvalCacheUicT` classes, that run concurrently.
The `JobEvalCache*T::FindIncluded*` methods are overhauled to store probed
directoriy names only if probing fails.  Warning messages are refactored
to show the file name and the probed directories instead of all probed file
paths.  This is easier to read.
2019-09-16 18:18:48 +02:00
Sebastian Holtermann 1a3f185c1a Autogen: Split JobProbeDepsT job into separate moc and uic jobs
By splitting `JobProbeDepsT` into two independent `JobProbeDepsMocT`,
`JobProbeDepsUicT`, the moc and uic job generation will happen concurrently.
This should improve the execution speed, when both AUTOMOC and AUTOUIC are
enabled.

Parent directory names for moc and uic output files are are collected in
a `std::unordered_set<std::string>` and get created in a batch.
Beforehand we tried to create the parent directory for each output file.
This led to duplications of `MakeDirectory` calls when there were multiple
output files in the same directory (which is the case usually).
2019-09-16 18:18:48 +02:00
Sebastian Holtermann 726ea1d151 Autogen: Rename job classes 2019-09-16 18:18:48 +02:00
Sebastian Holtermann 05126d23f6 Autogen: Remove CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE sort duplication
This removes code that sorts include directories for `AUTOMOC` according to
`CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE`.  This is possible because the
included directories passed to `AUTOMOC` are already sorted, also with
respect to `CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE`.
2019-09-16 18:18:48 +02:00
Sebastian Holtermann f54c5ee521 Autogen: Use CollapseFullPath instead of RealPath to support symbolic links 2019-09-16 18:18:48 +02:00
Sebastian Holtermann 65c49e0e26 Autogen: Sanitize include and search directories 2019-09-16 18:18:48 +02:00
Sebastian Holtermann dad1a6b3fb Autogen: Modernize by using an unnamed namespace instead of static functions 2019-09-16 18:18:48 +02:00
Sebastian Holtermann 8209691146 Autogen: Compute and store generator pointers once in initializer constructor 2019-09-16 18:18:44 +02:00
Brad King 1ac4e0ef1b Merge topic 'tidy-deprecated-headers'
f30523d090 clang-tidy: modernize-deprecated-headers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3792
2019-09-16 10:25:53 -04:00
Brad King 7c47894b45 Merge topic 'prepare-deferred-custom-command-creation'
5d28e361b7 add_custom_command: Move append functionality into class cmMakefile
4fb29850ad add_custom_command: Refactor setting implicit depends

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3810
2019-09-16 10:18:51 -04:00
Brad King 1df2f8803b Merge topic 'add_custom_command-genex-slash'
c16641607f add_custom_command: Delay slash conversion until after genex evaluation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3791
2019-09-16 10:17:22 -04:00
Brad King 3358871483 Merge topic 'remove-unused-class'
7bf8eb7877 Remove unused cmInstallExportAndroidMKGenerator

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3812
2019-09-16 10:15:37 -04:00
Regina Pfeifer f30523d090 clang-tidy: modernize-deprecated-headers 2019-09-16 10:11:13 -04:00
Kitware Robot bfa2eaa617 CMake Nightly Date Stamp 2019-09-16 00:01:06 -04:00
Kitware Robot c6ed044319 CMake Nightly Date Stamp 2019-09-15 00:01:05 -04:00
Kitware Robot 80329771fe CMake Nightly Date Stamp 2019-09-14 00:01:05 -04:00
Tushar Maheshwari 7bf8eb7877 Remove unused cmInstallExportAndroidMKGenerator
This class was added by commit 42ce9f1e71 (Add support for creating
prebuilt Android.mk files, 2016-07-12, v3.7.0-rc1~126^2) but not used.
2019-09-13 13:24:45 -04:00
Daniel Eiband 5d28e361b7 add_custom_command: Move append functionality into class cmMakefile 2019-09-13 11:00:21 -04:00
Sebastian Lipponer c16641607f add_custom_command: Delay slash conversion until after genex evaluation
Generator expressions may contain or produce backslashes.

Fixes: #19553
2019-09-13 10:56:26 -04:00
Brad King 19bcdca93c Merge topic 'target-level-dependencies-via-byproducts'
482d858500 Depend: Add test for target-level dependencies via byproducts
f6574c9a81 Depend: Hook up automatic target-level dependencies via byproducts
2edb0b71ed cmMakefile: Add lookup from source name to targets via byproducts
62d5932389 Refatoring: Extract AnyOutputMatches utility

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3806
2019-09-13 09:56:20 -04:00
Brad King 0b8c0b26ce Merge topic 'cpack-wix-start-menu'
d69457077d CPackWIX: Allow omitting program menu folder and uninstall shortcut

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3802
2019-09-13 09:53:41 -04:00
Brad King bacb50afa9 Merge topic 'free-free-set-them-free'
a81e9a0ced cmSubdirCommand: Port away from cmCommand
573cd4e4b4 cmSetTestsPropertiesCommand: Port away from cmCommand
95f23ea5d5 cmSetSourceFilesPropertiesCommand: Port away from cmCommand
706400d417 cmRemoveDefinitionsCommand: Port away from cmCommand
7f86990262 cmQTWrapUICommand: Port away from cmCommand
56bfb8de5d cmQTWrapCPPCommand: Port away from cmCommand
83b3f76a3b cmLinkLibrariesCommand: Port away from cmCommand
b85407ae76 cmInstallTargetsCommand: Port away from cmCommand
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3807
2019-09-13 09:52:34 -04:00
Kitware Robot 729c928c7b CMake Nightly Date Stamp 2019-09-13 00:01:11 -04:00
Daniel Eiband 4fb29850ad add_custom_command: Refactor setting implicit depends
Implicit dependencies are now passed as argument to AddCustomCommandToOutput.
This is necessary to be able to delay custom command creation.
2019-09-12 23:00:36 +02:00
Regina Pfeifer a81e9a0ced cmSubdirCommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer 573cd4e4b4 cmSetTestsPropertiesCommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer 95f23ea5d5 cmSetSourceFilesPropertiesCommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer 706400d417 cmRemoveDefinitionsCommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer 7f86990262 cmQTWrapUICommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer 56bfb8de5d cmQTWrapCPPCommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer 83b3f76a3b cmLinkLibrariesCommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer b85407ae76 cmInstallTargetsCommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer d55319c01d cmInstallProgramsCommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer fb5affe085 cmInstallFilesCommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer 242d876d7b cmIncludeRegularExpressionCommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer 06a2e764f0 cmIncludeExternalMSProjectCommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer b46970cfe9 cmGetTestPropertyCommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer 0b95c64e43 cmGetTargetPropertyCommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer e4c67981ac cmGetSourceFilePropertyCommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer 36b939db68 cmFLTKWrapUICommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer 28cf1271ed cmEnableLanguageCommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer 41b0d60f48 cmDefinePropertyCommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer f717e1fccf cmCreateTestSourceList: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Regina Pfeifer f0ecb12398 cmBuildCommand: Port away from cmCommand
Ref: #19499
2019-09-12 18:16:17 +02:00
Daniel Eiband 482d858500 Depend: Add test for target-level dependencies via byproducts
Add test for target-level dependency of custom target to POST_BUILD event via
byproduct.  Remove explicit dependencies in test which are no longe required
due to introduced dependencies on build events via byproducts.

Issue: #19005
2019-09-12 16:03:12 +02:00
Daniel Eiband f6574c9a81 Depend: Hook up automatic target-level dependencies via byproducts
Target-level dependencies to utility targets are added from another target if
the other target requires a byproduct of the utility target or if it requires a
byproduct of PRE_BUILD, PRE_LINK, or POST_BUILD build events of a target.

Issue: #19005
2019-09-12 16:03:12 +02:00
Daniel Eiband 2edb0b71ed cmMakefile: Add lookup from source name to targets via byproducts
Given an output source name it is now possible to query which target has a
byproduct of this name or has a PRE_BUILD, PRE_LINK, or POST_BUILD build event
with a byproduct of this name.

In a call to GetSourceFileWithOutput a matching byproduct can now optionally be
returned as fallback if there is no matching output of a custom command.

Default behavior is not changed by this commit.
2019-09-12 16:01:45 +02:00
Daniel Eiband 62d5932389 Refatoring: Extract AnyOutputMatches utility 2019-09-12 15:49:55 +02:00