Commit Graph

24886 Commits

Author SHA1 Message Date
Brad King 9df0e1f98a cmCommandArgumentParserHelper: Avoid -Wstringop-truncation warning
Use `memcpy` instead of `strncpy` to copy bytes from a buffer that
may not be null terminated.
2018-07-31 09:34:00 -04:00
Brad King b6d116e240 cmCursesLongMessageForm: Avoid -Wstringop-overflow warning
We use `strncpy` to copy the title up to a maximum number of
characters.  GCC 8's `-Wstringop-overflow` warns that the length
depends on the input length because it fails to recognize that we
are bounding it to the buffer size too.  Update the code to hide
the dependence on the input length.
2018-07-31 08:52:59 -04:00
Brad King c31d9f1c30 Merge topic 'autogen_refactor_initialization'
7bb70054e4 Autogen: Add test for Q_OS_ macros
f345135845 Autogen: For Qt5 pass all implicit include directories to moc
2d6cfe2677 Autogen: Split initializer main method
84bdae8895 Autogen: Compute variables in Init stage instead of Setup stage
8e0d70272d Autogen: Move info file write code into methods
5776639fbf Autogen: Pass absolute include path in info file
2e9199b291 cmLocalGenerator: Respect user requested implicit include directories order

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2230
2018-07-31 08:08:05 -04:00
Kitware Robot 398ce17fac CMake Nightly Date Stamp 2018-07-31 00:01:05 -04:00
Sebastian Holtermann f345135845 Autogen: For Qt5 pass all implicit include directories to moc
For Qt4 it was not possible to pass all compiler implicit include
directories to moc because it couldn't handle some system headers.
For reference see commit 753b905ec8,
commit d2536579d5 and
[QTBUG-28045](https://bugreports.qt.io/browse/QTBUG-28045).

For Qt5's moc the problem does not persist anymore so we can
(and should) pass all implicit include directories to moc.

Fixes #18041
2018-07-30 09:22:47 +02:00
Sebastian Holtermann 2d6cfe2677 Autogen: Split initializer main method 2018-07-30 09:22:47 +02:00
Sebastian Holtermann 84bdae8895 Autogen: Compute variables in Init stage instead of Setup stage 2018-07-30 09:22:46 +02:00
Sebastian Holtermann 8e0d70272d Autogen: Move info file write code into methods 2018-07-30 09:22:46 +02:00
Sebastian Holtermann 5776639fbf Autogen: Pass absolute include path in info file 2018-07-30 09:22:46 +02:00
Sebastian Holtermann 2e9199b291 cmLocalGenerator: Respect user requested implicit include directories order
In ``cmLocalGenerator::GetIncludeDirectories`` append the user requested
implicit include directories first, then append the remaining implicit
include directories.  By By doing so we keep the user requested order of
implicit include directories.
2018-07-30 09:22:46 +02:00
Kitware Robot 264012dae0 CMake Nightly Date Stamp 2018-07-30 00:01:11 -04:00
Kitware Robot 7a7e4e9ea3 CMake Nightly Date Stamp 2018-07-29 00:01:07 -04:00
Kitware Robot cf0d0a2e6f CMake Nightly Date Stamp 2018-07-28 00:01:17 -04:00
Brad King 5bbcf76399 Merge topic 'UseSWIG-target-name-policy'
a3a0c3aa71 UseSWIG: add policy to manage target naming strategy.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2232
2018-07-27 10:08:54 -04:00
Brad King bccbf9a737 Merge topic 'reproducible-tarballs'
548ac51d8e CPack/Deb: Support SOURCE_DATE_EPOCH when packaging files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2226
2018-07-27 10:06:44 -04:00
Kitware Robot 131fcf65f6 CMake Nightly Date Stamp 2018-07-27 00:01:08 -04:00
Brad King 0ff961f188 Merge topic 'get_include_directories'
b0b820ea39 cmLocalGenerator: Extend the functionality of ``GetIncludeDirectories()``
1f36652ef4 cmLocalGenerator: Style changes: Private local variable renames
db866d05de cmLocalGenerator: Style change: Wrap temporary strings and code in braces
3713dc9b8e cmLocalGenerator: Style change: Wrap temporary strings and code in braces
d1077c1ce6 cmLocalGenerator: Style change: Use return value of std::set::insert

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2234
2018-07-26 10:10:08 -04:00
Kitware Robot 4687de32a4 CMake Nightly Date Stamp 2018-07-26 00:01:10 -04:00
Andrew Fuller 548ac51d8e CPack/Deb: Support SOURCE_DATE_EPOCH when packaging files 2018-07-25 13:39:07 -07:00
Marc Chevrier a3a0c3aa71 UseSWIG: add policy to manage target naming strategy. 2018-07-25 18:00:52 +02:00
Craig Scott ae2b12a95c Merge topic 'project-injected-no-cmp0048'
6646771b0f project: Do not issue CMP0048 warnings on injected call
08eb157c03 Tests: Add case showing CMP0048 warning on injected project command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2235
2018-07-25 08:15:02 -04:00
Sebastian Holtermann b0b820ea39 cmLocalGenerator: Extend the functionality of `GetIncludeDirectories()`
What ``cmLocalGenerator::GetIncludeDirectories`` does
-----------------------------------------------------

In general it concatenates the

1. ``target->GetIncludeDirectories(LANG)`` and the
2. ``CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES``.

Additionally it performs some sorting and special treatment of the

- ``CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES``.

By default all ``CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES`` are stripped from
the result list.

When explicitly requested (by setting ``stripImplicitInclDirs=false``) *some*
implicit directories are appended to the result list.  The implicit directories
that *are* appended are those that were requested to be included by

1. ``target->GetIncludeDirectories(LANG)`` or
2. ``CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES``.

All other implicit directories are still stripped from the result list.

The reason to not simply append all implicit directories is that Qt4's moc has
problems to parse some headers that might be found in the implicit system
include directories (See commit d2536579d5
and
[QTBUG-28045](https://bugreports.qt.io/browse/QTBUG-28045)
).
That has been solved in Qt5's moc though.

Extension request to ``cmLocalGenerator::GetIncludeDirectories``
----------------------------------------------------------------

For Qt5's moc we like to have an option that allows to append *all* implict
include directories to the result list, not just those that were user requested.

Changes to ``cmLocalGenerator::GetIncludeDirectories``
------------------------------------------------------

- Shorten the function parameter name ``stripImplicitInclDirs`` to
  ``stripImplicitDirs``.

- Add new boolean function parameter ``appendAllImplicitDirs``
  with a default value ``false``.

The old default behavior of the function stays the same, but a specialized
behavior can be requested by AUTOMOC for Qt4/Qt5 respectively.
2018-07-25 12:45:10 +02:00
Sebastian Holtermann 1f36652ef4 cmLocalGenerator: Style changes: Private local variable renames
Code style change in ``cmLocalGenerator::GetIncludeDirectories``.

Rename a variable to reflect its purpose a little bit better.
2018-07-25 12:26:25 +02:00
Sebastian Holtermann db866d05de cmLocalGenerator: Style change: Wrap temporary strings and code in braces
Code style change in ``cmLocalGenerator::GetIncludeDirectories``.

Embrace ``{}`` temporary strings and code that uses them to minimize their
lifetime.
2018-07-25 12:24:16 +02:00
Sebastian Holtermann 3713dc9b8e cmLocalGenerator: Style change: Wrap temporary strings and code in braces
Code style change in ``cmLocalGenerator::GetIncludeDirectories``.

Embrace ``{}`` temporary strings and code that uses them to minimize their
lifetime.
2018-07-25 12:20:56 +02:00
Sebastian Holtermann d1077c1ce6 cmLocalGenerator: Style change: Use return value of std::set::insert
Code style change in ``cmLocalGenerator::GetIncludeDirectories()``.

Use the return value of ``std::set::insert`` instead of testing
if the entry already exists in the set using ``std::find``.
2018-07-25 12:08:19 +02:00
Kitware Robot 873f40ecec CMake Nightly Date Stamp 2018-07-25 00:01:10 -04:00
Brad King 6646771b0f project: Do not issue CMP0048 warnings on injected call
Fixes: #18202
2018-07-24 13:14:10 -04:00
Kitware Robot 5df471c8a4 CMake Nightly Date Stamp 2018-07-24 00:01:12 -04:00
Kitware Robot 234cb4cebe CMake Nightly Date Stamp 2018-07-23 00:01:06 -04:00
Kitware Robot c2d22dc4b4 CMake Nightly Date Stamp 2018-07-22 00:01:05 -04:00
Kitware Robot 71e0961a74 CMake Nightly Date Stamp 2018-07-21 00:01:12 -04:00
Craig Scott e3664debd2 Merge topic 'doc-find_package-root'
492ade276b Help: Add explicit <PackageName>_ROOT variable documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2225
2018-07-20 18:58:43 -04:00
Brad King 492ade276b Help: Add explicit <PackageName>_ROOT variable documentation
Add documentation for both the CMake variable and environment variable
of this name pattern.  Update references to these names to link to their
documents.  Clarify the pattern used to construct their names.
2018-07-20 09:43:08 -04:00
Brad King 01c04e4297 Merge topic 'xcode-target-order'
fb45559e09 Xcode: Process targets in depth-first order during generation
0bad9eba46 Xcode: Refactor storage of ordered list of targets
d0de296e50 Xcode: Factor target generation loop body into helper method
30e27b4110 Xcode: Compute global order index for targets
e3469a5920 Xcode: Remove loop over local generators that has no effect

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2224
2018-07-20 07:40:35 -04:00
Kitware Robot 56148cb98f CMake Nightly Date Stamp 2018-07-20 00:01:06 -04:00
Brad King fb45559e09 Xcode: Process targets in depth-first order during generation
The Xcode 10 "new build system" requires more strict handling of custom
commands.  It may need a fix similar to what commit v3.12.0-rc1~171^2
(VS: Generate a custom command only in the least dependent target,
2018-03-23) did for VS.  Prepare for this by generating targets within
each local generator in dependency order.

Issue: #18070
2018-07-19 13:40:54 -04:00
Brad King 0bad9eba46 Xcode: Refactor storage of ordered list of targets
Sort the resulting Xcode object list so that the actual order of
generation does not matter.
2018-07-19 13:20:28 -04:00
Brad King d0de296e50 Xcode: Factor target generation loop body into helper method 2018-07-19 13:20:28 -04:00
Brad King 30e27b4110 Xcode: Compute global order index for targets
Compute an index for each target in a global ordering such that no
target comes before its dependencies.
2018-07-19 13:20:28 -04:00
Brad King e3469a5920 Xcode: Remove loop over local generators that has no effect
Remove a loop over local generators whose body was dropped long ago by
commit v2.6.0~1677 (Remove unused build rules from Xcode, 2007-05-28).
2018-07-19 13:20:27 -04:00
Brad King 8dc86970c8 Merge topic 'cpack_archive_typo'
22fbf39d9b CPack: Fix log typos (spaces in the wrong places)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2222
2018-07-19 07:11:02 -04:00
Kitware Robot cadec7db37 CMake Nightly Date Stamp 2018-07-19 00:01:07 -04:00
Sylvain Joubert 22fbf39d9b CPack: Fix log typos (spaces in the wrong places) 2018-07-18 17:15:52 +02:00
Brad King 0ab23b9a1e Merge topic 'nvcc_dlink_dedup_static_libs'
fd0523a215 CUDA: Properly de-duplicate libs when doing device linking
b07c71831c CUDA: Add a test to verify device linking can handle circular deps

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2214
2018-07-18 09:07:53 -04:00
Kitware Robot 5d550b2772 CMake Nightly Date Stamp 2018-07-18 00:01:05 -04:00
Robert Maynard fd0523a215 CUDA: Properly de-duplicate libs when doing device linking
The nvcc device linker is designed so that each static library
with device symbols only needs to be listed once as it doesn't
care about link order. If you provide the same static library
multiple times it will error out. To make sure this occurs
we find the unique set of link items.
2018-07-17 10:42:57 -04:00
Brad King f84c15ef2f CMake 3.12.0 2018-07-17 07:18:36 -04:00
Brad King 7ebc06fb02 Merge topic 'math-err'
406f397e8b math: Restore toleration of unexpected characters in an expression
dd5c54600b cmExprParserHelper: Simplify error state tracking
185bcface4 cmExprParserHelper: Remove some unused code

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2218
2018-07-17 07:14:48 -04:00
Brad King e08f02b928 Merge topic 'hex_file'
5f431789a9 Use isxdigit() to determine if a character is a hex digit

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2213
2018-07-17 07:12:29 -04:00