-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Comparing changes
Open a pull request
base repository: Kitware/CMake
base: master
head repository: microsoft/CMake
compare: cmake-daemon
Commits on Jun 8, 2016
-
At this point, it reads/writes on stdin/stdout. This can be changed to use local sockets/named pipes when appropriate. At that point, the magic string wrapping is also not needed.
Configuration menu - View commit details
-
Copy full SHA for 593094b - Browse repository at this point
Copy the full SHA 593094bView commit details -
Server: Use TTY API instead of pipe API where needed
This is needed on Windows at least, but this is something for a Windows expert to look into.
Configuration menu - View commit details
-
Copy full SHA for 30ff6ba - Browse repository at this point
Copy the full SHA 30ff6baView commit details -
I must be missing something in libuv, because this should be easier.
Configuration menu - View commit details
-
Copy full SHA for 01c2d03 - Browse repository at this point
Copy the full SHA 01c2d03View commit details -
Configuration menu - View commit details
-
Copy full SHA for f9e8cfe - Browse repository at this point
Copy the full SHA f9e8cfeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 25fa3f6 - Browse repository at this point
Copy the full SHA 25fa3f6View commit details -
Daemon: Add protocol for the querying the buildsystem
A client request of [== CMake MetaMagic ==[ {"type":"buildsystem"} ]== CMake MetaMagic ==] results in a response describing all targets.
Configuration menu - View commit details
-
Copy full SHA for 643f686 - Browse repository at this point
Copy the full SHA 643f686View commit details -
Configuration menu - View commit details
-
Copy full SHA for f29845e - Browse repository at this point
Copy the full SHA f29845eView commit details -
Daemon: Add protocol to provide buildsystem information for a file
This should provide the compile definitions, include directories etc as JSON properties, but should also provide the full command line content (including ordering of include directories, content of CMAKE_CXX_FLAGS etc) which gets passed to the compiler, if that is possible to do.
Configuration menu - View commit details
-
Copy full SHA for e0eae7e - Browse repository at this point
Copy the full SHA e0eae7eView commit details -
Add hacky python client to show how the protocol works
Use the stdin and stdout features of the subprocess module to interact with the cmake process. $ ./daemon-client.py /path/to/kitemmodels/build Serving Source Dir: /path/to/kitemmodels Binary Dir: /path/to/kitemmodels/build Project: KItemModels Targets KF5ItemModels krecursivefilterproxymodeltest proxymodeltestapp kdescendantsproxymodel_smoketest kselectionproxymodel_smoketest proxymodeltestsuite klinkitemselectionmodeltest kselectionproxymodeltest testmodelqueuedconnections Select a target: User inputs: "KF5Item" Corrected "KF5Item" to "KF5ItemModels" Sources /path/to/kitemmodels/src/kbreadcrumbselectionmodel.cpp /path/to/kitemmodels/src/kmodelindexproxymapper.cpp /path/to/kitemmodels/src/kcheckableproxymodel.cpp /path/to/kitemmodels/src/krecursivefilterproxymodel.cpp /path/to/kitemmodels/src/kdescendantsproxymodel.cpp /path/to/kitemmodels/src/kselectionproxymodel.cpp /path/to/kitemmodels/src/klinkitemselectionmodel.cpp Generated Sources /path/to/kitemmodels/build/src/KF5ItemModels_automoc.cpp Include Directories /path/to/kitemmodels/build/src /path/to/qtbase/include /path/to/qtbase/mkspecs/linux-g++ /path/to/kitemmodels/src /path/to/qtbase/include/QtCore Compile Definitions _GNU_SOURCE QT_NO_CAST_FROM_ASCII QT_NO_SIGNALS_SLOTS_KEYWORDS QT_CORE_LIB _LARGEFILE64_SOURCE QT_NO_URL_CAST_FROM_STRING QT_USE_FAST_OPERATOR_PLUS QT_NO_DEBUG QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_BYTEARRAY QT_USE_QSTRINGBUILDER Compile Options <None>
Configuration menu - View commit details
-
Copy full SHA for 36c652c - Browse repository at this point
Copy the full SHA 36c652cView commit details -
Make it easier to record which conditions were tested, and which were true. TODO: Is this needed at all?
Configuration menu - View commit details
-
Copy full SHA for 97766af - Browse repository at this point
Copy the full SHA 97766afView commit details -
Configuration menu - View commit details
-
Copy full SHA for fd7c71a - Browse repository at this point
Copy the full SHA fd7c71aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5edc893 - Browse repository at this point
Copy the full SHA 5edc893View commit details -
Configuration menu - View commit details
-
Copy full SHA for bae4cb6 - Browse repository at this point
Copy the full SHA bae4cb6View commit details -
cmState: Store whether conditionally executed blocks are executed
TODO: I'm not sure this behaves correctly when a macro is defined in one file and called in another. See eg the tool running on the llvm buildsystem. TODO: Properly handle aborting commands such as break(), continue(), return() etc so that following lines are marked not executed.
Configuration menu - View commit details
-
Copy full SHA for 08745cf - Browse repository at this point
Copy the full SHA 08745cfView commit details -
Configuration menu - View commit details
-
Copy full SHA for f9fd274 - Browse repository at this point
Copy the full SHA f9fd274View commit details -
Configuration menu - View commit details
-
Copy full SHA for 699ae3e - Browse repository at this point
Copy the full SHA 699ae3eView commit details -
Configuration menu - View commit details
-
Copy full SHA for bfb0b32 - Browse repository at this point
Copy the full SHA bfb0b32View commit details -
cmState: Make clearing snapshot data a client responsibility (#15854)
Make different behavior possible for the cmake server.
Configuration menu - View commit details
-
Copy full SHA for f336c42 - Browse repository at this point
Copy the full SHA f336c42View commit details -
Configuration menu - View commit details
-
Copy full SHA for d8c27fb - Browse repository at this point
Copy the full SHA d8c27fbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8aca6ab - Browse repository at this point
Copy the full SHA 8aca6abView commit details -
cmState: Add concept of Arbitrary snapshots
These can be made at an arbitrary point and do not create a scope. TODO: The cmState is getting unwieldy. Consider redesigning the data tracking based on shared_ptr per Sean Parent.
Configuration menu - View commit details
-
Copy full SHA for 5e6b9a2 - Browse repository at this point
Copy the full SHA 5e6b9a2View commit details -
Create snapshots arbitrarily at certain points
These are: * Just after a project() * Just after a find_package() * Just after a include() * Just after a add_subdirectory() * Just inside a macro or function definition * Just outside a macro or function definition * Just after a macro or function invocation These can be used as starting points to provide recorded data through the server. Other places these should be created: * After any execute_process * After any file(WRITE) * After configure_file, or does that only have an effect on change? * After try_compile, or does that only have an effect on cache change?
Configuration menu - View commit details
-
Copy full SHA for 05ef639 - Browse repository at this point
Copy the full SHA 05ef639View commit details -
DROPME? Create a snapshot at the start of files.
This breaks the file_info protocol, but may be needed for code completion.
Configuration menu - View commit details
-
Copy full SHA for 4eec10a - Browse repository at this point
Copy the full SHA 4eec10aView commit details -
cmLinkedTree: Provide API for traversing from the Root
This is so that the server can access all snapshots. Is this the right approach?
Configuration menu - View commit details
-
Copy full SHA for 4694aa3 - Browse repository at this point
Copy the full SHA 4694aa3View commit details -
cmState: Add API for traced snapshots.
A particular context in a listfile may be executed multiple times, for example if inside a function which is executed multiple times. Provide all available snapshots for each context.
Configuration menu - View commit details
-
Copy full SHA for 9926b7c - Browse repository at this point
Copy the full SHA 9926b7cView commit details -
Configuration menu - View commit details
-
Copy full SHA for e3bff4b - Browse repository at this point
Copy the full SHA e3bff4bView commit details -
cmCommand: Add API for commands to return metadata
Commands know the type of arguments expected. That can be used for code completion and contextual help. The level of completion of this is quite mixed. The API in cmCommand may not be the most ideal for what is needed.
Configuration menu - View commit details
-
Copy full SHA for 2ca0017 - Browse repository at this point
Copy the full SHA 2ca0017View commit details -
Configuration menu - View commit details
-
Copy full SHA for 272666c - Browse repository at this point
Copy the full SHA 272666cView commit details -
Add a hack to make parsing more failsafe.
Needed for code completion. This is not acceptable for master. Instead the parser should be made failsafe in a more-deliberate way.
Configuration menu - View commit details
-
Copy full SHA for e29fd27 - Browse repository at this point
Copy the full SHA e29fd27View commit details -
Add a utility for diffing file content.
Using the dtl: git@github.com:cubicdaiya/dtl.git I think the dtl::Diff object takes an unnecessary copy of each std::string line. Perhaps that can be avoided.
Configuration menu - View commit details
-
Copy full SHA for 60e428a - Browse repository at this point
Copy the full SHA 60e428aView commit details -
TODO: Edit cmListFileLexer.in.l and regenerate instead?
Configuration menu - View commit details
-
Copy full SHA for e5d2398 - Browse repository at this point
Copy the full SHA e5d2398View commit details -
Configuration menu - View commit details
-
Copy full SHA for dc980af - Browse repository at this point
Copy the full SHA dc980afView commit details -
Configuration menu - View commit details
-
Copy full SHA for 33893c6 - Browse repository at this point
Copy the full SHA 33893c6View commit details -
cmMakefile: Add API for executing arbitrary commands
The server needs to be able to execute commands as they exist in an editor buffer, not on the filesystem. This allows executing them after parsing.
Configuration menu - View commit details
-
Copy full SHA for caa9a30 - Browse repository at this point
Copy the full SHA caa9a30View commit details -
Server: Add protocol for querying content in context
The protocol currently requires the client to sent the entire editor content as a JSON value. The protocol should be extended to accept a filepath where the editor content is stored. Editors like vim keep such a file. Also to be considered is extending the protocol to allow editors to specify only changed lines.
Configuration menu - View commit details
-
Copy full SHA for f4d0183 - Browse repository at this point
Copy the full SHA f4d0183View commit details -
Server: Add protocol for parsing listfiles
This works by first parsing the file on disk, and using the resulting parsed data to find the end of a command before a diff'd chunk. That way the parser can read an entire command in the changed chunk instead of starting in the middle of an argument for example. TODO: Instead of duplicating the parser, refactor the existing parser into a visitor pattern or so to facilitate re-use in this context.
Configuration menu - View commit details
-
Copy full SHA for 0b00825 - Browse repository at this point
Copy the full SHA 0b00825View commit details -
Server: Provide Help urls at given context
Ugly levels of nesting in the code here. Needs to be rewritten.
Configuration menu - View commit details
-
Copy full SHA for bad7c5e - Browse repository at this point
Copy the full SHA bad7c5eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 71287c8 - Browse repository at this point
Copy the full SHA 71287c8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 816d230 - Browse repository at this point
Copy the full SHA 816d230View commit details -
Add protocol to go to definition.
This is only half done (needs to execute commands to find the correct line where the variable gets set) and uses a big hack of making use of the code completion infrastructure to find a variable. That should be refactored.
Configuration menu - View commit details
-
Copy full SHA for c97b7af - Browse repository at this point
Copy the full SHA c97b7afView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5ab1ae4 - Browse repository at this point
Copy the full SHA 5ab1ae4View commit details
Commits on Jun 28, 2016
-
Configuration menu - View commit details
-
Copy full SHA for b82147a - Browse repository at this point
Copy the full SHA b82147aView commit details -
daemon returns errors when error occurs.
currently daemon returns nothing, which effectively hangs the client if it permanently waits for daemon response. this adds error return in the daemon when error occurs, thus unblocking the client. another approach is to always have the client to use timed wait. but I think a good server should try to be responsive in all cases.
Configuration menu - View commit details
-
Copy full SHA for dca1d0f - Browse repository at this point
Copy the full SHA dca1d0fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4d08577 - Browse repository at this point
Copy the full SHA 4d08577View commit details -
allow client to send {'type':'quit'} to quit the daemon.
Configuration menu - View commit details
-
Copy full SHA for 8cb126c - Browse repository at this point
Copy the full SHA 8cb126cView commit details -
Configuration menu - View commit details
-
Copy full SHA for a835c57 - Browse repository at this point
Copy the full SHA a835c57View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1a12270 - Browse repository at this point
Copy the full SHA 1a12270View commit details
Commits on Jun 29, 2016
-
Configuration menu - View commit details
-
Copy full SHA for f5cda89 - Browse repository at this point
Copy the full SHA f5cda89View commit details -
Configuration menu - View commit details
-
Copy full SHA for 81e3972 - Browse repository at this point
Copy the full SHA 81e3972View commit details -
Configuration menu - View commit details
-
Copy full SHA for aee6855 - Browse repository at this point
Copy the full SHA aee6855View commit details
There are no files selected for viewing
Large diffs are not rendered by default.
Large diffs are not rendered by default.