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

Reply via email to