Commit Graph

25513 Commits

Author SHA1 Message Date
Regina Pfeifer 32cb564bea clang-tidy: Remove redundant member initializations 2018-12-15 10:51:47 +01:00
Regina Pfeifer 7ffa6bf999 cmUVHandlePtr: Use inherited constructors 2018-12-15 10:23:23 +01:00
Kitware Robot b95b935ccf CMake Nightly Date Stamp 2018-12-15 00:01:04 -05:00
Kitware Robot d84b2cc334 CMake Nightly Date Stamp 2018-12-14 00:01:04 -05:00
Brad King e2d0da3366 Merge topic 'vs_deploy_content_fix'
b5b63da088 VS: Fix Deploy content in .csproj files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2713
2018-12-13 10:03:52 -05:00
Brad King ed1c375c05 Merge topic 'vs-csharp-ref-dot'
ea3d60cffa VisualStudio10TargetGenerator: support C# refs with '.' in file name.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2729
2018-12-13 10:03:00 -05:00
Brad King eef87a37cd Merge topic 'server-mode-install-fix'
c150bf087c Server mode: Fix regression of hasInstallRule

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2735
2018-12-13 10:01:34 -05:00
Brad King 04a9145af5 Merge topic 'update-kwsys'
b29d96701b Merge branch 'upstream-KWSys' into update-kwsys
8ca8daeb47 KWSys 2018-12-12 (abb8c680)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2733
2018-12-13 10:00:27 -05:00
Brad King 0be5ed7128 Merge topic 'custom-string'
2d68b2c593 String: Add str_if_stable() as a const alternative to str()
a0841b59bd String: Add support for a ""_s string literal syntax
9d5fe8e96a String: Add 'borrow' member to construct borrowing instances
80802a002c String: Add support for concatenation by operator+
ff69763ca0 String: Add a custom string type
410a3e4b22 Add support for using C++17 string_view or a fallback

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Daniel Pfeifer <daniel@pfeifer-mail.de>
Acked-by: Pavel Solodovnikov <hellyeahdominate@gmail.com>
Merge-request: !2578
2018-12-13 09:58:50 -05:00
Brad King dc90cd6877 Merge topic 'fileapi'
b9c6f08276 Help: Add release note for fileapi feature
4b6b2a571c fileapi: extend codemodel v2 with directory details
eb8c7676a4 fileapi: extend codemodel v2 with a project model
42f0125ceb fileapi: Add test for cmakeFiles v1
6615408193 fileapi: add cmakeFiles v1
3f6ee75a66 fileapi: Add test for cache v2
7489e95b8e fileapi: add cache v2
ea0a060168 fileapi: Add test for codemodel v2
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2706
2018-12-13 09:57:59 -05:00
Kitware Robot dea01ac30a CMake Nightly Date Stamp 2018-12-13 00:01:05 -05:00
Brad King 4b6b2a571c fileapi: extend codemodel v2 with directory details
Issue: #18398
Co-Author: Kyle Edwards <kyle.edwards@kitware.com>
2018-12-12 15:12:26 -05:00
Brad King eb8c7676a4 fileapi: extend codemodel v2 with a project model
Offer clients a `project()`-centric view of the build system.  This is
similar to the directory-centric view but consolidates subdirectories
that do not call `project()` with a new project name.

Issue: #18398
Co-Author: Kyle Edwards <kyle.edwards@kitware.com>
2018-12-12 15:12:26 -05:00
Kyle Edwards c150bf087c Server mode: Fix regression of hasInstallRule
The introduction of policy CMP0082, to run subdirectory install
rules in the correct order, caused a regression in server mode
where any directory with a subdirectory is marked as having an
install rule even if no "real" install rules are present. This
change fixes this regression for server mode.
2018-12-12 10:29:50 -05:00
Brad King 6615408193 fileapi: add cmakeFiles v1
Issue: #18398
2018-12-12 09:46:13 -05:00
Brad King 7489e95b8e fileapi: add cache v2
Start with v2 to distinguish it from server-mode v1.

Issue: #18398
2018-12-12 09:46:13 -05:00
Brad King 6a6900f616 Merge topic 'object-library-link'
bab24e782c target_link_libraries: Propagate dependencies of object libraries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2725
2018-12-12 08:32:17 -05:00
Brad King 71e74b4ae4 Merge topic 'fix-configure-line-number'
fe9a16c80f cmMakefile: Fix @CMAKE_CURRENT_LIST_LINE@ for ExpandVariablesInStringNew
dda4755b46 cmMakefile: Fix ConfigureString not passing filename and line

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2675
2018-12-12 08:30:45 -05:00
Artur Ryt fe9a16c80f cmMakefile: Fix @CMAKE_CURRENT_LIST_LINE@ for ExpandVariablesInStringNew
Added check for variable name in @@ evaluation and test for
configuring @CMAKE_CURRENT_LIST_LINE@ with new CMP0053

Fixes: #18646
2018-12-12 08:29:14 -05:00
Artur Ryt dda4755b46 cmMakefile: Fix ConfigureString not passing filename and line
It enables to use CMAKE_CURRENT_LIST_LINE in string(CONFIGURE)
Added tests for it for ${} and @@ notattion for old CMP0053
and ${} for new
2018-12-12 08:29:01 -05:00
Brad King abccf484e3 Merge topic 'default-test-timeout'
3e0eb3307f Help: clarify documentation of ctest --timeout

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2721
2018-12-12 08:20:43 -05:00
Brad King ed5087e32c Merge topic 'output-converter-simplify'
33f08eec18 cmOutputConverter: Moved ContainedInDirectory to cmStateDirectory
87e810f223 cmOutputConverter: Moved ForceToRelativePath to cmSystem

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2665
2018-12-12 08:19:49 -05:00
Brad King b29d96701b Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2018-12-12 (abb8c680)
2018-12-12 08:14:53 -05:00
Brad King 2d68b2c593 String: Add str_if_stable() as a const alternative to str()
The `str()` method must be non-const because it may need to internally
mutate the representation of the string in order to have an owned
`std::string` instance holding the exact string (not a superstring).
This is inconvenient in contexts where we can ensure that no mutation
is needed to get a `std::string const&`.

Add a `str_if_stable() const` method that returns `std::string const*`
so we can return `nullptr` if if mutation would be necessary to get a
`std::string const&`.  Add supporting `is_stable() const` and
`stabilize()` methods to check and enforce stable availability of
`std::string const&`.  These can be used to create `String const`
instances from which we can still get a `std::string const&` via
`*str_if_stable()` by maintaining the stability invariant at runtime.
2018-12-12 08:10:16 -05:00
Brad King a0841b59bd String: Add support for a ""_s string literal syntax
Create a `static_string_view` type that binds only to the static storage
of string literals.  Teach `cm::String` to borrow from these implicitly.
2018-12-12 08:10:15 -05:00
Brad King 9d5fe8e96a String: Add 'borrow' member to construct borrowing instances
This will allow creation of `cm::String` instances that borrow from
non-owned storage.  It is the caller's responsibility to ensure that
no copy of the instance outlives the borrowed buffer.
2018-12-12 08:10:15 -05:00
Brad King 80802a002c String: Add support for concatenation by operator+
Use expression templates to collect the entire expression and
pre-allocate a string with the final length before concatenating
the pieces.
2018-12-12 08:10:15 -05:00
Brad King ff69763ca0 String: Add a custom string type
Create a `cm::String` type that holds a view of a string buffer and
optionally shares ownership of the buffer.  Instances can either
borrow longer-lived storage (e.g. static storage of string literals)
or internally own a `std::string` instance.  In the latter case,
share ownership with copies and substrings.  Allocate a new internal
string only on operations that require mutation.

This will allow us to recover string sharing semantics that we
used to get from C++98 std::string copy-on-write implementations.
Such implementations are not allowed by C++11 so code our own in
a custom string type instead.
2018-12-12 08:10:15 -05:00
Brad King 3e922ceb5e fileapi: add codemodel v2
Start with v2 to distinguish it from server-mode v1.

Issue: #18398
2018-12-12 06:40:10 -05:00
Brad King b83fe27d8d fileapi: Report cmake generator in reply index file 2018-12-12 06:40:10 -05:00
Brad King 7ee0abbde1 fileapi: Add helper to create and reference a json reply file 2018-12-12 06:40:10 -05:00
Brad King 276fdf2993 fileapi: Add protocol v1 support for stateful per-client queries
Add support for client-owned *stateful* query files.  These allow
clients to request a list of versions of each object kind and get only
the first-listed version that CMake recognizes.  Since clients own their
stateful query files they can mutate them over time.  As a client
installation is updated it may update the queries that it writes to
build trees to get newer object versions without paying the cost of
continuing to generate older versions.

Issue: #18398
2018-12-12 06:40:10 -05:00
Brad King 8fce59848b fileapi: Add protocol v1 support for client-specific query files
Add support for client-owned stateless query files.  These allow clients
to *own* requests for major object versions and get all those recognized
by CMake.

Issue: #18398
2018-12-12 06:40:10 -05:00
Brad King eb2ec41a04 fileapi: Add protocol v1 infrastructure with support for shared query files
Add a file-based API that clients may use to get semantic information
about the buildsystem that CMake generates.  Clients will write query
files under a designated location in the build tree, and CMake will
write reply files for clients to read.

Start with support for shared stateless query files.  These allow
clients to share requests for major object versions and get all those
recognized by CMake.  Once any client has written a shared request to a
build tree it will persist.  Other clients will not need to overwrite
the request (since it is stateless) and should not remove it either.

For now we add only an undocumented object kind to use for testing the
query and reply infrastructure.  Object kinds providing real semantic
information will be added later.

Issue: #18398
2018-12-12 06:39:30 -05:00
Kitware Robot c337b2a0b4 CMake Nightly Date Stamp 2018-12-12 00:01:03 -05:00
Wil Stark ea3d60cffa VisualStudio10TargetGenerator: support C# refs with '.' in file name.
Fixes: #18696
2018-12-11 10:47:48 -08:00
Brad King 410a3e4b22 Add support for using C++17 string_view or a fallback
Define a `cm::string_view` type implemented via C++17 `std::string_view`
when available.  Provide a fallback implementation for C++11 and C++14
compilers.

The fallback implementation was written by reading documentation of the
standard spec.  We have no dedicated tests for it, but it will be
covered by tests of its clients later.
2018-12-11 13:19:39 -05:00
Brad King 4a8898cd6d cmTimestamp: Expose CreateTimestampFromTimeT publicly 2018-12-11 12:50:21 -05:00
Brad King 03d40110dc cmStateSnapshot: Add method to get current directory snapshot 2018-12-11 12:50:21 -05:00
Kitware Robot cb995ddea2 CMake Nightly Date Stamp 2018-12-11 00:01:07 -05:00
Kyle Edwards bab24e782c target_link_libraries: Propagate dependencies of object libraries
Prior to this commit, linking against an object library did not
propagate private link dependencies of object libraries to their
consuming targets. This change implements the correct behavior.

Fixes: #18692
Co-Author: Brad King <brad.king@kitware.com>
2018-12-10 14:57:28 -05:00
Brad King 0f7cca1dae Merge topic 'autogen-cleanups'
7630eb1975 cmQtAutoGenInitializer: Reduce code duplication

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Tobias Hunger <tobias.hunger@gmail.com>
Merge-request: !2689
2018-12-10 08:26:05 -05:00
Brad King 2e2455cbd3 Merge topic 'ninja-win-long-commands'
cfd808ff19 cmLocalNinjaGenerator: Prevent echoing of lines in ninja generated batch files
2c3f2dfa5a cmLocalNinjaGenerator: Report line of failure in ninja generated batch file
2295040e85 cmLocalNinjaGenerator: Propagate failures from batch file back to ninja

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2701
2018-12-10 08:25:03 -05:00
Brad King d3983f7fc6 Merge topic 'SWIG'
dff28141dc UseSWIG: add management of SWIG option -module
7b3d4799f8 Help: update policy 0078 documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2669
2018-12-10 08:23:42 -05:00
Brad King 0bfe96a8c3 Merge topic 'file-read_symlink'
31840e363f file: Fix formatting of error in SIZE sub-command
98a39be6cf file: Add READ_SYMLINK sub-command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2705
2018-12-10 08:21:40 -05:00
Brad King d99e1cca20 Merge topic 'cpack-status-callback'
4a3ae1710e CPack/External: Fix status messages of staging scripts

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2696
2018-12-10 08:17:06 -05:00
Brad King 5f3b067bee Merge topic 'autogen_revert_implicit_includes'
e5a4007a3b Merge branch 'backport-autogen_revert_implicit_includes'
4be7f38d57 Autogen: Revert passing compiler implicit includes to moc
187481d4d9 Autogen: Revert passing compiler implicit includes to moc

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2709
2018-12-10 08:16:20 -05:00
Kitware Robot 4b513c0ca3 CMake Nightly Date Stamp 2018-12-10 00:01:04 -05:00
Regina Pfeifer 3e0eb3307f Help: clarify documentation of ctest --timeout 2018-12-09 22:10:31 +01:00
Kitware Robot dd8c575932 CMake Nightly Date Stamp 2018-12-09 00:01:03 -05:00