Commit Graph

26426 Commits

Author SHA1 Message Date
Brad King d0e3701861 Merge topic 'msvc-warning-flags'
1baf122cd4 MSVC: Do not add /W3 to CMAKE_<LANG>_FLAGS by default

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3250
2019-04-22 07:51:01 -04:00
Brad King cb23f2ac8b Merge topic 'vs-default-platform'
db02be85a0 VS: Provide the default platform name to project code

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3246
2019-04-22 07:38:33 -04:00
Kitware Robot 8c322f9313 CMake Nightly Date Stamp 2019-04-22 00:01:04 -04:00
Kitware Robot 77ae6ae860 CMake Nightly Date Stamp 2019-04-21 00:01:03 -04:00
Kitware Robot 0116bb19d3 CMake Nightly Date Stamp 2019-04-20 00:01:04 -04:00
Brad King 1baf122cd4 MSVC: Do not add /W3 to CMAKE_<LANG>_FLAGS by default
We do not add default warning flags on other compilers, and having
a warning flag in the default flags makes it hard for projects to
customize the warning level.  They need to use string processing
to remove `/W3` from `CMAKE_{C,CXX}_FLAGS`.  Therefore we should
drop it.

However, projects may be using string processing to replace `/W3`
with another flag, so we cannot simply drop it.  Add a policy to
drop it in a compatible way.

Fixes: #18317
2019-04-19 12:56:49 -04:00
Brad King db02be85a0 VS: Provide the default platform name to project code
The value of `CMAKE_VS_PLATFORM_NAME` is computed by Visual Studio
generators based on `CMAKE_GENERATOR_PLATFORM` or some default.
Prior to the VS 2019 generator, the default was always `Win32`.
However, for the `Visual Studio 16 2019` generator, the default is
based on the host platform.

Store the default in a new `CMAKE_VS_PLATFORM_NAME_DEFAULT` variable for
use by project code.  This is particularly useful in toolchain files
because they are allowed to set `CMAKE_GENERATOR_PLATFORM` and so
`CMAKE_VS_PLATFORM_NAME` is not yet known.  Of course the toolchain file
author knows whether it will set `CMAKE_GENERATOR_PLATFORM`, and if not
then `CMAKE_VS_PLATFORM_NAME_DEFAULT` provides the platform name that
will be used.

Fixes: #19177
2019-04-19 07:46:13 -04:00
Kitware Robot bf64e50da4 CMake Nightly Date Stamp 2019-04-19 00:01:04 -04:00
Brad King 2e94c1185b Merge topic 'unique'
9ecb3f8d5c Ninja,Makefile: use `unique_ptr` for memory management

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3230
2019-04-18 11:07:07 -04:00
Saleem Abdulrasool 9ecb3f8d5c Ninja,Makefile: use unique_ptr for memory management
Use a `unique_ptr` to manage the lifetime of the `MacOSXContentGenerator`
and 'OSXBundleGenerator` rather than manually handling the lifetime.
2019-04-18 11:05:25 -04:00
Brad King 52ef218664 Merge topic 'update-kwsys'
0e47391400 bootstrap: Update for new KWSys configuration option
fb15c27562 Merge branch 'upstream-KWSys' into update-kwsys
0225b05afe KWSys 2019-04-17 (c42b92f0)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3242
2019-04-18 11:01:50 -04:00
Kitware Robot 44c6acc053 CMake Nightly Date Stamp 2019-04-18 00:01:03 -04:00
Brad King 2ed688a863 Merge topic 'msvc-runtime-library'
fb3370b6a1 MSVC: Add abstraction for runtime library selection
f621e7fa5d VS: Fix Fortran runtime library flag map special case for '-' options

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Acked-by: Leonid Pospelov <pospelovlm@yandex.ru>
Merge-request: !3211
2019-04-17 11:01:37 -04:00
Brad King fb3370b6a1 MSVC: Add abstraction for runtime library selection
Replace our hard-coded defaults for `/MD` and `/MDd` with a first-class
abstraction to select the runtime library from an enumeration of logical
names.  We've long hesitated to do this because the idea of "runtime
library selection" touches on related concepts on several platforms.
Avoid that scope creep by simply defining an abstraction that applies
only when targeting the MSVC ABI on Windows.

Removing the old default flags requires a policy because existing
projects may rely on string processing to edit them and choose a runtime
library under the old behavior.  Add policy CMP0091 to provide
compatibility.

Fixes: #19108
2019-04-17 11:00:44 -04:00
Brad King fb15c27562 Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2019-04-17 (c42b92f0)
2019-04-17 09:50:14 -04:00
Kitware Robot 8d5eb97878 CMake Nightly Date Stamp 2019-04-17 00:01:04 -04:00
Brad King 2d37678226 Merge topic 'vs-project-import'
d145d72e70 VS: add target property VS_PROJECT_IMPORT_<propspath>

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3143
2019-04-16 13:43:52 -04:00
Brad King 9aecda56ba Merge topic 'genex-output_name'
60ec292258 Genex: Rename $<TARGET_*_OUTPUT_NAME:...> in $<TARGET_*_FILE_BASE_NAME:...>

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3228
2019-04-16 13:42:53 -04:00
Brad King 3205561b8a Merge topic 'string-repeat'
536cca60ea string: introduce `REPEAT` sub-command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3239
2019-04-16 13:40:02 -04:00
Brad King 34975815a8 Merge topic 'autogen_moc_uic_single_job_queue'
58f04b6ecf Autogen: Add ManySources test
a3f062091f Autogen: Rename `cmQtAutoGeneratorMocUic` class to `cmQtAutoMocUic`
8cb26a0a2a Autogen: Factor out concurrency framework to cmWorkerPool class

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3224
2019-04-16 13:38:21 -04:00
Kitware Robot 5ec9d16b5a CMake Nightly Date Stamp 2019-04-16 00:01:04 -04:00
Leonid Pospelov d145d72e70 VS: add target property VS_PROJECT_IMPORT_<propspath>
Fixes: #18998
2019-04-15 13:05:07 -04:00
Marc Chevrier 60ec292258 Genex: Rename $<TARGET_*_OUTPUT_NAME:...> in $<TARGET_*_FILE_BASE_NAME:...> 2019-04-15 18:22:14 +02:00
Alex Turbov 536cca60ea string: introduce REPEAT sub-command 2019-04-15 11:06:06 -04:00
Brad King d38d7747fe Merge topic 'ctest-build-and-test-no-progress'
81cc3de28e ctest: drop incremental progress-only messages from build-and-test output

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3225
2019-04-15 10:55:53 -04:00
Brad King 8905f04a1d Merge topic 'code-cleanup'
3e70a8d0df cmVisualStudio10TargetGenerator: Simplify code of two functions
e10b04ef05 cmVisualStudio10TargetGenerator: Use count instead of find
2418a5aec0 cmVisualStudio10TargetGenerator: Remove uses of const_cast

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3223
2019-04-15 10:54:39 -04:00
Brad King 0793464d95 Merge topic 'ghs_custom'
2bae6a1346 GHS: Update tests and notes
3b415c60c1 GHS: Update ExternalProject for GHS tools
83c47ef5b8 GHS: Update project layout to accommodate gbuild inconsistencies
5d2e1404bd GHS: Update project layout to build targets correctly
b6bfa7eeb2 GHS: Support add_dependencies() command
39ee9718d9 GHS: Support add_custom_target() command
8d3dad9a76 GHS: Support add_custom_command( OUTPUT ) signature
37acc9e229 GHS: Update custom command build events

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Narendhar Manimohan <narendhar15@gmail.com>
Merge-request: !3119
2019-04-15 10:52:21 -04:00
Sebastian Holtermann a3f062091f Autogen: Rename cmQtAutoGeneratorMocUic class to cmQtAutoMocUic
The class name `cmQtAutoGeneratorMocUic` is long and cumbersome.  This renames
it to `cmQtAutoMocUic`.
2019-04-15 16:07:13 +02:00
Sebastian Holtermann 8cb26a0a2a Autogen: Factor out concurrency framework to cmWorkerPool class
This factors out the concurrency framework in `cmQtAutoGeneratorMocUic` to a
dedicated class `cmWorkerPool` which might be reused in other places.

`cmWorkerPool` supports fence jobs that require that
- all other jobs before in the queue have been processed before the fence
  job processing gets started,
- no jobs later in the queue will be processed before the fence job processing
  has been completed.
Fence jobs are needed where the completion of all previous jobs in the queue
is a requirement for further processing.  E.g. in `cmQtAutoGeneratorMocUic`
the generation of `mocs_compilation.cpp` requires that all previous
source file parse jobs have been completed.
2019-04-15 16:07:13 +02:00
Kitware Robot ef9c38ccf8 CMake Nightly Date Stamp 2019-04-15 00:01:03 -04:00
Kitware Robot 9194e9a782 CMake Nightly Date Stamp 2019-04-14 00:01:03 -04:00
Kitware Robot e59e17c1c7 CMake Nightly Date Stamp 2019-04-13 00:01:12 -04:00
Brad King 81cc3de28e ctest: drop incremental progress-only messages from build-and-test output
The cmake progress callback is called with non-negative progress values
to provide incremental updates on "Configuring" and "Generating" steps.
These are useful in interactive views but are just noise in test output.
2019-04-12 12:07:31 -04:00
Leonid Pospelov 3e70a8d0df cmVisualStudio10TargetGenerator: Simplify code of two functions 2019-04-12 18:24:21 +03:00
Leonid Pospelov e10b04ef05 cmVisualStudio10TargetGenerator: Use count instead of find 2019-04-12 18:22:00 +03:00
Leonid Pospelov 2418a5aec0 cmVisualStudio10TargetGenerator: Remove uses of const_cast 2019-04-12 18:20:07 +03:00
Brad King e3ebad7def Merge topic 'genex-target-prefix-suffix'
b70bac647d Genex: add $<TARGET_FILE_PREFIX:...> and $<TARGET_FILE_SUFFIX:...>
f65763fe9b Refactor: Add new methods to retrieve prefix and suffix

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3207
2019-04-12 10:22:33 -04:00
Brad King 4adc0b7c75 Merge topic 'iface-headers'
a40f9083dd INTERFACE Target: allow (PUBLIC/PRIVATE)_HEADER properties

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3181
2019-04-12 10:20:20 -04:00
Brad King 5e98111643 CMake 3.14.2 2019-04-12 08:02:19 -04:00
Brad King 4ff7706f2d Merge topic 'cpack-cleanup'
67645c132b cpack: Remove unused file with old development notes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3215
2019-04-12 07:59:55 -04:00
Brad King f70367e4ed Merge topic 'cmSystemTools-StringToULong-negatives'
f0948499f6 cmSystemTools: Fix StringToULong to reject negative numbers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3216
2019-04-12 07:58:52 -04:00
Brad King d798d2f7c5 Merge topic 'argument-parser-warning'
aeddf63587 cmArgumentParser: Fix -Wcomma warning

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3214
2019-04-12 07:58:01 -04:00
Brad King a5932438cd Merge topic 'fix-overlay-icon-windows'
12ef832c96 cmake-gui: Fix icon overlay on windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3217
2019-04-12 07:29:20 -04:00
Brad King 680641a882 Merge topic 'xcode-extra-sources'
428c1e429f Xcode: Avoid mutating App Bundle targets during generation
b4385d5ccc Xcode: Factor out duplicate source group code into lambda

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3208
2019-04-12 07:23:31 -04:00
Kitware Robot 1601b47b3e CMake Nightly Date Stamp 2019-04-12 00:01:09 -04:00
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