Commit Graph

26347 Commits

Author SHA1 Message Date
Fred Baksik 5d2e1404bd GHS: Update project layout to build targets correctly
-- Restructure projects and files to support proper building of targets
   Build order is determined by hierarchy of project files and folders
   Custom targets may have been run multiple times in the original file / folder structure
-- Default to build targets that are part of ALL target
-- List all known targets for this project
   Includes global targets for ALL_BUILD and INSTALL
-- Compute build order for building targets
2019-04-11 13:15:50 -04:00
Fred Baksik b6bfa7eeb2 GHS: Support add_dependencies() command
-- use references to list target dependencies
2019-04-11 13:15:50 -04:00
Fred Baksik 39ee9718d9 GHS: Support add_custom_target() command
-- add new project type that runs shell scripts in proper order
2019-04-11 13:15:50 -04:00
Fred Baksik 8d3dad9a76 GHS: Support add_custom_command( OUTPUT ) signature
-- add new file type to run a shell script
-- gbuild does not compute interfile dependencies like other build tools.
   Therefore calculate the required build order of custom commands and
   list all of them in the CMake Rules subproject.
2019-04-11 13:15:50 -04:00
Fred Baksik 37acc9e229 GHS: Update custom command build events
-- Fixes issue where commands run out of order; Run commands as single script
   Do not allow build events to run in parallel
-- Use command generator to parse the commands
-- Support pre-link build events
-- Support more options: COMMENT, BYPRODUCTS, WORKING_DIRECTORY
2019-04-10 11:54:56 -04:00
Brad King 7e60e77c3c Merge topic 'autogen_autorcc_no_libuv'
7b98a6eb68 Autogen: Rename cmQtAutoGeneratorRcc to cmQtAutoRcc
9710d4aacf Autogen: Move libuv loop from cmQtAutoGenerator to cmQtAutoGeneratorMocUic
95e72c0157 Autogen: Make cmQtAutoGenerator::FileSystem Logger free
f161cfe5a8 Autogen: Move Logger and FileSystem member variables to generator classes
7baec5e94b AutoRcc: Don't use cmQtAutoGenerator::FileSystem methods
191269d247 AutoRcc: Remove libuv event loop from cmQtAutoGeneratorRcc
95de172b68 AutoRcc: Make rcc parsing function private
521475b41b AutoRcc: Use cmQtAutoGen::RccLister in initializer and generator
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3202
2019-04-08 07:58:58 -04:00
Brad King 14270eab36 Merge topic 'genex-output_name'
1889ed923e Genex: Add capability to retrieve base name for various target artifacts
26b6d2aff0 Refactor struct TargetFileSystemArtifact

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3190
2019-04-08 07:52:58 -04:00
Marc Chevrier 1889ed923e Genex: Add capability to retrieve base name for various target artifacts
This new capability is required to solve efficiently issue #18771
2019-04-08 07:49:08 -04:00
Marc Chevrier 26b6d2aff0 Refactor struct TargetFileSystemArtifact
Creates base class TargetArtifactBase which enable to share code with
future new functionalities.
2019-04-08 07:48:20 -04:00
Brad King c756fbce9b Merge topic 'ghs_os_dir'
a1e6b414b9 GHS: Update GHS_BSP_NAME processing
266dadf868 GHS: Print status message regarding GHS_OS_DIR

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3123
2019-04-08 07:45:13 -04:00
Brad King 99ce35ab9c Merge topic 'tidy-fixes'
c1d1027ac1 Enabled performance-inefficient-vector-operation check in clang-tidy

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3185
2019-04-08 07:44:10 -04:00
Brad King 658efb4c1a Merge topic 'modernize-raw-string-literal'
0090907e86 tidy: Fix modernize-raw-string-literal in FreeBSD CPack generator

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3198
2019-04-08 07:42:56 -04:00
Kitware Robot 52aa682284 CMake Nightly Date Stamp 2019-04-08 00:01:07 -04:00
Kitware Robot 2f01090d81 CMake Nightly Date Stamp 2019-04-07 00:01:07 -04:00
Sebastian Holtermann 7b98a6eb68 Autogen: Rename cmQtAutoGeneratorRcc to cmQtAutoRcc
The class name `cmQtAutoGeneratorRcc` is long and cumbersome.  This shortens
it to `cmQtAutoRcc`.
2019-04-06 17:37:12 +02:00
Sebastian Holtermann 9710d4aacf Autogen: Move libuv loop from cmQtAutoGenerator to cmQtAutoGeneratorMocUic
`cmQtAutoGenerator` automatically started a libuv loop in the constructor.
The loop is needed in `cmQtAutoGeneratorMocUic`, but not in
`cmQtAutoGeneratorRcc` (anymore).  To avoid starting the loop in
`cmQtAutoGeneratorRcc`, this patch moves the loop variables and startup code
from `cmQtAutoGenerator` to `cmQtAutoGeneratorMocUic`.
2019-04-06 17:37:12 +02:00
Sebastian Holtermann 95e72c0157 Autogen: Make cmQtAutoGenerator::FileSystem Logger free
`cmQtAutoGenerator::FileSystem` used to have a reference to a
`cmQtAutoGenerator::Logger` instances.  This was used for utility methods
that automatically generated an error message on demand.  Unfortunately this
resulted in double error messages in some places.  To fix these and with
the additional purpose of removing the dependency of
`cmQtAutoGenerator::FileSystem` to `cmQtAutoGenerator::Logger`, this patch
removes the `Logger` reference in `cmQtAutoGenerator::FileSystem`.
In the process some silent error conditions gained error messages and
some existing error messages were extended.
2019-04-06 17:37:12 +02:00
Sebastian Holtermann f161cfe5a8 Autogen: Move Logger and FileSystem member variables to generator classes
`cmQtAutoGenerator` automatically added `cmQtAutoGenerator::Logger` and
`cmQtAutoGenerator::FileSystem` member variables to all inherited classes.
This patch moves these members variable declarations to the inherited classes,
where needed.
2019-04-06 17:37:12 +02:00
Sebastian Holtermann 7baec5e94b AutoRcc: Don't use cmQtAutoGenerator::FileSystem methods
`cmQtAutoGenerator::FileSystem` is only required for concurrent file system
access, but `cmQtAutoGeneratorRcc` isn't concurrent.  Therefore this patch
replaces all `cmQtAutoGenerator::FileSystem` uses in `cmQtAutoGeneratorRcc`.
2019-04-06 17:37:08 +02:00
Sebastian Holtermann 191269d247 AutoRcc: Remove libuv event loop from cmQtAutoGeneratorRcc
Using a libuv event loop in AUTORCC is unnecessary and over complicated.
This patch removes the loop and makes `cmQtAutoGeneratorRcc::Process` a
regular serial processing method.
2019-04-06 16:38:40 +02:00
Sebastian Holtermann 95de172b68 AutoRcc: Make rcc parsing function private
The `.qrc` parsing functions in `cmQtAutoGen` are no longer needed outside
the private implementation of `cmQtAutoGen::RccLister`.  This makes them
private, too.
2019-04-06 16:17:40 +02:00
Sebastian Holtermann 521475b41b AutoRcc: Use cmQtAutoGen::RccLister in initializer and generator
Both classes `cmQtAutoGenInitializer` and `cmQtAutoGeneratorRcc` had
different implementations for reading the files list from a `.qrc` resources
file.  This patch replaces both implementations with the common simple
`cmQtAutoGen::RccLister` implementation.
2019-04-06 16:17:23 +02:00
Sebastian Holtermann 7cbde5c503 AutoRcc: Add cmQtAutoGen::RccLister class
The new `cmQtAutoGen::RccLister` class provides a simple interface to
list files in a `.qrc` resources file by either calling `rcc` with
list options or by parsing the resources file content.
2019-04-06 16:17:19 +02:00
Kitware Robot 7a5adae94d CMake Nightly Date Stamp 2019-04-06 00:01:08 -04:00
Brad King ffcb4f7ec5 Merge topic 'rst-bad-markup-block'
a9b38a1757 cmRST: Fix crash on empty markup block
2024327746 Help: Remove empty literal block markup in RESOURCE target property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3197
2019-04-05 08:51:25 -04:00
Brad King 0090907e86 tidy: Fix modernize-raw-string-literal in FreeBSD CPack generator 2019-04-05 08:32:39 -04:00
Brad King a9b38a1757 cmRST: Fix crash on empty markup block 2019-04-05 08:18:14 -04:00
Kitware Robot 52fb35bd69 CMake Nightly Date Stamp 2019-04-05 00:01:07 -04:00
Brad King 0dfb056cd3 Merge topic 'pr.projectbefore'
0761186949 project: Add variable CMAKE_PROJECT_INCLUDE_BEFORE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3175
2019-04-04 11:32:41 -04:00
Brad King 7795b3f2bf Merge topic 'modernize-raw-string-literal'
30bb14c657 Modernize: Enable modernize-raw-string-literal in clang-tidy

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3184
2019-04-04 11:30:54 -04:00
Brad King dc6b76d1e7 Merge topic 'autogen_keywords_class'
18f7b2ed21 Autogen: Add more frequently used keywords to Keywords class
5fb122ff75 Autogen: Add `AUTO*_EXECUTABLE` strings to Keywords class
b32e18fb88 Autogen: Remove static const generator name strings from cmQtAutoGen
5431395d68 Autogen: Add cmQtAutogenGlobalInitializer::Keywords class
78eccc7836 Autogen: Remove lowercase generator name from generator variables class

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3182
2019-04-04 11:29:51 -04:00
Brad King a63a50c77a Merge topic 'remove_duplicates'
abbb8a7b1d Genex: Add $<REMOVE_DUPLICATES:list>
11338389e5 Help: Fix description in cmake-generator-expressions(7) manual

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3154
2019-04-04 11:27:28 -04:00
Kitware Robot 3d6d7c170c CMake Nightly Date Stamp 2019-04-04 00:01:07 -04:00
Brad King 6fdba8b8be Merge topic 'refactor-lang-flags'
707283981f VS: Use AddLanguageFlags to de-duplicate CMAKE_<LANG>_FLAGS* lookup
8ca1b26286 cmLocalGenerator: Factor IPO logic out of AddLanguageFlags

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3177
2019-04-03 14:07:11 -04:00
Kitware Robot d724060459 CMake Nightly Date Stamp 2019-04-03 00:01:10 -04:00
Jakub Kalinski c1d1027ac1 Enabled performance-inefficient-vector-operation check in clang-tidy 2019-04-02 22:17:24 +02:00
Brad King 707283981f VS: Use AddLanguageFlags to de-duplicate CMAKE_<LANG>_FLAGS* lookup 2019-04-02 14:23:46 -04:00
Brad King 8ca1b26286 cmLocalGenerator: Factor IPO logic out of AddLanguageFlags
The IPO flag logic was added to `AddLanguageFlags` based on my advice.
However, this method should really only be about `CMAKE_<LANG>_FLAGS*`
variables.  Move the IPO logic out to its call sites.
2019-04-02 14:23:32 -04:00
Sebastian Holtermann 18f7b2ed21 Autogen: Add more frequently used keywords to Keywords class 2019-04-02 20:12:52 +02:00
Sebastian Holtermann 5fb122ff75 Autogen: Add AUTO*_EXECUTABLE strings to Keywords class 2019-04-02 20:12:52 +02:00
Sebastian Holtermann b32e18fb88 Autogen: Remove static const generator name strings from cmQtAutoGen 2019-04-02 20:12:43 +02:00
Sebastian Holtermann 5431395d68 Autogen: Add cmQtAutogenGlobalInitializer::Keywords class
The new `cmQtAutogenGlobalInitializer::Keywords` class instance is bound to
the lifetime of the `cmQtAutogenGlobalInitializer` instance.  Global static
const strings would be allocated at program start and deallocated at program
end.  Keeping keyword strings alive only in the context where they're
needed helps to reduce the memory footprint.
2019-04-02 20:11:50 +02:00
Sebastian Holtermann 78eccc7836 Autogen: Remove lowercase generator name from generator variables class
The lowercase `Auto*` generator name in `cmQtAutoGenInitializer::GenVarsT` is
never user.  Remove it from the class.
2019-04-02 20:11:29 +02:00
Artur Ryt 30bb14c657 Modernize: Enable modernize-raw-string-literal in clang-tidy 2019-04-02 19:59:54 +02:00
Kitware Robot 56ae290284 CMake Nightly Date Stamp 2019-04-02 00:01:09 -04:00
Sebastian Lipponer abbb8a7b1d Genex: Add $<REMOVE_DUPLICATES:list> 2019-04-01 21:52:17 +02:00
Ruslan Baratov 0761186949 project: Add variable CMAKE_PROJECT_INCLUDE_BEFORE 2019-04-01 20:30:19 +03:00
Brad King 3e129d71bc Merge topic 'project-include'
7d19b3091d Release note for CMAKE_PROJECT_INCLUDE variable
dda0190458 project: Add variable CMAKE_PROJECT_INCLUDE
390f14a244 Test ProjectInclude: Add NONE to avoid enabling languages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3155
2019-04-01 10:49:02 -04:00
Brad King 29802ed272 Merge topic 'refactor-cmcmd'
f13aef4de5 cmcmd: Modernize for loops with cmMakeRange
e9bbfdd9a1 cmcmd: Pass args vector by const&

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3168
2019-04-01 10:47:13 -04:00
Brad King fa2dbbbdde Merge topic 'utilize-substr'
2d66567dca Modernize: Prefer .substr in place of .c_str() + int

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sebastian Holtermann <sebholt@xwmw.org>
Merge-request: !3169
2019-04-01 10:46:24 -04:00