[CMake] Configuring targets & software that isn't yet built

Brian Davis bitminer at gmail.com
Wed Jul 21 09:55:10 EDT 2010


I too would like the answer to this and other questions.  I have been having
the same problem with CMake (among others)

How to build a project that contains multiple 3rd party sources where:

1) build of one package is dependent on the not yet installed install of a
dependency package where the install of the dependency is part of the "uber
project".  This occurs where all source of multiple 3rd party packages is
contained in the source tree where it is checked out cleanly build on a
build server or user machine and there is one CMakeLists.txt file which
defines the project without having to call CMake multiple times for each
project.
2) modularity in the use of add_subdirectory or as of yet a not net defined
alternative in CMake where 3rd Party packages would not blast away each
others global CMAKE_C_FLAGS due to the inevitalbe use by each 3rdParty
project of CACHE STRING "" FORCE etc.  My desire for namespaces when
add_subdirecoty is called or project(someproject) is called.
EXTERNAL_PROJECT_ADD (though I am forced to do this for vtk, dcmtk, and
VTKEdge) is not the solution (IMHO) for these issues as I am forced to build
the entire project for only a few needed dependencies.  If you choose this
route then use EXTERNAL_PROJECT_ADD for each project then use
add_dependency  linking the projects in order of their dependencies.  This
worked for me, but mileage may vary.
3) ability to build only what you need in third party libs.  So far
boost-cmake is the closest I have come to a project which allows this which
I need to patch to get it to do what I need it to do as boost-cmake blasts
away the CMAKE_C_FLAGS and friends or in their own words "These are not used
by Boost".  I only wish this was the rule not the exception.  Basicly I
desire decent automatic dependency checking and multiple level target
installs such as Boost-Build supports.  This would allow me to build only
what I need and install only what I need in 3rdParty packages.
4) project sub directory inheritance of CMAKE_C_FLAGS and friends.  I have
said it on this forum multiple times and have not as yet gotten a good
answer (I am sure there is one) for why CMAKE, Boost-Build, and other tools
choose sub directory inheritance for CMAKE_C_FLAGS and friends over non
directory dependent project inheritance as Boost-Build supports, but takes
some finagling to activate.

Brian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100721/c0781315/attachment.htm>


More information about the CMake mailing list