[CMake] Searching for an undefined symbol in library
Alexander Neundorf
a.neundorf-work at gmx.net
Mon Nov 15 13:11:17 EST 2010
On Monday 15 November 2010, Marek Szuba wrote:
> Hello,
>
> To begin with, a bit of background. The project which I've been
> converting to CMake depends on a certain binary-only library. This
> library is available in several versions, differing in what Fortran
> compiler has been used to produce it; to make things simple let's
> assume there are only two such variants, one for g77 and one for PGI
> Fortran. The latter version is not explicitly linked against PGI
> run-time libraries, making it necessary to include these libraries in
> my project's build scripts.
>
> The problem at hand is that I would like my build scripts to
> automatically recognise the variant of the binary-only library. So
> far, i.e. in hand-crafted makefiles, this has been done by looking for
> PGI Fortan-specific symbols with nm, like this:
>
> need_pgf = $(strip $(shell nm libX.so | grep ftn_i_sign))
> ifneq ($(need_pgf),)
> LIBS += -L$(PGI)/lib -lpgc -lpgftnrtl
> endif
>
> What do you think would be the best way of implementing something to
> similar effect in CMake, guys?
You could do the same.
find_library(MY_X_LIB X)
if (MY_X_LIB)
execute_process(COMMAND nm ${MY_X_LIB}
COMMAND grep ftn_i_sign
OUTPUT_VARIABLE _grepOutpout)
... check for something in _grepOutput using string() or if( MATCHES)...
endif (MY_X_LIB)
Alex
More information about the CMake
mailing list