I have a project that includes (and is dependent on) some independent sub-projects, e.g.

    "project1"/
        CMakeLists.txt
        src/
            library1/
                CMakeLists.txt
                include/
                    <source files ...>
                src/
                    <source files ...>
            main/
                CMakeLists.txt
                <source files ...>

"library1" is actually maintained as a git submodule, and is included in a
number of entirely different project, (e.g.  "project2", "project3", etc.).
Within each of these main or super projects like "project1", I want to just
build the library1 and statically link programs to it as needed (i.e., without
installing library1's headers and binaries to the installation destination).
It would be nice to provide the facility for a third-party use to build and
install library1 independentally (e.g. system-wide).

What is the recommended why to organize the build through CMake?

Right now, the CMakeLists.txt of "project1" explicitly adds
"src/library1/include" to the include path, and calls
`add_subdirectory(src/library1/src)` to build the library and statically links
to it. Is this a good practice? I read the page on package configuration and
it seems that the convention would be to create a package configuration
framework for library1, and then have "project1" call "find_package()". I
tried doing this, but could not get it to work. With this setup, "project1"
requires that "library1" be built and installed and available before its
build.

One idea I had is that a package configuration setup for library1 that would
build and install everything to the project binary directory, from where
project1's targets could pick it up? But I could not get this to work with the
ProjectConfiguration recipe.





--



--------------------------------------
Jeet Sukumaran
--------------------------------------
[email protected]
--------------------------------------
Department of Biology
Duke University
Box 90338
Durham, NC 27708
--------------------------------------
Blog/Personal Pages:
   http://jeetworks.org/
Photograph Galleries:
   http://jeet.smugmug.com/
GitHub Repositories:
   http://github.com/jeetsukumaran
--------------------------------------

--

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

Reply via email to