On Wed, Mar 18, 2009 at 7:05 PM, Alexander Neundorf <[email protected] > wrote:
> On Wednesday 18 March 2009, Denis Scherbakov wrote: > > You could do the following: > > > > ADD_LIBRARY(intermediate STATIC a.cpp) > > > > ADD_LIBRARY(foo b.cpp) > > TARGET_LINK_LIBRARIES(foo intermediate) > > > > ADD_LIBRARY(bar c.cpp) > > TARGET_LINK_LIBRARIES(bar intermediate) > > That's not portable if bar and foo are shared libraries. > See it as a feature that cmake recognizes that these files have to be > compiled > separately for separate targets, since separate targets may have other > compile flags etc, so may need different object files. > In theory the Makefile generator could be adapted to share object files across targets provided all the compilation flags are the same. This would obviously take time and introduce additional complexity. It would also be of limited benefit since usually source files are not compiled in more than one library or executable. Also, in theory you could reuse object files compiled for a shared library (with -fPIC) in static libraries (on certain platforms). Since preprocessor definitions usually always change per target when using shared libraries due to export definitions, however, this would also be of limited benefit. -- Philip Lowman
_______________________________________________ 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
