Commit Graph

26954 Commits

Author SHA1 Message Date
Brad King 827b498a02 Merge topic 'static-library-flags'
59f2aa63e4 Swift: fix static library handling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3576
2019-07-22 08:18:43 -04:00
Brad King aaf3859e0a Merge topic 'refactor-usage-requirements'
2682714a3f cmGeneratorTarget: Refactor usage requirement genex evaluation
3cbc15773f cmGeneratorTarget: Move static functions to anonymous namespace
33494a507d cmGeneratorTarget: Order usage requirement processing logic consistently
c131e62f7b cmGeneratorTarget: Remove unnecessary copy to local variable
fab72918c9 cmGeneratorTarget: Remove unused member of internal class
95d3598e04 cmGeneratorExpressionDAGChecker: Avoid const_cast

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Marc Chevrier <marc.chevrier@gmail.com>
Merge-request: !3578
2019-07-22 08:17:41 -04:00
Craig Scott 9e42075498 Merge topic 'cpack-install-scripts'
5f96601675 CPack: Introduce CPACK_INSTALL_SCRIPTS variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3531
2019-07-22 07:04:00 -04:00
Craig Scott f4131e4e1b Merge topic 'feature/message-indent'
5f6fd917a3 message(): Control indentation via CMAKE_MESSAGE_INDENT

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3464
2019-07-22 07:02:50 -04:00
Kitware Robot f3bbbb42f1 CMake Nightly Date Stamp 2019-07-22 00:01:06 -04:00
Alex Turbov 5f96601675 CPack: Introduce CPACK_INSTALL_SCRIPTS variable
The singular name `CPACK_INSTALL_SCRIPT` has existed but was not linked
from the CPack documentation.  Also, it supported multiple values and
should have had a plural name.  Add a plural-named alternative now.
If both `CPACK_INSTALL_SCRIPTS` and `CPACK_INSTALL_SCRIPT` are set then
ignore the latter with a warning.

Signed-off-by: Alex Turbov <i.zaufi@gmail.com>
2019-07-22 02:01:44 +03:00
Kitware Robot 82aa6941e9 CMake Nightly Date Stamp 2019-07-21 00:01:05 -04:00
Alex Turbov 5f6fd917a3 message(): Control indentation via CMAKE_MESSAGE_INDENT 2019-07-21 10:19:30 +10:00
Kitware Robot 0c6e27bff1 CMake Nightly Date Stamp 2019-07-20 00:01:11 -04:00
Brad King 2682714a3f cmGeneratorTarget: Refactor usage requirement genex evaluation
Evaluate usage requirement generator expressions fully before entering
the processing loops.  This allows us to evaluate and collect all
entries up front and then have only one call to the loop over them.
This also allows `AddInterfaceEntries` to immediately evaluate the
generator expressions it synthesizes, which will enable later
optimization.
2019-07-19 13:38:30 -04:00
Brad King 3cbc15773f cmGeneratorTarget: Move static functions to anonymous namespace 2019-07-19 13:05:21 -04:00
Kyle Edwards 16bb46eaf3 Merge topic 'skip_regular_expression'
5dbd9c8583 Vim: Add SKIP_REGULAR_EXPRESSION test property to vim syntax file
407dd1a910 Help: Add documentation for SKIP_REGULAR_EXPRESSION test property
d7955d4e5d Tests: Create test for SKIP_REGULAR_EXPRESSION test property
4f1dec86a5 CTest: Add SKIP_REGULAR_EXPRESSION test property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3570
2019-07-19 12:14:27 -04:00
Brad King 573f1fc19b Merge topic 'command-final-action'
732dd344b9 cmCommand: remove FinalPass from interface
fbee46e262 cmVariableWatchCommand: Port away from FinalPass
360d415592 cmLoadCommandCommand: Port away from FinalPass
316e40baec cmInstallProgramsCommand: Port away from FinalPass
7bc88b9165 cmInstallFilesCommand: Port away from FinalPass
6a1a3763ee cmFLTKWrapUICommand: Port away from FinalPass
20169f0b8d cmExportLibraryDependenciesCommand: Port away from FinalPass
a74dad3bd3 cmMakefile: decouple FinalAction from cmCommand
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3562
2019-07-19 12:09:03 -04:00
Brad King ca7ec2e188 Merge topic 'ctest-done-hash'
da79075c4d CTest: Generate Done.xml before calculating its hash

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3563
2019-07-19 12:02:53 -04:00
Betsy McPhail da79075c4d CTest: Generate Done.xml before calculating its hash
Fixes: #19489
2019-07-19 12:00:30 -04:00
Brad King f79e684678 Merge topic 'QCC-ninja-support'
8738e2584a cmGlobalNinjaGenerator: Use gnu compatible paths with QCC

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3567
2019-07-19 12:00:12 -04:00
Brad King a2daa3ef27 Merge topic 'modernize_std_unique_ptr'
3bed969dac cmMakefile: Modernize AddFunctionBlocker method to accept a std::unique_ptr
faacb90a13 cmELF: Modernize to use std::unique_ptr instead of new/delete

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3548
2019-07-19 11:59:04 -04:00
Brad King 6618cbf38a Merge topic 'vs-asmlist-dir'
c1fc6c80c7 VS: Place intermediate files in the "ASM List Location" next to objects

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3569
2019-07-19 11:55:48 -04:00
Brad King 33494a507d cmGeneratorTarget: Order usage requirement processing logic consistently
Re-order logic in all `process*` methods so that they all evaluate
generator expressions at the beginning of their loops.
2019-07-19 09:58:12 -04:00
Brad King c131e62f7b cmGeneratorTarget: Remove unnecessary copy to local variable 2019-07-19 09:58:12 -04:00
Brad King fab72918c9 cmGeneratorTarget: Remove unused member of internal class 2019-07-19 09:58:12 -04:00
Brad King 95d3598e04 cmGeneratorExpressionDAGChecker: Avoid const_cast
Make a member mutable to avoid casting away const of a whole object.
2019-07-19 09:58:12 -04:00
Kitware Robot ac000e29da CMake Nightly Date Stamp 2019-07-19 00:01:07 -04:00
Saleem Abdulrasool 59f2aa63e4 Swift: fix static library handling
Handle static libraries similar to shared libraries.  Do not pass along
the shared library flags raw as that will pass flags for the linker to
the driver which is incorrect.
2019-07-18 19:52:48 -07:00
Gabor Bencze 4f1dec86a5 CTest: Add SKIP_REGULAR_EXPRESSION test property 2019-07-18 11:52:05 -04:00
Brad King c1fc6c80c7 VS: Place intermediate files in the "ASM List Location" next to objects
The `AssemblerListingLocation` setting in VS project files is meant for
intermediate files created during the build much like object files.
When the VS 7 generator was first under development, commit 49aebe6c99
(new arch, 2002-09-04) placed both object files and the ASM list
location in the same directory.  Later commit f9aef0e422 (Generator now
creates a separate intermediate files directory for each target,
2005-07-27) moved the object files to a per-target directory but the
ASM list location was not moved with them.  Move it now.

Fixes: #19480
2019-07-18 11:40:58 -04:00
Daniel Pfeifer 732dd344b9 cmCommand: remove FinalPass from interface 2019-07-18 17:35:43 +02:00
Daniel Pfeifer fbee46e262 cmVariableWatchCommand: Port away from FinalPass 2019-07-18 17:35:43 +02:00
Daniel Pfeifer 360d415592 cmLoadCommandCommand: Port away from FinalPass 2019-07-18 17:35:43 +02:00
Daniel Pfeifer 316e40baec cmInstallProgramsCommand: Port away from FinalPass 2019-07-18 11:53:46 +02:00
Daniel Pfeifer 7bc88b9165 cmInstallFilesCommand: Port away from FinalPass 2019-07-18 11:53:46 +02:00
Daniel Pfeifer 6a1a3763ee cmFLTKWrapUICommand: Port away from FinalPass 2019-07-18 11:53:46 +02:00
Daniel Pfeifer 20169f0b8d cmExportLibraryDependenciesCommand: Port away from FinalPass 2019-07-18 11:53:46 +02:00
Daniel Pfeifer a74dad3bd3 cmMakefile: decouple FinalAction from cmCommand 2019-07-18 11:53:46 +02:00
Regina Pfeifer d26e6cb1c2 cmLoadCommandCommand: Code cleanup 2019-07-18 11:49:28 +02:00
Kitware Robot 94b883d9d3 CMake Nightly Date Stamp 2019-07-18 00:01:08 -04:00
Brad King 44a6468304 Merge topic 'aix-exe-implib'
2fa920c0cd AIX: Create import library for executables with exports

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3561
2019-07-17 09:16:07 -04:00
Sebastian Holtermann 3bed969dac cmMakefile: Modernize AddFunctionBlocker method to accept a std::unique_ptr 2019-07-17 14:58:27 +02:00
Sebastian Holtermann faacb90a13 cmELF: Modernize to use std::unique_ptr instead of new/delete 2019-07-17 14:58:27 +02:00
Brad King 79bcf4e165 CMake 3.15.0 2019-07-17 07:54:31 -04:00
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
Samuel Ostlund 8738e2584a cmGlobalNinjaGenerator: Use gnu compatible paths with QCC 2019-07-16 14:06:34 -07:00
Brad King 2fa920c0cd AIX: Create import library for executables with exports
On AIX, plugins meant to be loaded into executables via `dlopen` must be
linked with access to a list of symbols exported from the executable in
order to use them (when not using runtime linking).  The AIX linker
supports specifying this list as an "import file" passed on the command
line either via the `-bI:...` option or (with a leading `#! .` line) as
a normal input file like any other library file.

The linker import file plays the same role on AIX as import libraries do
on Windows.  Teach CMake to enable its import library abstraction on AIX
for executables with the `ENABLE_EXPORTS` target property set.  Teach
our internal `ExportImportList` script to optionally generate a leading
`#! .` line at the top of the generated export/import list.  Update our
rule for linking an executable with exports to generate a public-facing
"import library" implemented as an AIX linker import file.

With this approach, our existing infrastructure for handling import
libraries on Windows will now work for AIX linker import files too:

* Plugins that link to their executable's symbols will be automatically
  linked using the import file on the command line.

* The executable's import file will be (optionally) installed and
  exported for use in linking externally-built plugins.

This will allow executables and their plugins to build even if we later
turn off runtime linking.

Issue: #19163
2019-07-16 14:15:13 -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
Brad King 185e6a1288 Merge branch 'find_package-fix-NO_MODULE' into release-3.15
Merge-request: !3557
2019-07-16 09:12:56 -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