[CMake] Incorrect implicit library selections in generated link statements

2012-01-03 Thread Schuchard, Matthew
I have a large static library comprised of C, C++, Fortran, and Ada source 
files.
I have a number of C, C++, Fortran, and Ada executables linking against this 
library.

When CMake generates the link statements in link.txt, the implicit libraries 
selected to be linked against from the possibilities located in 
CMakeFiles/CMake[lang]Compiler.cmake are always incorrect.

For example, in an Ada executable, the implicit libraries selected to be linked 
against are only C and Fortran, not Ada, and some of the libraries selected are 
superfluous while other necessary libraries are not included at all.  Also, the 
directory where the Fortran libraries are found is not pulled from the implicit 
link directory possibilities, whereas the C one is.

For a Fortran executable, the libraries selected to be linked against are found 
from C, Fortran, C++, and Ada, but once again the library selection seems 
random and the directory containing the Ada libraries is absent from the link 
statement.  This is especially disconcerting since those libraries are in 
/usr/lib[64].

Why is CMake's link statement logic regarding implicit libraries completely 
imploding when executables link against a static library comprised of multiple 
languages?
Does anyone know of some good hacks/kludges to circumvent CMake's behavior?
--

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

Re: [CMake] Incorrect implicit library selections in generated link statements

2012-01-03 Thread David Cole
On Tue, Jan 3, 2012 at 2:30 PM, Schuchard, Matthew
matthew.schuch...@gtri.gatech.edu wrote:
 I have a large static library comprised of C, C++, Fortran, and Ada source
 files.

 I have a number of C, C++, Fortran, and Ada executables linking against this
 library.



 When CMake generates the link statements in link.txt, the implicit libraries
 selected to be linked against from the possibilities located in
 CMakeFiles/CMake[lang]Compiler.cmake are always incorrect.



 For example, in an Ada executable, the implicit libraries selected to be
 linked against are only C and Fortran, not Ada, and some of the libraries
 selected are superfluous while other necessary libraries are not included at
 all.  Also, the directory where the Fortran libraries are found is not
 pulled from the implicit link directory possibilities, whereas the C one is.

 For a Fortran executable, the libraries selected to be linked against are
 found from C, Fortran, C++, and Ada, but once again the library selection
 seems random and the directory containing the Ada libraries is absent from
 the link statement.  This is especially disconcerting since those libraries
 are in /usr/lib[64].



 Why is CMake’s link statement logic regarding implicit libraries completely
 imploding when executables link against a static library comprised of
 multiple languages?

 Does anyone know of some good hacks/kludges to circumvent CMake’s behavior?


 --

 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


How did you build your large static library comprised of C, C++,
Fortran, and Ada source files ... ?

(Just curious, and suspect the answer may help others answer your
question, too.)
--

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