[CMake] How to handle third-party bundled software?

Kenny Erleben kenny at diku.dk
Thu May 24 15:20:08 EDT 2007


Hi All,

As a convenience I got a hand-full of third-party softwares bundled with 
my own code, These third-party softwares are released as source-only and 
got no binaries. For convenience I used to bundle these third-party 
dependencies together with my own software and provided vcproj files for 
building these third-party dependencies directly into the source tree, 
simply by changing output path and output name as needed in the project 
settings.

Now I am in the progress of switching to CMake, and I was wondering what 
would be the best way to deal with these dependencies?

I discovered that CMake is pretty clever, once it discovered that I am 
trying to link with a static lib that is being built by the same project 
it automatically add the output dirs to the linker directories of the 
current target. I am not sure whether this is really what I want. I like 
the idea of having all my third-party libs thrown into a folder like

  ${PROJECT_SOURCE_DIR}/externals/lib/

Such that from a user point of view all third-party software that is 
bundled with my code acts like it is not bundled with my code! I think 
it would work if CMake saw ${PROJECT_SOURCE_DIR}/externals/lib/ as the 
output path of the dependent static lib, and not the output dir in the 
project binary tree?

Also it is a bit unclear to me how one should handle the CMake install 
stuff  of third-party depedencies. I am confused about how to setup the 
linker directories for my executable targets, since these are not 
created before I am actually running an install?

Thx,

/Kenny










More information about the CMake mailing list