>  cJSON might [...] be better placed in opm-parser-prereqs.cmake

I think the situation is analogous to the way opm-core depends on TinyXML (use system version if present, otherwise use embedded). So I think that it should be a prerequisite of opm-parser, and it should be opm-parser which adds it to its list of libraries, to be picked up indirectly by the others.

(BTW; I don't think the build system supports putting two package names together on one line; there is some parsing of these lines going on to figure out if we have already seen the package, and I think it would be confused)