1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-06-16 17:03:54 +08:00

59 Commits

Author SHA1 Message Date
Daniel Pfeifer
cbcf6458f4 cmServerProtocol: Do not move into json::Value::append()
CMake's copy of json-cpp is not aware of rvalues yet.  It is confusing
to pass the result of std::move to a function that takes a const&
because no move will actually happen.  This change may be reverted once
CMake upgrades to a new version of json-cpp.
2017-08-15 22:43:08 +02:00
Daniel Pfeifer
91417e4ca3 cmServerProtocol: pass cmBacktraceRange by value 2017-08-15 22:37:05 +02:00
Daniel Pfeifer
1df3875871 cmServerProtocol: allow 'cache' request before 'configure'
Fixes: #16989
2017-08-13 22:02:31 +02:00
Daniel Pfeifer
187332b2fa cmServerProtocol: fix test of empty values
If a required value is in the cache, it is not necessary to set it
explicitly.

Fixes: #16948, #16988
2017-08-13 22:02:30 +02:00
Brad King
ee79d7a130 Merge topic 'server-fix-crash'
70272f3c server: Fix crash on missing cache entries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1096
2017-08-03 09:34:15 -04:00
Laurent Rineau
70272f3c36 server: Fix crash on missing cache entries
Test for nullptr before constructing std::string.
2017-08-02 16:13:55 -04:00
Brad King
fc4f352513 Merge topic 'server-refactor'
cf0ae55d server: Add support for connections that aren't event based
5ddfb6a4 server: Add connection as part of a request
d4f5d35c server: Refactor to make the event loop owned by server object
5acbf08b Tests: Teach Server test to forward exit code from server process

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !552
2017-07-18 11:14:02 -04:00
Ivan Shcherbakov
0c57238215 server: Report backtraces in codemodel response
Report the source locations (e.g. in `CMakeLists.txt`) for all targets
and target-related statements.  This allows IDEs to locate the
statements and automatically edit them when the user adds or removes
files or changes target properties via GUI.

Increment the protocol minor version number to tell clients that the new
information is available.
2017-07-11 07:50:22 -04:00
Justin Berger
5ddfb6a472 server: Add connection as part of a request 2017-07-10 18:11:33 -06:00
Ivan Shcherbakov
4db3227514 server: Rename cmServerProtocol1_0 to cmServerProtocol1
It will serve additional minor versions.

Suggested-by: Tobias Hunger <tobias.hunger@qt.io>
2017-07-06 11:03:14 -04:00
Daniel Pfeifer
c36d63cd48 cmake: initialize with Role that controls which commands to register 2017-05-08 22:29:44 +02:00
Daniel Pfeifer
f3e216131b cmServer: include what you use 2017-05-06 00:03:47 +02:00
Daniel Pfeifer
a168b4ccc2 cmServerProtocol: avoid copies in range for 2017-04-26 08:59:56 +02:00
Gregor Jasny
cf320f7cd7 Replace boolean implib parameters with enum
Named enumeration values are much clearer at call sites and add more
type safety.
2017-04-20 10:22:33 -04:00
Brad King
677b3cbf28 Merge topic 'server-mode-fix-home-dir-check'
8285ad51 server-mode: Make CMAKE_HOME_DIRECTORY more reliable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !611
2017-03-23 08:46:30 -04:00
Tobias Hunger
8285ad511a server-mode: Make CMAKE_HOME_DIRECTORY more reliable
Make CMAKE_HOME_DIRECTORY detection work more reliably in the face
of symlinks.

Closes #16736
2017-03-22 17:31:02 +01:00
Tobias Hunger
c0bd1eb6d0 server-mode: Do not crash when running into INTERFACE_LIBRARY
Closes: #16539
2017-01-09 16:40:46 -05:00
Brad King
a0ed39ac22 Merge topic 'mr-reset-error-flag-on-configure'
7789dd9a server-mode: Call ResetErrorOccured before configure
2017-01-09 16:27:19 -05:00
Tobias Hunger
7789dd9a1a server-mode: Call ResetErrorOccured before configure
Closes: #16506
2016-12-16 08:54:37 -05:00
Daniel Pfeifer
58c66393cf clang-tidy: apply readability-static-definition-in-anonymous-namespace fixes 2016-12-12 14:04:15 -05:00
Brad King
f6f42b25c8 Merge topic 'src-COMPILE_FLAGS-genex'
5dec0a23 server-mode: Fix per-source COMPILE_FLAGS genex evaluation
2016-12-05 09:23:22 -05:00
Tobias Hunger
5dec0a2328 server-mode: Fix per-source COMPILE_FLAGS genex evaluation
Logic added by commit 1e4bb358 (Add generator expression support to
per-source COMPILE_FLAGS, 2016-10-25) accidentally frees memory before
finishing with it.  Revise the logic to hold the memory long enough.
2016-12-02 10:15:50 -05:00
Brad King
23a63d2024 Merge topic 'cmake-server-pad-arguments'
28e891f0 server-mode: Do not ignore the first cacheArgument on configure
2016-12-01 08:50:41 -05:00
Tobias Hunger
28e891f0c7 server-mode: Do not ignore the first cacheArgument on configure
SetCacheArgs skips the first argument it gets, so add some padding before
calling it.
2016-11-30 13:14:15 -05:00
Brad King
dadccc752e Merge topic 'cmake-server-fix-16423'
516a2cd3 server-mode: Reset GlobalGenerator before configure
2016-11-15 09:26:07 -05:00
Tobias Hunger
516a2cd360 server-mode: Reset GlobalGenerator before configure
This is what cmake-gui also does to avoid CMake crashing on repeated
attempts to configure it.

Fixes #16423.
2016-11-14 11:06:37 -05:00
Brad King
01567fd74f Merge topic 'src-COMPILE_FLAGS-genex'
9a58517d Tests: Add case for Xcode per-config per-source COMPILE_FLAGS diagnostic
1e4bb358 Add generator expression support to per-source COMPILE_FLAGS
2016-11-01 09:14:25 -04:00
Daniel Pfeifer
5214bb354b Avoid some copies 2016-10-30 19:50:19 +01:00
Zsolt Parragi
1e4bb35894 Add generator expression support to per-source COMPILE_FLAGS
This allows users to specify different genex-based compile flags for
each file in a target, e.g. compiling just a single file with `Od/Ox` in
release builds on Visual Studio.
2016-10-28 11:18:03 -04:00
Brad King
18a966c80f Merge topic 'cmake-server-handshake-improvements'
42ccbee1 server-mode: Handle generator toolset and platform in handshake
d792491c cmake-server: Better error reporting during handshake
2016-10-28 08:26:49 -04:00
Tobias Hunger
42ccbee11c server-mode: Handle generator toolset and platform in handshake 2016-10-28 13:46:15 +02:00
Tobias Hunger
d792491c40 cmake-server: Better error reporting during handshake
Catch more problematic input during handshake and report failure.

These were caught before when trying to configure, but it is way better
to get these reports early.
2016-10-27 14:18:42 -04:00
Brad King
a5f4463eed Merge topic 'clang-tidy'
effa6c83 fix more issues reported by clang-tidy
fb461cac silence selected clang-tidy violations
2016-10-20 08:51:09 -04:00
Daniel Pfeifer
effa6c8343 fix more issues reported by clang-tidy 2016-10-20 08:48:20 -04:00
Stephen Kelly
a49751fb2e cmState: Move TargetType enum to separate namespace 2016-10-19 15:40:58 +02:00
Stephen Kelly
163991dd83 cmServerProtocol: Remove unused header 2016-10-18 21:28:45 +02:00
Stephen Kelly
f03d446e96 cmLinkLineComputer: Move FrameworkPath computation from cmLocalGenerator
Add UseWatcomQuote state, and remove corresponding method parameters.
2016-10-10 20:38:59 +02:00
Stephen Kelly
0c97806325 cmLinkLineComputer: Move ComputeLinkLibs from cmLocalGenerator
Add a cmOutputConverter to the cmLinkLineComputer and factory methods to
facilitate shell escapes.

Add state to the cmLinkLineComputer to record whether outputting for
response files or for watcom, to satisfy the cmOutputConverter API.
These are constant for the lifetime of the cmLinkLineComputer, even when
its functionality is extended in the future.  This also keeps the
signatures of cmLinkLineComputer relatively simple.

Pass the cmComputeLinkInformation as a method parameter so that
cmLinkLineComputer is free from target-specific state.  An instance
should be usable for all targets in a directory.
2016-10-10 20:38:58 +02:00
Stephen Kelly
5b361fdda0 cmLinkLineComputer: Extract from cmLocalGenerator
CMake has several classes which have too many responsibilities.
cmLocalGenerator is one of them.  Start to extract the link line
computation.  Create generator-specific implementations of the interface
to account for generator-specific behavior.

Unfortunately MSVC60 has different behavior to everything else and CMake
still generates makefiles for it.  Isolate it with MSVC60-specific
names.
2016-10-10 20:38:53 +02:00
Tobias Hunger
4e34f04250 server-mode: Watch CMakeLists.txt files
Watch CMakeLists.txt files (and similar) from the Server
2016-09-29 22:34:10 +02:00
Tobias Hunger
262500028c server-mode: Report watched files to client
* Add a command to report watched files and directories to clients.
2016-09-29 21:47:05 +02:00
Tobias Hunger
0d96e19329 server-mode: Add infrastructure to watch the filesystem
Enable the server to watch for filesystem changes. This patch includes
* The infrastructure for the file watching
* makes that infrastructure available to cmServerProtocols
* Resets the filesystemwatchers on "configure"
2016-09-29 21:47:05 +02:00
Tobias Hunger
7b1e60f26e server-mode: Report CMakeCache entries
With this it would be possible to implement something like
cmake-gui using server-mode.
2016-09-28 18:32:55 +02:00
Tobias Hunger
84553a6e70 server-mode: Add command to retrieve build system files
Add a command to retrieve files that are input to cmake itself.
2016-09-28 18:32:54 +02:00
Tobias Hunger
ead71873b2 server-mode: Report information relevant for a codemodel
Add "codemodel" command to report information relevant to feed a code
model.
2016-09-28 18:32:54 +02:00
Brad King
86578eccf2 Simplify CMake per-source license notices
Per-source copyright/license notice headers that spell out copyright holder
names and years are hard to maintain and often out-of-date or plain wrong.
Precise contributor information is already maintained automatically by the
version control tool.  Ultimately it is the receiver of a file who is
responsible for determining its licensing status, and per-source notices are
merely a convenience.  Therefore it is simpler and more accurate for
each source to have a generic notice of the license name and references to
more detailed information on copyright holders and full license terms.

Our `Copyright.txt` file now contains a list of Contributors whose names
appeared source-level copyright notices.  It also references version control
history for more precise information.  Therefore we no longer need to spell
out the list of Contributors in each source file notice.

Replace CMake per-source copyright/license notice headers with a short
description of the license and links to `Copyright.txt` and online information
available from "https://cmake.org/licensing".  The online URL also handles
cases of modules being copied out of our source into other projects, so we
can drop our notices about replacing links with full license text.

Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
of the replacements mechanically.  Manually fix up shebang lines and trailing
newlines in a few files.  Manually update the notices in a few files that the
script does not handle.
2016-09-27 15:14:44 -04:00
Tobias Hunger
890432672b server-mode: Add command to compute the build system 2016-09-26 14:33:12 -04:00
Tobias Hunger
0a8ad6700e server-mode: Add a configure command
Add a command to trigger cmake to configure a project.

Keep this separate from the compute step (added in the next commit)
to faciliate applications like cmake-gui.
2016-09-26 14:32:22 -04:00
Tobias Hunger
544f65f44d server-mode: Set global configuration of cmake via a command
"setGlobalSettings" can be used to change settings reported by
"globalSettings" command.
2016-09-26 14:25:20 -04:00
Tobias Hunger
82104cc7a8 server-mode: Query global configuration of cmake via a command
Add "globalSettings" command that returns:
* Return capability information
* Return currently used generator/extra generator
* Return a range of flags for debug/trace/etc.
2016-09-26 14:23:53 -04:00