Commit Graph

26909 Commits

Author SHA1 Message Date
Brad King
3143e9ffc5 Merge topic 'project-version-0'
0ba5891ead project: Keep leading `0` in PROJECT_VERSION components
5f84669806 Tests: Factor out RunCMake.project helper macro into module
b1f387a7ea Refactor: Use raw string literals instead of escaping
41b85968d8 Refactor: Use initializer lists instead of `push_back` series
45e85dd2b2 Refactor: Add some `const` to vars
90f91e4d21 Refactor: Replace a "magic" number w/ a named constant
638383c38f Refactor: Eliminate one-time-used variables
9b6a53292f Refactor: Eliminate `sep` from the loop

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3517
2019-07-17 07:28:05 -04:00
Brad King
3f84ff212c Merge topic 'find_package-fix-NO_MODULE'
f2edccea66 find_package: Fix NO_MODULE under CMAKE_FIND_PACKAGE_PREFER_CONFIG

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3557
2019-07-17 07:20:20 -04:00
Kitware Robot
b119968048 CMake Nightly Date Stamp 2019-07-17 00:01:08 -04:00
Brad King
c3d9d80015 Merge topic 'aix-explicit-exports'
c2c3d22504 Tests: Drop RunCMake workaround for AIX ld warnings about GNU atexit
9f5c2040bf AIX: Explicitly compute executable exports for both XL and GNU
0f150b69d3 AIX: Explicitly compute shared object exports for both XL and GNU
a5bf4e7921 AIX: Drop redundant -brtl flags
9cb5f040d7 XL: De-duplicate shared object creation flags

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3556
2019-07-16 10:30:38 -04:00
Cristian Adam
f2edccea66 find_package: Fix NO_MODULE under CMAKE_FIND_PACKAGE_PREFER_CONFIG
The module mode fallback added by commit 22e65d10c1 (find_package: Fixed
CMAKE_FIND_PACKAGE_PREFER_CONFIG Module fallback, 2019-06-13,
v3.15.0-rc2~6^2) should not be used unless the `find_package` call
allows module mode.  Doing so can lead to infinite recursion if a find
module tries to call config mode with `find_package(...  NO_MODULE)`.
Fix the logic and add a test case.

Fixes: #19478
2019-07-16 09:09:24 -04:00
Alex Turbov
0ba5891ead project: Keep leading 0 in PROJECT_VERSION components
Introduce CMake policy `CMP0096` to make `project()` keep leading zeros
in version components.  As a side effect, it now allows really long
version numbers.

Fixes: #19421
Co-Author: Brad King <brad.king@kitware.com>
2019-07-16 07:48:40 -04:00
Kitware Robot
e653938b39 CMake Nightly Date Stamp 2019-07-16 00:01:06 -04:00
Brad King
9f5c2040bf AIX: Explicitly compute executable exports for both XL and GNU
On AIX, symbols in executables must be exported in order to be visible
to modules (plugins) they load via `dlopen`.  Prior to policy `CMP0065`,
CMake linked all executables with flags to export symbols, but the NEW
behavior for that policy is to do so only for executables that have the
`ENABLE_EXPORTS` target property set.  In both cases, CMake has always
used the AIX linker option `-bexpall` option to export symbols from
executables.

This has worked fairly well with the XL compiler, but with the GNU
compiler it works only for C ABI symbols.  The reason is that `-bexpall`
does not export symbols starting in `_` but the GNU C++ ABI mangles all
symbols with a leading `_`.  Therefore we have only supported C ABI
plugins with the GNU compiler on AIX.  Some projects have tried to work
around this by replacing `-bexpall` with `-bexpfull`, but the latter
often exports symbols that we do not want exported.

Avoid using `-bexpall` for executables by instead using by our own
internal `ExportImportList` script to compute symbol export lists from
the object files to be linked into an executable.  Pass the explicitly
computed export list to the AIX linker's `-bE:...` option.  We already
do this for shared object exports.

Issue: #19163
2019-07-15 13:27:16 -04:00
Alex Turbov
b1f387a7ea Refactor: Use raw string literals instead of escaping 2019-07-15 08:17:36 -04:00
Alex Turbov
41b85968d8 Refactor: Use initializer lists instead of push_back series 2019-07-15 08:17:36 -04:00
Alex Turbov
45e85dd2b2 Refactor: Add some const to vars 2019-07-15 08:17:36 -04:00
Alex Turbov
90f91e4d21 Refactor: Replace a "magic" number w/ a named constant 2019-07-15 08:17:36 -04:00
Alex Turbov
638383c38f Refactor: Eliminate one-time-used variables 2019-07-15 08:17:36 -04:00
Alex Turbov
9b6a53292f Refactor: Eliminate sep from the loop 2019-07-15 08:17:34 -04:00
Brad King
d7e53b4274 Merge topic 'cleanup-gen-lookups'
7ff9ab3b10 Makefile: De-duplicate executable link rule lookup
79f5ef19fe De-duplicate checks for whether a platform uses Windows DLLs
22d3eb5d5e Refactor checks for whether a target has an import library

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3550
2019-07-15 07:41:52 -04:00
Brad King
a92b7fd46b Merge topic 'modernize-cmCommand-memory-management'
1591f138f1 modernize: manage cmCommand instances using unique_ptr.
d9b2c7dae2 Introduce memory management helper: cm_memory.hxx

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sebastian Holtermann <sebholt@web.de>
Merge-request: !3513
2019-07-15 07:40:00 -04:00
Kitware Robot
0db8b7eb45 CMake Nightly Date Stamp 2019-07-15 00:01:07 -04:00
Marc Chevrier
1591f138f1 modernize: manage cmCommand instances using unique_ptr. 2019-07-14 15:37:30 +02:00
Marc Chevrier
d9b2c7dae2 Introduce memory management helper: cm_memory.hxx 2019-07-14 15:37:30 +02:00
Kitware Robot
81389a5e8f CMake Nightly Date Stamp 2019-07-14 00:01:07 -04:00
Kitware Robot
82a4e07f8f CMake Nightly Date Stamp 2019-07-13 00:01:10 -04:00
Craig Scott
a2319c04f6 Merge topic 'cleanup-statics-stream-flush'
af75ab7645 Refactor: Use anonymous namespace instead of `static`s in `cpack.cxx`
0db458a0ce Refactor: Use anonymous namespace instead of `static`s
0328b64efd Refactor: Remove one-time used macros
b821f9ad62 Refactor: Optimize some stream output operations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3535
2019-07-12 20:26:12 -04:00
Brad King
7ff9ab3b10 Makefile: De-duplicate executable link rule lookup
Use `GetCreateRuleVariable` instead of duplicating the variable lookup.
2019-07-12 17:37:02 -04:00
Brad King
79f5ef19fe De-duplicate checks for whether a platform uses Windows DLLs 2019-07-12 17:35:49 -04:00
Brad King
22d3eb5d5e Refactor checks for whether a target has an import library
Use `HasImportLibrary` for such checks.
2019-07-12 17:29:40 -04:00
Brad King
8212b0880d Merge topic 'cmake-e-true-false'
b8828ecbba cmake -E: Add true and false commands

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3542
2019-07-12 16:12:20 -04:00
Brad King
82a72bfc1b Merge topic 'ctest_make_program__propagated_to_cmake_configure_pass'
cd681f1f41 ctest: propagate make program to cmake

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3483
2019-07-12 16:10:32 -04:00
Brad King
609d86e813 Merge topic 'object-library-sbcs'
54290adcba VS: Fix SBCS support for object libraries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3537
2019-07-12 07:22:55 -04:00
Brad King
54290adcba VS: Fix SBCS support for object libraries
In commit 3a53005f7d (Build object library targets in VS, 2012-03-12,
v2.8.8~29^2~13) we updated the condition for unicode but accidentally
left out the SBCS case support for object libraries.

Fixes: #19469
2019-07-12 07:20:23 -04:00
Kitware Robot
93f10f06b3 CMake Nightly Date Stamp 2019-07-12 00:01:08 -04:00
Kyle Edwards
b8828ecbba cmake -E: Add true and false commands 2019-07-11 13:41:30 -04:00
Brad King
e15314420c Merge topic 'iwyu-memory'
71fbebd1dc IWYU: Fix handling of <memory> standard header

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Marc Chevrier <marc.chevrier@gmail.com>
Merge-request: !3536
2019-07-11 08:52:36 -04:00
Brad King
6e4e79e1b0 Merge topic 'fix_ctest_output'
adcbdb143c CTest: Clean up stdout and logfile output for Pass/Fail regex

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3509
2019-07-11 08:50:36 -04:00
Brad King
01a8b89f29 Merge topic 'eclipse-resource-encoding'
09c1991895 Eclipse: Add option to set the resource encoding

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3525
2019-07-11 08:49:34 -04:00
Robert Maynard
cd681f1f41 ctest: propagate make program to cmake 2019-07-11 08:28:35 -04:00
Kitware Robot
7c98e2d1ad CMake Nightly Date Stamp 2019-07-11 00:01:08 -04:00
Kyle Edwards
bb4b394fac Merge topic 'fix/move-more-cpack-internals'
98617f1be0 Refactor: Move CPack internal files to `Internal/CPack/` directory

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3530
2019-07-10 12:48:12 -04:00
Brad King
86ead0b5a3 CMake 3.15.0-rc4 2019-07-10 12:27:14 -04:00
Brad King
71fbebd1dc IWYU: Fix handling of <memory> standard header
An old workaround for `std::allocator_traits<>::value_type` lints from
IWYU on `std::vector<>` usage breaks IWYU's handling of `<memory>`.
Convert the workaround to use the same approach we already use for a
workaround of `std::__decay_and_strip<>::::__type` lints.  Then update
the `<memory>` inclusions to follow the now-correct IWYU lints.
2019-07-10 11:48:56 -04:00
Brad King
2161f810d9 Merge topic 'eclipse-init-members'
0a65768068 Eclpise: Fix compiler warnings about uninitialized member variables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3524
2019-07-10 09:24:23 -04:00
Brad King
29a1a68e90 Merge topic 'cuda-imported-library-device-linking'
8895449648 CUDA: Restore device linking to imported static library targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3526
2019-07-10 09:20:32 -04:00
Brad King
e902a11118 Merge branch 'cuda-imported-library-device-linking' into release-3.15
Merge-request: !3526
2019-07-10 08:57:47 -04:00
Kitware Robot
522b687c89 CMake Nightly Date Stamp 2019-07-10 00:01:08 -04:00
Craig Scott
f7eb765012 Merge topic 'add_cmake_find_use_package_registry'
447a96f590 vim: Update cmake.vim to include the CMAKE_FIND_USE variables
1d00ba9ccf Find: find_package prefers variable CMAKE_FIND_USE_REGISTRY
704e3a2ca8 Find: Correct spelling and layout issues in CMAKE_FIND_USE_ docs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3487
2019-07-09 19:32:54 -04:00
Alex Turbov
af75ab7645 Refactor: Use anonymous namespace instead of statics in cpack.cxx
Signed-off-by: Alex Turbov <i.zaufi@gmail.com>
2019-07-10 01:07:18 +03:00
Alex Turbov
0db458a0ce Refactor: Use anonymous namespace instead of statics
Signed-off-by: Alex Turbov <i.zaufi@gmail.com>
2019-07-10 01:06:58 +03:00
Alex Turbov
0328b64efd Refactor: Remove one-time used macros
Signed-off-by: Alex Turbov <i.zaufi@gmail.com>
2019-07-10 01:06:26 +03:00
Alex Turbov
b821f9ad62 Refactor: Optimize some stream output operations
- remove redundant `std::flush` right after `std::endl`
- join some string literals

Signed-off-by: Alex Turbov <i.zaufi@gmail.com>
2019-07-10 01:06:14 +03:00
Martin Gerhardy
09c1991895 Eclipse: Add option to set the resource encoding 2019-07-09 13:34:29 -04:00
Stephen Manz
adcbdb143c CTest: Clean up stdout and logfile output for Pass/Fail regex
For pass regex, display only the element that was found, rather
than all elements
Rename loop variable for fail regex, from pass to fail
For consistency, add space in output for pass
Add tests that find and don't find PASS_REGULAR_EXPRESSION, and a test
that finds FAIL_REGULAR_EXPRESSION, whose LastTest.log files are checked
using *-check.cmake.
2019-07-09 09:01:04 -07:00