Commit Graph
28539 Commits
Author SHA1 Message Date
Brad King 6a39d3df54 Merge branch 'fix-overlay-icon-windows' into release-3.14
Merge-request: !3217
2019-04-11 14:04:54 -04:00
Julien Jomier 12ef832c96 cmake-gui: Fix icon overlay on windows
Since commit 9175a378f5 (QtDialog: Add windows taskbar progress,
2018-11-17, v3.14.0-rc1~330^2) we've added a missing overlay icon.
This results in Windows falling back to a default overlay icon.
Simply drop this line.

Fixes: #19160
2019-04-11 14:03:29 -04:00
Fred Baksik 3b415c60c1 GHS: Update ExternalProject for GHS tools
-- When using default values for the external project forward GHS platform
   variables so that the external project builds with the same tools as
   the original project.

-- Fix issue with bad top level project when GHS_PRIMARY_TARGET is set but has
   no value.  In this case treat it as unset and use default value.
2019-04-11 13:15:51 -04:00
Fred Baksik 83c47ef5b8 GHS: Update project layout to accommodate gbuild inconsistencies
-- Do not use reference projects, use build hierarchy instead.
   gbuild has three parallel levels:
   * low -- Parallelizes compiling source files within a single project (.gpj)
     file when safe to do so.
   * medium -- Parallelizes processing files within a single linked output when
     safe to do so.
   * high [default] -- Parallelizes processing files whenever safe to do so,
     including linking task.

   Testing showed that for some combinations of gbuild / MULTI there are issues
   with building a project that uses references to target project files along with
   using {nobuild} option.

   Sometimes the archiving of a library and linking of an executable were
   happening in parallel and the build would fail when linking because the
   archive wasn't complete.

   This behavior was also inconsistent when running the build from MULTI and
   from the command line with gbuild. In some cases MULTI did not parallelize
   archiving and linking, but gbuild performed these actions in parallel.

   The parallel build issue was not seen when using a build hierarchy where the
   project listed the project files normally instead of using a reference link.

   The other option was to add the -parallel_level=medium to the command line
   when using "cmake --build" but this wouldn't fix the issue if gbuild itself
   was used to and the user might not be aware of the extra option used by cmake.
2019-04-11 13:15:51 -04:00
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
Brad King f0948499f6 cmSystemTools: Fix StringToULong to reject negative numbers
Fixes: #19161
2019-04-11 12:56:32 -04:00
Avraham Shukron a40f9083dd INTERFACE Target: allow (PUBLIC/PRIVATE)_HEADER properties
Also support installing headers on an INTERFACE library.

Signed-off-by: Avraham Shukron <avraham.shukron@gmail.com>
Fixes: #15234
2019-04-11 11:09:42 -04:00
Brad King 67645c132b cpack: Remove unused file with old development notes 2019-04-11 10:56:05 -04:00
Brad King aeddf63587 cmArgumentParser: Fix -Wcomma warning
Clang `-Wcomma` warns:

```
Source/cmArgumentParser.cxx:58:42: warning: possible misuse of comma operator
  this->CurrentList = (val.emplace_back(), &val.back());
                                         ^
```

This was introduced by commit 4359fe133b (Introduce cmArgumentParser,
2019-03-23).  Suppress it with the suggested cast.
2019-04-11 10:44:38 -04:00
Brad King 7bad2464fc Merge branch 'xcode-extra-sources' into release-3.14
Merge-request: !3208
2019-04-11 10:35:49 -04:00
Brad King 428c1e429f Xcode: Avoid mutating App Bundle targets during generation
For `MACOSX_BUNDLE` targets we generate an `Info.plist` automatically
and add it to the sources presented to Xcode.  Avoid mutating the
original target's list of sources to achieve this.  Otherwise when we
generate the same target again (e.g. in a sub-project's Xcode file) it
will look different than the first time and possibly break invariants.

Fixes: #19114
2019-04-11 10:35:14 -04:00
Brad King b4385d5ccc Xcode: Factor out duplicate source group code into lambda 2019-04-11 10:35:14 -04:00
Kitware Robot be101e909e CMake Nightly Date Stamp 2019-04-11 00:01:09 -04:00
Marc Chevrier b70bac647d Genex: add $<TARGET_FILE_PREFIX:...> and $<TARGET_FILE_SUFFIX:...>
These capabilities complement MR !3190
and is also needed to solve issue #18771.
2019-04-10 23:45:12 +02:00
Brad King f621e7fa5d VS: Fix Fortran runtime library flag map special case for '-' options 2019-04-10 13:40:25 -04:00
Marc Chevrier f65763fe9b Refactor: Add new methods to retrieve prefix and suffix 2019-04-10 18:37:03 +02: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
Kitware Robot 784c35b444 CMake Nightly Date Stamp 2019-04-10 00:01:10 -04:00
Brad King aa0692de67 Merge topic 'argument-parser'
b783e62533 cmExecuteProcessCommand: Port to cmArgumentParser
9bddb03f31 cmParseArgumentsCommand: Port to cmArgumentParser
45edf1ad66 Retire cmCommandArgumentsHelper
f5acecaa6f cmExportCommand: Port to cmArgumentParser
e6b6bb0618 cmInstallCommand: Port to cmArgumentParser
4336a29edd cmFileCommand: Port to cmArgumentParser
4359fe133b Introduce cmArgumentParser

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Leonid Pospelov <pospelovlm@yandex.ru>
Merge-request: !3137
2019-04-09 08:27:31 -04:00
Brad King 3d15ae4ea1 Merge topic 'cmake-gui-windows-theme'
18962f8f8f Utilities/Release: Link statically to QWindowsVistaStyle plugin
a53c3f03bc Merge branch 'backport-cmake-gui-windows-theme'
fce03306ee cmake-gui: Fix theme on Windows with Qt >= 5.10

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3205
2019-04-09 08:01:01 -04:00
Marc Chevrier 284429ac87 Merge topic 'genex_filter'
698f51abac Genex: Add $<FILTER:list,INCLUDE|EXCLUDE,regex>

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3188
2019-04-09 03:20:30 -04:00
Kitware Robot d6488cb6b3 CMake Nightly Date Stamp 2019-04-09 00:01:09 -04:00
Sebastian Lipponer 698f51abac Genex: Add $<FILTER:list,INCLUDE|EXCLUDE,regex> 2019-04-08 19:57:22 +02:00
Brad King a53c3f03bc Merge branch 'backport-cmake-gui-windows-theme' 2019-04-08 13:30:26 -04:00
mistersandman fce03306ee cmake-gui: Fix theme on Windows with Qt >= 5.10
In Qt 5.10 the theme support moved to a separate QWindowsVistaStyle
plugin.

Issue: #19147
2019-04-08 13:30:05 -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