Commit Graph
47352 Commits
Author SHA1 Message Date
Kitware Robot 0e362b23e1 CMake Nightly Date Stamp 2018-03-04 00:01:07 -05:00
Kitware Robot dbfdb90430 CMake Nightly Date Stamp 2018-03-03 00:01:12 -05:00
Kitware Robot dc13ed1f84 CMake Nightly Date Stamp 2018-03-02 00:01:06 -05:00
Brad King 7776ce98c3 Tests: Add cases for usage requirements of linked object libs
Add tests to cover transitive usage requirements on installation and
export of targets that link to object libraries.

Issue: #14778
2018-03-01 09:28:00 -05:00
Brad King bafe655b11 Help: Document linking behavior of OBJECT libraries
Inspired-by: Deniz Bahadir <dbahadir@benocs.com>
Issue: #14778
2018-03-01 09:27:50 -05:00
Deniz Bahadir 57538224d0 objlib: Link object-files from OBJECT libraries.
Note: This finally links the object-files of the `OBJECT` library from
the right-hand side of `target_link_libraries` to the target on the
left-hand side. However, this will only happen with directly linked
`OBJECT` libraries, not with `OBJECT` libraries "linked" through
property `INTERFACE_LINK_LIBRARIES` of a target on the right-hand side!

Fixes: #14778
2018-03-01 09:24:25 -05:00
Deniz Bahadir 9a7f039ee7 objlib: Allow OBJECT libraries to link to OBJECT libraries.
Note: This still does not link the object-files of the `OBJECT` library
from the right-hand side of `target_link_libraries` to the target on the
left-hand side. (In this particular case of another `OBJECT` library on
the left-hand side this would not make any sense anyway. The target on
the left-hand side has no link-step.)

Issue: #14778
2018-03-01 09:24:25 -05:00
Deniz Bahadir dfb6e84082 objlib: Allow other libraries to link to OBJECT libraries.
Note: This only allows `OBJECT` libraries to be on the right-hand side
of `target_link_libraries` but still does not link its object-files to
the target on the left-hand side.

Issue: #14778
2018-03-01 09:24:24 -05:00
Deniz Bahadir 51249e69ea objlib: Allow OBJECT libraries to link to other libraries.
The proper way to use libraries is now through `target_link_libraries`
for things such as usage requirements, compile definitions, include
directories, etc. To facilitate this, allow `OBJECT` libraries to "link"
to other libraries.

Co-Author: Ben Boeckel <ben.boeckel@kitware.com>
Issue: #14778
2018-03-01 09:24:24 -05:00
Brad King e22c45d4c9 Tests: Teach RunCMake to ignore AIX ld warnings about GNU atexit 2018-03-01 07:56:38 -05:00
Brad King 61f92e69c0 Merge topic 'object-library-export-as-interface'
ea0ce73a19 install,export: Maybe transform OBJECT libraries to INTERFACE libraries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1811
2018-03-01 07:54:20 -05:00
Kitware Robot e02f4f0660 CMake Nightly Date Stamp 2018-03-01 00:01:06 -05:00
Craig Scott 730eeceb75 Merge topic 'doc_test_prop_WORKING_DIRECTORY'
92a4c236f6 Help: Fix wrong default for WORKING_DIRECTORY test property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Brad King <brad.king@kitware.com>
Merge-request: !1806
2018-02-28 16:46:15 -05:00
Brad King ea0ce73a19 install,export: Maybe transform OBJECT libraries to INTERFACE libraries
Teach the `install` and `export` commands to support installing and
exporting `OBJECT` libraries without their object files.  Transform
them to `INTERFACE` libraries in such cases.

For `install(TARGETS)`, activate this when no destination for the object
files is specified.  For `export`, activate this only under Xcode with
multiple architectures when we have no well-defined object file
locations to give to clients.
2018-02-28 10:58:10 -05:00
Shane Parris 0a21d820d3 Remove c_str() from calls to converttorelativeformake in XCode Generator 2018-02-28 09:51:42 -05:00
Shane Parris f93cc4158e Refactor cmCacheManager::LoadCache to use ostringstream 2018-02-28 09:34:47 -05:00
Shane Parris 915b71010c Enhance RunCMake test coverage for file(GLOB) 2018-02-28 09:34:47 -05:00
Shane Parris fcaa134c6c Refactor HandleGlobCommand 2018-02-28 09:34:47 -05:00
Shane Parris cf5d0b49e8 Adjust class description in cmFileTimeComparison.h 2018-02-28 09:34:47 -05:00
Brad King 1ac042aa67 Do not generate rules for .def generation where not supported
Our `cmake -E __create_def` helper used for `WINDOWS_EXPORT_ALL_SYMBOLS`
and merging of multiple `.def` files is available only with CMake hosted
on Windows.  However, we may generate use of it on other platforms since
commit v3.9.0-rc1~405^2 (Support WINDOWS_EXPORT_ALL_SYMBOLS with `.def`
files, 2017-03-13) when multiple `.def` files are listed.  This results
in a build error because the tool doesn't exist.

Fix our logic to avoid using the tool on non-Windows platforms.  Instead
silently ignore all but the first `.def` source as we did before.

Issue: #17773
2018-02-28 08:52:19 -05:00
Brad King 82de05088f Merge topic 'co-compile-with-launcher'
eaf9f69d41 Fix combined use of compiler launcher with lint tools

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1791
2018-02-28 08:17:33 -05:00
Brad King 74dac86c76 Merge topic 'findjava-jar-in-dev-component'
596a7f262a FindJava: Add Java_JAR_EXECUTABLE to a component: Development

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1807
2018-02-28 08:16:52 -05:00
Brad King 514e845f4e Merge topic 'ideoptions-string'
8182ebca32 cmIDEOptions: use std::string

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1804
2018-02-28 08:16:14 -05:00
Kitware Robot cc87b1f0d7 CMake Nightly Date Stamp 2018-02-28 00:01:10 -05:00
Ilya A. Kriveshko eaf9f69d41 Fix combined use of compiler launcher with lint tools
When using ccache with clang-tidy, ccache needs to wrap compiler
invocation, rather than cmake invocation.  But it needs to do it without
affecting the command line that iwyu-like tools are receiving.

With this fix, if __run_co_compile is used, compile launcher is passed
using the new --launcher option, but if __run_co_compile is not needed,
compiler launcher is prepended to the command line as before.

To better illustrate the change: with this fix if running clang-tidy
with CXX_COMPILER_LAUNCHER set to "/usr/bin/time;-p;ccache" (time -p
added strictly for illustration purposes), the command line changes
from:

    /usr/bin/time -p ccache cmake -E __run_co_compile \
        --tidy=clang-tidy ... -- g++ ...

to:

    cmake -E __run_co_compile \
        --launcher="/usr/bin/time;-p;ccache" \
        --tidy=clang-tidy ... -- g++ ...

This allows the compiler to be run via the launcher, but leaves tidy
(& friends) invocations unaffected.

Fixes: #16493
2018-02-27 13:07:04 -05:00
Giel van Schijndel 596a7f262a FindJava: Add Java_JAR_EXECUTABLE to a component: Development
All discovered executables were placed in a component, except for 'jar'.
This forced the use of find_package(Java) without any component
specification.  This commit adds 'jar' to the 'Development' component,
because that's what it's used for.
2018-02-27 17:32:09 +01:00
Brad King 4da456c7fe Merge branch 'release-3.11' 2018-02-27 10:40:05 -05:00
Brad King ac925ec09e CMake 3.11.0-rc2 v3.11.0-rc2 2018-02-27 09:34:35 -05:00
Brad King e73016bc06 Merge branch 'release-3.11' 2018-02-27 09:33:52 -05:00
Brad King 0b8db75b47 Merge topic 'contract-plplot'
4964fe1e Tests: Update PLplot contract test repository URL

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1801
2018-02-27 09:27:43 -05:00
Brad King 2bcccd07bd Merge topic 'modules-restore-path-suffixes'
7b1c1424 Modules: Restore recently removed search path suffixes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1802
2018-02-27 09:26:31 -05:00
Brad King 2edd5cb9e0 Merge topic 'unixtimefix'
e1cd936c Tests: Fix TIMESTAMP-UnixTime test under SOURCE_DATE_EPOCH=1

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1800
2018-02-27 09:25:48 -05:00
Craig Scott 92a4c236f6 Help: Fix wrong default for WORKING_DIRECTORY test property 2018-02-27 22:28:33 +11:00
Kitware Robot 464ae1bcc0 CMake Nightly Date Stamp 2018-02-27 00:01:09 -05:00
Vitaly Stakhovsky 8182ebca32 cmIDEOptions: use std::string 2018-02-26 11:24:45 -05:00
Brad King e708dac65f Merge branch 'modules-restore-path-suffixes' into release-3.11
Merge-request: !1802
2018-02-26 10:53:16 -05:00
Brad King 7b1c14241d Modules: Restore recently removed search path suffixes
Refactoring in commit v3.11.0-rc1~293^2~4 (Modules: Remove paths set as
global Unix prefixes, 2017-11-20) removed `PATH_SUFFIXES` options that
appeared to be used to cover subdirectories of the `PATHS` options that
were also removed.  However, the path suffixes also apply to other
search paths and so should not be removed.  Restore them.

Fixes: #17760
2018-02-26 10:52:11 -05:00
Brad King be9731965e Merge branch 'unixtimefix' into release-3.11
Merge-request: !1800
2018-02-26 10:36:26 -05:00
Bernhard M. Wiedemann e1cd936c62 Tests: Fix TIMESTAMP-UnixTime test under SOURCE_DATE_EPOCH=1
The test was expecting timestamps on day 1 in 1970 to start at 86400 but
they actually started at 0.  This worked without `SOURCE_DATE_EPOCH=1`
because after 1972, leap days compensated the offset.

Fixes: #17762
2018-02-26 10:35:30 -05:00
Brad King 4964fe1e5a Tests: Update PLplot contract test repository URL
Use a `git://` protocol URL documented by the repository hosting
infrastructure.  After some updates to that infrastructure, the
`https://` URL with the `.git` extension no longer works reliably.
2018-02-26 09:33:56 -05:00
Brad King f7430b2538 Merge topic 'extend_suppress_regeneration'
b6ef4bc3 Document and extend the CMAKE_SUPPRESS_REGENERATION variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1792
2018-02-26 09:02:07 -05:00
Brad King ba806600f7 Merge topic 'outputconverter_speedup'
8ab3660a cmOutputConverter: Inline some functions and avoid string re-allocations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Pavel Solodovnikov <hellyeahdominate@gmail.com>
Merge-request: !1788
2018-02-26 09:01:24 -05:00
Brad King 3bc18cd0fb Merge topic 'getsource_optimize'
2d1e5ada cmMakefile: Improve performance of GetSource for known files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1764
2018-02-26 09:00:51 -05:00
Brad King e4df2313c1 Merge topic 'ipo-support'
a18147e9 MSVC,Clang,Flang: Add IPO support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1721
2018-02-26 08:59:32 -05:00
Brad King 1f7ad8ab5c Merge topic 'project-references-csharp-17678'
076a356c VS: Support C# project references

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1752
2018-02-26 08:57:25 -05:00
Brad King 8621a26c06 Merge topic 'vs-cpp-improvements'
b723fe3d VS: Convert loops to C++11, other C++ improvements

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1786
2018-02-26 08:56:09 -05:00
Kitware Robot 25613b9fa4 CMake Nightly Date Stamp 2018-02-26 00:01:05 -05:00
Kitware Robot b595381822 CMake Nightly Date Stamp 2018-02-25 00:01:07 -05:00
Kitware Robot a4e7538a74 CMake Nightly Date Stamp 2018-02-24 00:01:37 -05:00
Frank Winklmeier 8ab3660a1e cmOutputConverter: Inline some functions and avoid string re-allocations
Use std::string (with correct initial size) in cmOutputConverter::Shell__GetArgument
instead of ostringstream. This avoids several re-allocations of the
string buffer. In addition, convert some of the private static members into
inline free functions to avoid function calls.
2018-02-23 17:23:10 +01:00