CMake merge requestshttps://gitlab.kitware.com/cmake/cmake/-/merge_requests2017-01-09T16:28:16-05:00https://gitlab.kitware.com/cmake/cmake/-/merge_requests/336Server-mode: Call ResetErrorOccured before configure2017-01-09T16:28:16-05:00Tobias HungerServer-mode: Call ResetErrorOccured before configureCloses #16506.
This sits on top of the release branch as I think this is a low-risk fix.Closes #16506.
This sits on top of the release branch as I think this is a low-risk fix.3.7.2Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/375server-mode: Do not crash when running into INTERFACE_LIBRARY2017-01-10T09:35:13-05:00Tobias Hungerserver-mode: Do not crash when running into INTERFACE_LIBRARYPlease consider this for the release branch!
This is a bit ugly, but I did not want to get into major surgery to properly support `INTERFACE_LIBRARY` in the release branch.
Ideally there would be a way to report the include directo...Please consider this for the release branch!
This is a bit ugly, but I did not want to get into major surgery to properly support `INTERFACE_LIBRARY` in the release branch.
Ideally there would be a way to report the include directories/defines that are *exported* by this kind of target, so that I can scan for the include files that are part of this.
On the other hand: Maybe this is not really necessary since the targets linking against interface libraries do report the include paths that they got from the interface library.
Closes: #16539
3.7.2Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/388Don't try watching empty subdirectories2017-01-12T10:25:58-05:00AleixDon't try watching empty subdirectoriescmsys::SystemTools::SplitPath will return empty segments on paths where
there's duplicaded consequent slashes (e.g. /home/dir/my//stuff). This
makes the cmFileWatcher choke.
This patch modifies the cmFileMonitor so that it will skip thes...cmsys::SystemTools::SplitPath will return empty segments on paths where
there's duplicaded consequent slashes (e.g. /home/dir/my//stuff). This
makes the cmFileWatcher choke.
This patch modifies the cmFileMonitor so that it will skip these empty
segments.
Solves CMake issue #165313.7.2Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/611server-mode: Make CMAKE_HOME_DIRECTORY more reliable2017-03-23T08:46:32-04:00Tobias Hungerserver-mode: Make CMAKE_HOME_DIRECTORY more reliableThis basically mirrors what "normal" cmake does.
Topic-rename: server-mode-fix-home-dir-check
This basically mirrors what "normal" cmake does.
Topic-rename: server-mode-fix-home-dir-check
3.8.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/963cmake: Fix default file translate mode when using libuv2018-01-23T09:08:47-05:00Brad Kingcmake: Fix default file translate mode when using libuvOn Windows, libuv's one-time initialization changes the C runtime
library's `_fmode` setting to `_O_BINARY`, thus causing files to open
as binary after that instead of the default `_O_TEXT` mode. See
upstream libuv issue 840. Work aro...On Windows, libuv's one-time initialization changes the C runtime
library's `_fmode` setting to `_O_BINARY`, thus causing files to open
as binary after that instead of the default `_O_TEXT` mode. See
upstream libuv issue 840. Work around the problem by performing libuv
initialization early and then restoring `_fmode`.
In particular, this currently affects server mode. Without this fix,
the `_fmode` setting changes when the server mode initializes libuv.
Fixes: #169623.9.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1015Server-mode: Document protocol versions more clearly2017-07-07T16:17:43-04:00Tobias HungerServer-mode: Document protocol versions more clearlyTalking to @ivan I got the impression that the documentation on protocol versions and how to use them is not clear enough. So let's add a couple of words:-)Talking to @ivan I got the impression that the documentation on protocol versions and how to use them is not clear enough. So let's add a couple of words:-)3.10.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/992Extending CMake-server protocol to report target locations2017-12-06T13:21:04-05:00Ivan ShcherbakovExtending CMake-server protocol to report target locationsThis commit introduces a change to the CMake-server protocol so that it will now report the locations in CMakeLists.txt for all targets and target-related statements. This allows IDEs like VisualGDB to locate the statements and automatic...This commit introduces a change to the CMake-server protocol so that it will now report the locations in CMakeLists.txt for all targets and target-related statements. This allows IDEs like VisualGDB to locate the statements and automatically edit them when the user adds or removes files or changes target properties via GUI.
An example of the new target output is shown below:
```json
"targets": [
{
"crossReferences": {
"backtrace": [
{
"lineNumber": 7,
"name": "add_executable",
"path": "C:/full/path/CMakeLists.txt"
},
{
"lineNumber": 0,
"name": "",
"path": "c:/full/path/CMakeLists.txt"
}
],
"relatedStatements": [
{
"backtrace": [
{
"lineNumber": 8,
"name": "target_link_libraries",
"path": "c:/full/path/CMakeLists.txt"
},
{
"lineNumber": 0,
"name": "",
"path": "c:/full/path/CMakeLists.txt"
}
],
"statementType": "target_link_libraries"
}
]
},
<...>
"type": "EXECUTABLE"
}
]
```
Topic-rename: server-target-backtraces 3.10.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/552Server refactor2017-11-20T09:32:01-05:00jdavidbergerServer refactorThis MR is as requested from !483
Main contributions of this MR:
* Separate out connection logic from buffering strategy logic
* Moved minor protocol issues out of connection class (namely send greeting)
* Moved ownership of event loo...This MR is as requested from !483
Main contributions of this MR:
* Separate out connection logic from buffering strategy logic
* Moved minor protocol issues out of connection class (namely send greeting)
* Moved ownership of event loop to server class
* Added semaphore wakeup (libuv_async) to server so that new reads / writes would not stall the other loop events
* Differentiated between responding to a specific request/connection and broadcast to all connections. This allows for (eventually) multiple connections per server.
The first commit in the MR is a little heavier than I'd like and I can split it out more if needed.3.10.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1096server: Fix crash on missing cache entries2017-08-03T09:35:32-04:00Brad Kingserver: Fix crash on missing cache entriesTest for nullptr before constructing std::string.
Ported from [GitHub PR 311](https://github.com/Kitware/CMake/pull/311).Test for nullptr before constructing std::string.
Ported from [GitHub PR 311](https://github.com/Kitware/CMake/pull/311).3.9.1Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/977cmServerProtocol: allow 'cache' request before 'configure'2017-08-15T13:17:52-04:00Daniel PfeifercmServerProtocol: allow 'cache' request before 'configure'The check `if (this->m_State < STATE_CONFIGURED)` is superfluous.
Fixes: #16989The check `if (this->m_State < STATE_CONFIGURED)` is superfluous.
Fixes: #16989Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1143Lint fixes2017-08-16T10:51:50-04:00Daniel PfeiferLint fixes3.10.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1149server: backport to C++11 && always enable2017-08-28T10:23:47-04:00Daniel Pfeiferserver: backport to C++11 && always enable3.10.0Daniel PfeiferDaniel Pfeiferhttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1212Tests: Teach Server test to print server return code2017-08-31T10:11:06-04:00Brad KingTests: Teach Server test to print server return codeThis will aid in diagnosing failures.This will aid in diagnosing failures.3.10.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1111Server refactor2017-09-01T10:34:17-04:00jdavidbergerServer refactorAdditional server refactors to allow for running and shutting libuv internals in a separate thread in preparation for !483. Also addresses #16996.Additional server refactors to allow for running and shutting libuv internals in a separate thread in preparation for !483. Also addresses #16996.3.10.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1382server: Add target install destinations to codemodel2017-10-25T08:17:05-04:00Justin Goshiserver: Add target install destinations to codemodelInformation about the existence of install rules for a project and install path for targets.
Topic-rename: server-codemodel-install-dest
Information about the existence of install rules for a project and install path for targets.
Topic-rename: server-codemodel-install-dest
3.11.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1230server: Allow additional server test modes2017-11-06T12:59:27-05:00jdavidbergerserver: Allow additional server test modesMore commits in preparation for the debugger branch to be merged.
There are a few main contributions with this MR:
* Server test infrastructure is modified to allow for similar tests against the debugger down the line.
* Server ...More commits in preparation for the debugger branch to be merged.
There are a few main contributions with this MR:
* Server test infrastructure is modified to allow for similar tests against the debugger down the line.
* Server test now runs on STDIN and on PIPE when it can. This means we are able to unit test cmPipeConnection stuff too. Note that this only works on unix because of python/windows reasons, so it is still critical to keep STDIN testing.
* This includes threading details; which have been wrapped in a manner consistent with the C++17 standard. The idea is to have it so when platforms all support that standard, it's easy enough to replace all on the threading types.
EDIT: Some parts were originally in this MR but have been dropped in favor of a future MR:
* RAII C++ types have been added to make working with libuv primitives bearable.
The last two commits are both misc. changes that are required for the debugger functionality. I can move them each into another MR, or into their own if desired.
Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1414server: add "ctestsInfo" request to get test info2018-03-26T07:45:57-04:00Justin Goshiserver: add "ctestsInfo" request to get test infoUpdated the protocol version to 1.3
Topic-rename: server-test-info
Updated the protocol version to 1.3
Topic-rename: server-test-info
Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1462server: return minimum cmake required version for each project2017-11-10T07:51:16-05:00Justin Goshiserver: return minimum cmake required version for each project3.11.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1489server: project level has install rule bug fix2017-11-20T09:42:08-05:00Justin Goshiserver: project level has install rule bug fixA project should be marked as having an install rule if it has any
install generators or if any of its targets have an install rule.A project should be marked as having an install rule if it has any
install generators or if any of its targets have an install rule.3.11.0Brad KingBrad Kinghttps://gitlab.kitware.com/cmake/cmake/-/merge_requests/1498Fix bad message parsing in CMake server2017-11-20T10:35:03-05:00vector-of-boolFix bad message parsing in CMake server> If a partial message is flushed into the input pipe for CMake Server,
> the parser will try and parse it as a full message because of some bad
> loop checks.
Found this problem with my [extension](https://github.com/vector-of-bool/vsc...> If a partial message is flushed into the input pipe for CMake Server,
> the parser will try and parse it as a full message because of some bad
> loop checks.
Found this problem with my [extension](https://github.com/vector-of-bool/vscode-cmake-tools/issues/261) because I send the message in three separate calls: The magic header, the body, and the magic footer. CMake tries to parse JSON immediately after I send the magic header, and the connection barfs.
This bug is present only in the 3.10.0 RC. Maybe want to get this merged into 3.10? I can kind of work around the problem if I send the whole message in a single call, but it's not guaranteed that I won't randomly hit a buffer boundary and the connection will barf again.3.10.0Brad KingBrad King