[CMake] Checking function or symbol in namespace

Marcel Loose loose at astron.nl
Thu Jan 21 03:56:45 EST 2010


On Thu, 2010-01-21 at 06:52 +0100, Michael Wild wrote:
> On 21. Jan, 2010, at 24:55 , Mateusz Loskot wrote:
> 
> > Hi,
> > 
> > I'm trying to perform the following checks:
> > 
> > check_function_exists(std::pow HAVE_POW)
> > 
> > or
> > 
> > check_symbol_exists(std::pow cmath HAVE_POW)
> > 
> > but it looks that both macros have troubles
> > with resolving std:: namespace.
> > 
> > The documentation is not very clear about that.
> > 
> > Or I should stick to try_compile based tests?
> > 
> > Best regards,
> > 
> 
> 
> AFAIK check_symbol_exists is used for preprocessor symbols.
check_function_exists looks for C functions, not C++. Also notice, that
older C++ standard libraries and non-compliant C++ compilers don't use
the namespace std. You might want to have a look at
CMakeBackwardCompatibilityCXX.cmake or the various other modules it
uses.
> 
> 
> HTH
> 
> Michael
> 
I thought that check_symbol_exists() was meant to check for the
*declaration* of a symbol (e.g. a function) in a header file; and that
check_function_exists() was meant to check for the *definition* of a
function (i.e. exists as symbol in a library).

Best regards,
Marcel Loose.





More information about the CMake mailing list