[CMake] Incorrect implicit library selections in generated link statements

David Cole david.cole at kitware.com
Tue Jan 3 14:36:39 EST 2012


On Tue, Jan 3, 2012 at 2:30 PM, Schuchard, Matthew
<Matthew.Schuchard at 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.)


More information about the CMake mailing list