<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I am currently entering the stages of building a bigger project, at which multiple submodules has to be involved. <div class="">I am a noob when it comes to cmake, and never worked with it in a big project scale. </div><div class=""><br class=""></div><div class="">My idea was to make each submodule buildable, such that they could be tested independently (testing each submodule )and all together (In the top module)… </div><div class="">The idea seem simple, and the project on which i am currently testing it on is not that big (each module = class).  So I don’t understand why there isn’t a easy guide or some form documentation clarifying the use of cmake of module cmake…  </div><div class=""> </div><div class=""><div><blockquote type="cite" class=""><div class="">Den 25. okt. 2017 kl. 13.53 skrev Nicholas Devenish <<a href="mailto:ndevenish@gmail.com" class="">ndevenish@gmail.com</a>>:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="gmail_extra">On Wed, Oct 25, 2017 at 10:36 AM, Carlton Banks <span dir="ltr" class=""><<a href="mailto:noflaco@gmail.com" target="_blank" class="">noflaco@gmail.com</a>></span> wrote:<br class=""></div><div class="gmail_extra"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Is there some literature that desbribes how cmakelist has to be defined a big system, that involve multiple smaller modules within the big module.</blockquote><div class=""> </div></div><div class="gmail_extra">Unfortunately, written documentation of structuring larger projects with CMake seems to be as rare and hard to find as documentation on CMake "Best practices". I suspect that the individual uniqueness of each large project combined with "once it is working don't touch it" means that developers settle on something that "works" rather than something they are happy with, and so don't show it off.</div><div class="gmail_extra"><br class=""></div><div class="gmail_extra">If you have anything beyond a fixed repository of code with simple dependencies then you seem to be pretty much on your own.</div><div class="gmail_extra"><br class=""></div><div class="gmail_extra">As a start, I'd suggest looking for other large projects that transitioned to using CMake - I've found LLVM useful in particular as a large but tightly-bound set of modular, but optional components. KDE is using CMake, but I've yet to find a good place to start digging - the ecosystem is so intimidatingly large that I'm not sure their solutions are applicable to anyone else except them. Hopefully Boost will move to CMake (as is currently proposed) and give another well known library example.</div><div class="gmail_extra"><br class=""></div><div class="gmail_extra">Nick</div></div>
</div></blockquote></div><br class=""></div></body></html>