KDevelop can't load project: "too large document"?

Matthew Woehlke mwoehlke.floss at gmail.com
Mon Dec 11 16:51:34 GMT 2017


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




More information about the KDevelop mailing list