Bugzilla – Bug 2043
record additional aggregations for print-introspected-doxygen
Last modified: 2019-11-05 18:44:27 EST
Users list discussion: https://groups.google.com/forum/#!starred/ns-3-users/kTVDMd2oPM8 Reported by Matt Anonyme: ./waf --doxygen-no-build and ./waf --doxygen but in both cases I have this kind of output (so I add the module, retry and another error pops up). So I guess documentation has to be generated with all moduels enabled right ? I saw no mention of it here: http://www.nsnam.org/docs/release/3.21/doxygen/index.html#install-sec === assert failed. cond="uid != 0", msg="Assert in TypeId::LookupByName: ns3::aodv::RoutingProtocol not found", file=../src/core/model/type-id.cc, line=560" === Here is my .ns3rc modules_enabled = [↲ 'bridge',↲ 'mpi',↲ 'network',↲ 'internet',↲ 'core',↲ 'point-to-point',↲ 'applications',↲ #'olsr',↲ #'nix-vector-routing',↲ 'flow-monitor',↲ 'test',↲ 'point-to-point-layout'↲ ]↲ ↲ # Set this equal to true if you want examples to be run.↲ examples_enabled = False↲ ↲ # Set this equal to true if you want tests to be run.↲ tests_enabled = True↲
According to Tom: It has to do with the build dependencies for print-introspected-doxygen.cc; the wscript allows it to build with only csma enabled, but runtime errors will occur if the module dependencies in GetTypicalAggregations() are not enabled. It can be reproduced by enabling only the set of modules that Matt posted earlier in this thread.
Created attachment 1952 [details] Reduce module dependency to just network. This patch checks if the requested aggregation object has been registered as a type. If it hasn't (because the parent module wasn't enabled in the waf configuration), it records the aggregation object name separately. These names then generate a config path message of: "Introspection could not find Config paths for <x> in this build, likely because the parent module was not configured." This patch makes possible two enhancements: - print-introspected-doxygen (p-i-d) can depend only on network (which depends on core and stats). The patch makes this change, replacing the CsmaChannel (from the csma module) with SimpleChannel (from network itself). - We can add any further aggregations we want, without increasing the build dependencies on p-i-d. (I haven't added any in this patch) An implicit goal for our doxygen is to generate documentation for *everything* even if it is not part of the build (because it's not part of the configuration, or it's missing dependencies). Of course, getting the dependencies right so p-i-d doesn't crash is part of meeting that goal. The second point also facilitates that goal, by allowing a documentation build to pick up *all* config paths created by the configured modules, including obscure modules with external dependencies. So, what *other* aggregations should we add to p-i-d?
pushed in changeset 11185:7d6c1139be2f leaving open (needinfo) to respond to Peter's question about adding missing aggregations
*** Bug 1561 has been marked as a duplicate of this bug. ***
The process to record other aggregations is well documented in the GetTypicalAggregations() function of p-i-d: https://www.nsnam.org/docs/doxygen/print-introspected-doxygen_8cc_source.html#l01276 Since no other aggregations have been mentioned here, suggest closing this bug.