Commit Graph

40514 Commits

Author SHA1 Message Date
Brad King
2f708f5d65 Make internal TARGET_PROPERTY generator expressions more robust
While collecting usage requirements from the `INTERFACE_*` properties of
directly linked targets, we internally generate `TARGET_PROPERTY:` and
`TARGET_OBJECTS:` generator expressions to refer to those properties on
those targets.  At the point we generate these expressions we already
have a pointer to an exact `cmGeneratorTarget` instance.

Switch from using the target name in these generator expressions to
using an internal unique name generated for each `cmGeneratorTarget`
instance to be referenced.  This avoids depending on the user-facing
target name to find the same target we already have.
2018-09-12 12:46:25 -04:00
Brad King
94a75801c8 Android.mk: De-duplicate link libraries logic during export
Use the normal target link interface computation logic to get the
list of libraries in the link interface instead of trying to
interpret the `INTERFACE_LINK_LIBRARIES` property directly.
2018-09-11 13:17:11 -04:00
Brad King
8a63b23d16 cmGlobalGenerator: Remove unused FindLocalGenerator method
This method has not been used since commit v3.4.0-rc1~234^2~1
(cmGlobalGenerator: Port Find API to cmMakefile, 2015-08-02).
2018-09-11 08:21:22 -04:00
Brad King
b1c8d95dbe Merge topic 'imported-same-name'
f35be59961 Fix transitive usage requirements through same-name imported targets
1b57f49586 genex: Simplify cmGeneratorExpressionInterpreter
bea390e9bd Fix dependency propagation through same-name imported targets
fc7e4d1ed8 cmLinkItem: Convert to a "sum type" over a string and target pointer

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2359
2018-09-11 08:20:50 -04:00
Brad King
4188b8fd6a Merge branch 'release-3.12' 2018-09-11 08:19:44 -04:00
Brad King
dcbad14d23 Merge topic 'FindMPI-restore-flags-string'
e374b9f1eb FindMPI: Restore MPI_<LANG>_COMPILE_FLAGS as a command-line string

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Christoph Junghans <junghans@votca.org>
Reviewed-by: Christian Pfeiffer <cpfeiffer@live.de>
Merge-request: !2368
2018-09-11 08:18:55 -04:00
Brad King
bb59e362cc Merge topic 'fix-ctest_start-track'
09f0325eaf CTest: Fix regression in ctest_start()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2366
2018-09-11 08:18:08 -04:00
Brad King
c669b59095 Merge topic 'ctest-fix-test-load'
292ec157b6 CTest: Fix --test-load regression

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2362
2018-09-11 08:12:09 -04:00
Craig Scott
78d165c990 Merge topic 'generator_expressions_typo_fix'
3914108c4a Help: Formatting typo fix in cmake-generator-expressions(7)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2360
2018-09-11 05:51:03 -04:00
Craig Scott
151fc66827 Merge topic 'cmake-host-system-information-doc-fix'
228a2b0d82 Help: Clarify cmake_host_system_information memory units

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2339
2018-09-11 05:48:43 -04:00
Kitware Robot
e895a8f050 CMake Nightly Date Stamp 2018-09-11 00:01:07 -04:00
Brad King
e0e56abe34 Merge branch 'FindMPI-restore-flags-string' into release-3.12
Merge-request: !2368
2018-09-10 14:52:39 -04:00
Brad King
3eda5cdd93 Merge branch 'fix-ctest_start-track' into release-3.12
Merge-request: !2366
2018-09-10 14:35:59 -04:00
Brad King
e374b9f1eb FindMPI: Restore MPI_<LANG>_COMPILE_FLAGS as a command-line string
Refactoring in commit v3.10.0-rc1~103^2~2 (FindMPI: Modernization from
ground up, 2017-04-25) accidentally left this variable set as a copy of
the `;`-list in `MPI_<LANG>_COMPILE_OPTIONS`, but the flags variable is
documented as a command-line string.  Restore it now.

Fixes: #18349
2018-09-10 14:33:29 -04:00
Kyle Edwards
09f0325eaf CTest: Fix regression in ctest_start()
The format for the TAG file was changed in 3.12, and the way it was
read caused a regression which changed how the track was decided. This
commit fixes the regression.

Fixes #18347.
2018-09-10 14:31:21 -04:00
Raul Tambre
3914108c4a Help: Formatting typo fix in cmake-generator-expressions(7) 2018-09-10 15:08:02 +03:00
Brad King
11de1492d3 Merge topic 'FindOpenSceneGraph-debug'
192e552099 FindOpenSceneGraph: Fix find in Debug

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2341
2018-09-10 08:01:21 -04:00
Brad King
0aab59809c Merge topic 'gicv-stdstring'
46855d000f cmCacheManager::GetInitializedCacheValue(): Return as const std::string*

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2357
2018-09-10 08:00:41 -04:00
Brad King
62b56b5ec9 Merge topic 'FindSubversion-wc-info-error'
68d015fc94 FindSubversion: Add Subversion_WC_INFO option to suppress failures

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2292
2018-09-10 07:59:42 -04:00
Brad King
d6853ef405 Merge topic 'extra-generator-split-arg1'
0239b586bd Extra Generator: Fix handling of CMAKE_<LANG>_COMPILER_ARG1

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2352
2018-09-10 07:58:10 -04:00
Brad King
f35be59961 Fix transitive usage requirements through same-name imported targets
If two imported targets in different directories have the same name we
should still be able to propagate transitive usage requirements from
both.  Fix the DAG checker to work with target pointers instead of
target names since the pointers will not be duplicated even if the names
are.

Fixes: #18345
2018-09-10 07:51:44 -04:00
Brad King
68f2b471df Merge branch 'ctest-fix-test-load' into release-3.12
Merge-request: !2362
2018-09-10 07:40:31 -04:00
Brad King
292ec157b6 CTest: Fix --test-load regression
The `ctest --test-load` option is implemented in `StartNextTests` by not
starting any tests when the load is too high and instead sleeping and
then returning.  Prior to commit v3.11.0-rc1~117^2 (CTest: Re-implement
test process handling using libuv, 2017-12-10) our outer loop in
`RunTests` would immediately call `StartNextTests` again.  However, now
the `uv_run` loop may simply terminate if there are no tests running
because no events are left pending.

Fix this by converting the sleep in `StartNextTests` into a libuv timer
that it starts instead.  This avoids leaving `uv_run` with no pending
events.  In the case that there are other running tests this also allows
CTest to detect when they finish even if it during the wait period where
we previously slept.

This regression was not caught by the test suite because it only
verified that we do not start new tests when the load was too high and
not that we proceed to start tests when the load drops.  Revise the test
suite to cover both.

Fixes: #18338
2018-09-10 07:32:16 -04:00
Taylor Holberton
228a2b0d82 Help: Clarify cmake_host_system_information memory units
The memory size query implementations report in units of one mebibyte
(2^20).  Clarify the unit in the documentation because "megabyte" might
also be interpreted as 10^6.
2018-09-10 15:55:07 +08:00
Kitware Robot
1504c6db90 CMake Nightly Date Stamp 2018-09-10 00:01:07 -04:00
Kitware Robot
ccb6dab9f1 CMake Nightly Date Stamp 2018-09-09 00:01:08 -04:00
Kitware Robot
958518c4c5 CMake Nightly Date Stamp 2018-09-08 00:01:11 -04:00
Craig Scott
49cb2a504d Merge topic 'ExternalProject-check-explicit-include'
df1ddeec12 ExternalProject: Report error if local variables are not defined

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Brad King <brad.king@kitware.com>
Merge-request: !2281
2018-09-07 19:40:24 -04:00
Jason Heeris
68d015fc94 FindSubversion: Add Subversion_WC_INFO option to suppress failures
Subversion fails when the directory is not actually under its control.
Allow projects to tolerate this case optionally.

Fixes: #18264
2018-09-07 16:17:28 -04:00
Adam Oleksy
0239b586bd Extra Generator: Fix handling of CMAKE_<LANG>_COMPILER_ARG1
The "arg1" value is a command-line string so we must parse it to get
separate arguments for `execute_process`.
2018-09-07 16:11:11 -04:00
Brad King
917d98699e Merge topic 'definitions-get'
437d0c16c7 cmStateSnapshot::GetDefinition(): Return std::string const*

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2356
2018-09-07 16:08:02 -04:00
Brad King
1b57f49586 genex: Simplify cmGeneratorExpressionInterpreter
All callers were constructing with a non-empty target name using the
target whose pointer was passed anyway.  Drop this argument.  Simplify
logic accordingly.  Re-order constructor arguments to match the
cmCompiledGeneratorExpression::Evaluate arguments.

Also remove unnecessary getters.
2018-09-07 09:23:43 -04:00
Brad King
bea390e9bd Fix dependency propagation through same-name imported targets
If two imported targets in different directories have the same name we
should still be able to propagate transitive link dependencies from
both.  Fix the target and link dependency analyzers to de-duplicate
targets using target pointers rather than target names since the
pointers will not be duplicated even if the names are.

Issue: #18345
2018-09-07 09:23:43 -04:00
Brad King
fc7e4d1ed8 cmLinkItem: Convert to a "sum type" over a string and target pointer
Avoid exposing the item name implicitly as std::string.  When the item
is a target, avoid storing a second copy of its name.

Most link item construction is paired with calls to `FindTargetToLink`
to get the possible target pointer.  Rename these methods to
`ResolveLinkItem` and refactor them to construct the entire item.
2018-09-07 08:57:51 -04:00
Brad King
424d86be5b Merge branch 'release-3.12' 2018-09-07 07:54:44 -04:00
Brad King
f478fa633d CMake 3.12.2 v3.12.2 2018-09-07 06:40:49 -04:00
Kitware Robot
b218841079 CMake Nightly Date Stamp 2018-09-07 00:01:11 -04:00
Vitaly Stakhovsky
46855d000f cmCacheManager::GetInitializedCacheValue(): Return as const std::string*
Expose std::string type used internally instead of const char*
2018-09-06 12:49:57 -04:00
Brad King
f782759ed0 Merge topic 'CMakeFindBinUtils-fix-not-cached'
53bae4cc5e CMakeFindBinUtils: Fix use with non-cached tool settings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2355
2018-09-06 10:00:25 -04:00
Brad King
036db90b9d Merge branch 'release-3.12' 2018-09-06 09:57:08 -04:00
Brad King
488faed3ce Merge topic 'FindMatlab-no-CMAKE_CL_64'
bfe883af60 FindMatlab: Remove erroneous duplicate code

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2354
2018-09-06 09:56:36 -04:00
Brad King
e1ebec55d4 Merge topic 'grd-stdstring'
4d89830d71 cmMakefile: Make GetRequiredDefinition return std::string

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2347
2018-09-06 09:54:56 -04:00
Brad King
3ecbe1987d Merge topic 'isonoff-cstr'
6f16be6a62 Remove unnecessary c_str() calls

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2346
2018-09-06 09:54:18 -04:00
Jean-Christophe Fillion-Robin
df1ddeec12 ExternalProject: Report error if local variables are not defined
Since in some situations, ExternalProject module may be included in
a sub-directory, functions will be available in the global scope but
local variables like "_ep_keywords_<keyword>" will not be defined, this
commit checks and reports an error indicating that the ExternalProject
module must be explicitly included before using any of the ExternalProject_*
functions  that require the module's inclusion within the current scope
or above.

Co-authored-by: Pablo Hernandez <pablo.hernandez@kitware.com>
Co-authored-by: Craig Scott <craig.scott@crascit.com>
2018-09-06 23:02:24 +10:00
Cyril Boucher
192e552099 FindOpenSceneGraph: Fix find in Debug
As of now, it is not possible to find OpenSceneGraph in Debug because the only
variable find_package_handle_standard_args is checking is ${module}_LIBRARY
while the debug library is in ${module}_LIBRARY_DEBUG. The refactoring gets rid
of the old behaviour to replace with a call to select_library_configurations
which will populated ${module}_LIBRARY accordingly.

[Modules/Findosg_functions.cmake Modules/FindOpenThreads.cmake]
- Include SelectLibraryConfigurations module
- Modify the name of the variable that will be populated by the first
  find_library to ${MODULE}_LIBRARY_RELEASE so that SelectLibraryConfigurations
can act on it
- Add call to select_library_configurations after attempting to find libraries
  in debug and release
2018-09-06 09:32:56 +02:00
Kitware Robot
6d2a2fe660 CMake Nightly Date Stamp 2018-09-06 00:01:09 -04:00
Vitaly Stakhovsky
437d0c16c7 cmStateSnapshot::GetDefinition(): Return std::string const*
Expose std::string type used internally in cmDefinitions instead of const char*
2018-09-05 20:08:17 -04:00
Brad King
3dd926f4a8 Merge branch 'FindMatlab-no-CMAKE_CL_64' into release-3.12
Merge-request: !2354
2018-09-05 15:20:03 -04:00
Raffi Enficiaud
bfe883af60 FindMatlab: Remove erroneous duplicate code
This was left accidentally when resolving merge conflicts between
previous changes.

Fixes: #18221
2018-09-05 15:19:50 -04:00
Vitaly Stakhovsky
4d89830d71 cmMakefile: Make GetRequiredDefinition return std::string
In all cases the return value is converted to std::string anyway.

Also remove unnecessary `c_str()` calls in arguments to
`GetRequiredDefinition`.
2018-09-05 15:15:55 -04:00