summaryrefslogtreecommitdiffstats
path: root/Source/cmServerProtocol.cxx
Commit message (Collapse)AuthorAgeFilesLines
* server-mode: Do not crash when running into INTERFACE_LIBRARYTobias Hunger2017-01-091-2/+6
| | | | Closes: #16539
* Merge topic 'mr-reset-error-flag-on-configure'Brad King2017-01-091-0/+2
|\ | | | | | | | | 7789dd9a server-mode: Call ResetErrorOccured before configure
| * server-mode: Call ResetErrorOccured before configureTobias Hunger2016-12-161-0/+2
| | | | | | | | Closes: #16506
* | clang-tidy: apply readability-static-definition-in-anonymous-namespace fixesDaniel Pfeifer2016-12-121-10/+9
| |
* | Merge topic 'src-COMPILE_FLAGS-genex'Brad King2016-12-051-1/+2
|\ \ | | | | | | | | | | | | 5dec0a23 server-mode: Fix per-source COMPILE_FLAGS genex evaluation
| * | server-mode: Fix per-source COMPILE_FLAGS genex evaluationTobias Hunger2016-12-021-1/+2
| | | | | | | | | | | | | | | | | | 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.
* | | Merge topic 'cmake-server-pad-arguments'Brad King2016-12-011-1/+1
|\ \ \ | | |/ | |/| | | | | | | 28e891f0 server-mode: Do not ignore the first cacheArgument on configure
| * | server-mode: Do not ignore the first cacheArgument on configureTobias Hunger2016-11-301-1/+1
| | | | | | | | | | | | | | | SetCacheArgs skips the first argument it gets, so add some padding before calling it.
* | | Merge topic 'cmake-server-fix-16423'Brad King2016-11-151-28/+53
|\ \ \ | |/ / | | | | | | | | | 516a2cd3 server-mode: Reset GlobalGenerator before configure
| * | server-mode: Reset GlobalGenerator before configureTobias Hunger2016-11-141-28/+53
| | | | | | | | | | | | | | | | | | | | | This is what cmake-gui also does to avoid CMake crashing on repeated attempts to configure it. Fixes #16423.
* | | Merge topic 'src-COMPILE_FLAGS-genex'Brad King2016-11-011-1/+6
|\ \ \ | | |/ | |/| | | | | | | | | | 9a58517d Tests: Add case for Xcode per-config per-source COMPILE_FLAGS diagnostic 1e4bb358 Add generator expression support to per-source COMPILE_FLAGS
| * | Add generator expression support to per-source COMPILE_FLAGSZsolt Parragi2016-10-281-1/+6
| | | | | | | | | | | | | | | | | | 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.
* | | Avoid some copiesDaniel Pfeifer2016-10-301-3/+3
|/ /
* | Merge topic 'cmake-server-handshake-improvements'Brad King2016-10-281-63/+97
|\ \ | |/ | | | | | | | | 42ccbee1 server-mode: Handle generator toolset and platform in handshake d792491c cmake-server: Better error reporting during handshake
| * server-mode: Handle generator toolset and platform in handshakeTobias Hunger2016-10-281-1/+30
| |
| * cmake-server: Better error reporting during handshakeTobias Hunger2016-10-271-64/+69
| | | | | | | | | | | | | | 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.
* | Merge topic 'clang-tidy'Brad King2016-10-201-8/+14
|\ \ | | | | | | | | | | | | | | | effa6c83 fix more issues reported by clang-tidy fb461cac silence selected clang-tidy violations
| * | fix more issues reported by clang-tidyDaniel Pfeifer2016-10-201-8/+14
| | |
* | | cmState: Move TargetType enum to separate namespaceStephen Kelly2016-10-191-1/+1
| | |
* | | cmServerProtocol: Remove unused headerStephen Kelly2016-10-181-1/+0
|/ /
* | cmLinkLineComputer: Move FrameworkPath computation from cmLocalGeneratorStephen Kelly2016-10-101-1/+1
| | | | | | | | Add UseWatcomQuote state, and remove corresponding method parameters.
* | cmLinkLineComputer: Move ComputeLinkLibs from cmLocalGeneratorStephen Kelly2016-10-101-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | cmLinkLineComputer: Extract from cmLocalGeneratorStephen Kelly2016-10-101-2/+7
|/ | | | | | | | | | | 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.
* server-mode: Watch CMakeLists.txt filesTobias Hunger2016-09-291-0/+34
| | | | Watch CMakeLists.txt files (and similar) from the Server
* server-mode: Report watched files to clientTobias Hunger2016-09-291-0/+22
| | | | * Add a command to report watched files and directories to clients.
* server-mode: Add infrastructure to watch the filesystemTobias Hunger2016-09-291-0/+8
| | | | | | | 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"
* server-mode: Report CMakeCache entriesTobias Hunger2016-09-281-0/+64
| | | | | With this it would be possible to implement something like cmake-gui using server-mode.
* server-mode: Add command to retrieve build system filesTobias Hunger2016-09-281-2/+97
| | | | Add a command to retrieve files that are input to cmake itself.
* server-mode: Report information relevant for a codemodelTobias Hunger2016-09-281-0/+386
| | | | | Add "codemodel" command to report information relevant to feed a code model.
* Simplify CMake per-source license noticesBrad King2016-09-271-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* server-mode: Add command to compute the build systemTobias Hunger2016-09-261-0/+23
|
* server-mode: Add a configure commandTobias Hunger2016-09-261-0/+89
| | | | | | | 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.
* server-mode: Set global configuration of cmake via a commandTobias Hunger2016-09-261-0/+44
| | | | | "setGlobalSettings" can be used to change settings reported by "globalSettings" command.
* server-mode: Query global configuration of cmake via a commandTobias Hunger2016-09-261-0/+34
| | | | | | | Add "globalSettings" command that returns: * Return capability information * Return currently used generator/extra generator * Return a range of flags for debug/trace/etc.
* cmServer: add braces around conditional statementsDaniel Pfeifer2016-09-231-15/+27
|
* server-mode: Allow for sending signalsTobias Hunger2016-09-221-0/+7
| | | | Enable the server to send signals.
* server-mode: Pass server into cmServerProtocolTobias Hunger2016-09-221-1/+4
| | | | The information will be needed to send signals.
* server-mode: Move constants for server mode into its own fileTobias Hunger2016-09-221-9/+3
| | | | | This removes some duplication and makes it easier to reuse the vocabulary.
* server-mode: Report Messages from cmake to clientsTobias Hunger2016-09-201-0/+6
| | | | | Pass messages sent from cmake via Error(...) or Message(...) on to clients.
* cmake-server: Use consistent constant naming styleTobias Hunger2016-09-201-9/+6
|
* server-mode: Add --experimental flagTobias Hunger2016-09-201-0/+5
| | | | | | | | Allow for experimental cmProtocolVersions, which will only ever get listed if the server was started with the (undocumented) "--experimental" flag. Mark current protocol version 1.0 as experimental.
* cmake-server: Implement ServerProtocol 1.0Tobias Hunger2016-09-191-0/+135
| | | | | | | | | | | | | | Enable the initial handshake of the client to complete the connection to the server. The handshake sets the protocol version that client and server will use to talk to each other. The only way to change this is to quit the server and start over. CMake specific information is also set during the initial handshake. Since cmake so far never had to change basic information about any project while running, it was decided to keep this information static and require a restart of the cmake server to change any of these.
* cmake-server: Bare-bones server implementationTobias Hunger2016-09-191-0/+129
Adds a bare-bones cmake-server implementation and makes it possible to start that with "cmake -E server". Communication happens via stdin/stdout for now. Protocol is based on Json objects surrounded by magic strings ("[== CMake Server ==[" and "]== CMake Server ==]"), which simplifies Json parsing significantly. This patch also defines an interface used to implement different versions of the protocol spoken by the server, but does not include any protocol implementaiton.