[CMake] libs only target

Brad King brad.king at kitware.com
Fri Jun 2 10:17:51 EDT 2006


Jan Woetzel wrote:
> Brad King wrote:
> 
>> IF(BUILD_EXAMPLES)
> 
> 
> Thanks Brad,
> that's almost the approach we currently use except
> IF (BUILD_EXAMPLES OR BUILD_TESTING)
> for ctest ADD_TEST executable targets.
> 
> However,
> we are not satisfied with this approach because:
> (1) If someone has built only the libs and he decides he wants the 
> examples,
> he has to run cmake to set BUILD_EXAMPLES (which takes time) which 
> creates/configures a new config.h (from config.in).
> This config.h is included alomost everywhere and thus everything is 
> unneccessarily rebuilt.

Why do you have a definition for BUILD_EXAMPLES in the top-level 
config.h?  Building the libs certainly shouldn't care whether examples 
will be built.  If a few of the sources do need to know for some reason 
just create a different configured header for BUILD_EXAMPLES and include 
it in only the sources that need it.

> So we prefer the approach of target:
> - "all" build libs+executables,
> - "libs" compiles+links all libraries but skips compiling+linking 
> executables.

ADD_CUSTOM_TARGET(libs)
ADD_DEPENDENCIES(libs lib1 lib2)

-Brad


More information about the CMake mailing list