<div dir="ltr"><div class="gmail_default" style="font-size:small">I am using CMake 3.15.1.  Having found out about some of the changes with 3.13, I've started to take advantage of using 'add_subdirectory()' in certain cases when a module is large and spans multiple source folders.  <br><br></div><div class="gmail_default" style="font-size:small">For instance:<br><br></div><div class="gmail_default" style="font-size:small">ModuleA/CMakeLists.txt:<br></div><div class="gmail_default" style="font-size:small">------------------------------------<br></div><div class="gmail_default" style="font-size:small">add_library(moduleA STATIC "")<br><br></div><div class="gmail_default" style="font-size:small">add_subdirectory(sub1)<br></div><div class="gmail_default" style="font-size:small">add_subdirectory(sub2)<br></div><div class="gmail_default" style="font-size:small">------------------------------------------<br><br></div><div class="gmail_default" style="font-size:small">sub1/CMakeLists.txt</div><div class="gmail_default" style="font-size:small">------------------------------<br></div><div class="gmail_default" style="font-size:small">target_include_directories(moduleA PUBLIC .)<br></div><div class="gmail_default" style="font-size:small">target_sources(moduleA</div><div class="gmail_default" style="font-size:small">   PRIVATE<br></div><div class="gmail_default" style="font-size:small">        src1.cpp</div><div class="gmail_default" style="font-size:small">        src2.cpp</div><div class="gmail_default" style="font-size:small">    )<br><br></div><div class="gmail_default" style="font-size:small">target_link_libraries(moduleA<br></div><div class="gmail_default" style="font-size:small">    PRIVATE <br></div><div class="gmail_default" style="font-size:small">        Qt5::Widgets<br></div><div class="gmail_default" style="font-size:small">        Qt5::Qml<br></div><div class="gmail_default" style="font-size:small">        moduleB</div><div class="gmail_default" style="font-size:small">    )</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">sub2/CMakeLists.txt</div><div class="gmail_default" style="font-size:small">------------------------------</div><div class="gmail_default" style="font-size:small">target_include_directories(moduleA PUBLIC .)<br></div><div class="gmail_default" style="font-size:small">target_sources(moduleA</div><div class="gmail_default" style="font-size:small">    PRIVATE</div><div class="gmail_default" style="font-size:small">        src1.cpp</div><div class="gmail_default" style="font-size:small">        src2.cpp</div><div class="gmail_default" style="font-size:small">    )</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">target_link_libraries(moduleA</div><div class="gmail_default" style="font-size:small">    PRIVATE <br></div><div class="gmail_default" style="font-size:small">        Qt5::Quick</div><div class="gmail_default" style="font-size:small">        moduleC</div><div class="gmail_default" style="font-size:small">    )<br></div><div class="gmail_default" style="font-size:small">-----------------------------------<br><br></div><div class="gmail_default" style="font-size:small">I run cmake --graphviz=project.dot .<br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">From this, two of the files that comes out are project.dot.moduleA and project.dot.moduleA.dependers.<br><br></div><div class="gmail_default" style="font-size:small">The former is only this:<br>digraph "GG" {<br>node [<br>  fontsize = "12"<br>];<br>    "node190" [ label="moduleA" shape="diamond"];<br>}<br><br></div><div class="gmail_default" style="font-size:small">There is no mention of the Qt5 or other module dependencies.<br></div><div class="gmail_default" style="font-size:small"><br><br></div><div class="gmail_default" style="font-size:small">Other modules with dependencies but without the hierarchy introduced with add_subdirectory() seem to be just fine and include their respective dependencies in their project.dot.moduleX files.<br><br></div><div class="gmail_default" style="font-size:small">Is this a bug or am I misusing add_subdirectory() here?  With the exception of the graphviz output, everything builds and runs as expected with my setup.<br></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br><br></div><div class="gmail_default" style="font-size:small"><br></div></div>