Every project's code base should be organized in the way that suits the needs best, whatever the needs may be. ;-) E.g., my personal liking for the general directory hierarchy of a project xyz - library or not - is
xyz xyz examples utilities ... i.e., the project's main part is organized as a sibling of typical supplementary parts like examples and utilities, and perhaps, one likes to centralize the tests in another sibling xyz/tests, too. This approach makes it easier to cope with a growing complexity; e.g., you do not need to worry where to put the examples if the main part is about to be split in, say, xyz-{core,gui,net,...}. In other words: Separate the main part(s) of a project from its supplementary parts and make the code base reflect this clearly. Again, that's just my personal taste, and others certainly vary. Ok... The top level directory/bundle name would probably have a version number: xyz-3.1.4 CMakeLists.txt + xyz <- represents the lib CMakeLists.txt + src CMakeLists.txt + rsrc + examples CMakeLists.txt + example0 CMakeLists.txt + src CMakeLists.txt + rsrc ... + tests + utilities ... With... xyz-3.1.4/CMakeLists.txt Main entry point for complete build, PROJECT(all), ADD_SUBDIRECTORY(xyz), ADD_SUBDIRECTORY(examples) xyz-3.1.4/xyz/CMakeLists.txt Setup context for the lib xyz-3.1.4/xyz/src/CMakeLists.txt Add the sources/resources of the lib, PROJECT(xyz), ADD_LIBRARY(...) xyz-3.1.4/examples/CMakeLists.txt Enumerate the examples, PROJECT(examples), ADD_SUBDIRECTORY(example0), ADD_SUBDIRECTORY(example1),... xyz-3.1.4/examples/example0/CMakeLists.txt Setup context for example0 xyz-3.1.4/examples/example0/src/CMakeLists.txt adds the sources/resources of example0, PROJECT(example0), ADD_EXECUTABLE(...), ADD_DEPENDENCY(xyz) ... This "template" stuff should really be in the documentation, it would have helped me a lot. More than http://www.cmake.org/cmake/help/examples.html. A library called "Hello", really? Thanks, Daniel -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake