Re: KDevelop can't load project: "too large document"?
Matthew Woehlke <[email protected]>
| Newsgroups | gmane.comp.kde.users.kdevelop |
|---|---|
| Message-ID | <[email protected]> |
On 2017-12-09 09:57, René J.V. Bertin wrote: > FWIW, importing QtWebKit 5.212 Alpha2 via cmake 3.9.3: > > compile_commands.json : 51Mb > largest cmake server JSON reply: 0.52Mb (calculated as QByteArray data.size/1024/1024.0) > > With cmake 3.10 the JSON replies do increase but the largest is still only 0.61Mb. This is... curious... In KDevelop, I am getting back a code model (for KWIVER) that is 108572484 bytes (about 103 MiB). However, if I write out the same commands to a text file and feed it to CMake via an input file, I am getting back a total session of only 198885 bytes (less than 200 KiB, about 67 KiB of which is progress reporting from configuring and generating the project). Using CMake master, KDevelop gets a code model (again, for KWIVER) of 3677870 bytes (about 3.5 MiB, which is consistent with what I got stripping the backtraces from the 103 MiB response). Again, however, feeding the same commands to CMake server via a text input file, I get 198885 bytes. This is most puzzling. At any rate, what I'm getting for KWIVER remains almost an order of magnitude larger than the numbers you are reporting for QtWebKit. One possible — I would even venture to say "likely" — explanation is that QtWebKit has very few targets; `ninja -t targets` reports only 243 items (which is not likely to exactly correspond to what CMake considers targets, but is probably of similar order of magnitude). In this respect, it is actually a quite *small* project. By comparison, KWIVER reports 2750, and KDevelop reports 1592. (Note: I did disable audio and video because it couldn't find GStreamer dependencies and it was not immediately obvious what needed to be installed.) I would therefore be curious what numbers you are getting from KDevelop. As another interesting data point: my QtWebKit compile_commands.json is 35 MiB (so, on order with yours), while for KWIVER it is only 820 KiB, and for KDevelop, 4.6 MiB. So the size of compile_commands.json does not appear to have any particular bearing on the size of the JSON code model. (This is probably because the size of compile_commands.json chiefly reflects the number of *source* files in a project, while the size of the code model chiefly reflects the number of *targets*. KWIVER has many targets — mainly, the unit tests — that have only a single source file, and a good chunk of the libraries have only a handful of source files.) -- Matthew