Thanks, I was hoping that cmake would know I wanted the static library linked with the other static library target and grab the object files for that.
Scott On 18 Feb 2010, at 09:00, "David Cole" <[email protected]<mailto:[email protected]>> wrote: You're simply misunderstanding what cmake does with static libs and target_link_libraries. It does nothing to include all symbols in one library... It simply uses that information to chain all the libs together in a final executable. You can do: add_executable(e e.cxx) target_link_libraries(e one_final_lib_that_depends_on_all_others) ...and then e will be linked against *all* of the libs chained together with target_link_libraries calls. If you want all the symbols in one static library, you'll have to include all the sources in one add_library call. HTH, David On Thu, Feb 18, 2010 at 11:46 AM, Scott MacVicar <<mailto:[email protected]>[email protected]<mailto:[email protected]>> wrote: The linking doesn't include the .a files from the other directories, the final lib is missing those symbols. I checked with nm here, the error doesn't occur until until I attempt to use the built static library. Scott On 18 Feb 2010, at 07:36, "David Cole" <<mailto:[email protected]>[email protected]<mailto:[email protected]>> wrote: What do you mean by "refuses to link the static libraries which are targets from the subfolders" I looked at your CMakeLists.txt files, which, at first glance, look correct... What error do you get? If you say "make VERBOSE=1" does it give you more data about what might be going wrong? On Thu, Feb 18, 2010 at 3:48 AM, Scott MacVicar <<mailto:[email protected]><mailto:[email protected]>[email protected]<mailto:[email protected]>> wrote: Hi, I've been converting a current autoconf project to use CMake, the layout is such that there is a root directory and 3 sub directories containing various parts of the project. filters and nls build two static libs and mbfl builds a third static lib that links to the previous two. root --filters --mbfl --nls mbfl contains target_link_libraries(mbfl mbfl_filters) target_link_libraries(mbfl mbfl_nls) but refuses to link the static libraries which are targets from the subfolders. Entire repository is available at <http://github.com/scottmac/libmbfl> <http://github.com/scottmac/libmbfl> http://github.com/scottmac/libmbfl I could convert it to be built at one single lib in one go but would rather keep parity with the autoconf equivalents. Any help or pointers would be appreciated. Scott _______________________________________________ Powered by <http://www.kitware.com> <http://www.kitware.com> www.kitware.com<http://www.kitware.com> Visit other Kitware open-source projects at <http://www.kitware.com/opensource/opensource.html> <http://www.kitware.com/opensource/opensource.html> 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> <http://www.cmake.org/Wiki/CMake_FAQ> http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: <http://www.cmake.org/mailman/listinfo/cmake><http://www.cmake.org/mailman/listinfo/cmake>http://www.cmake.org/mailman/listinfo/cmake
_______________________________________________ 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
