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++.

OK, makes sense:
symbol -> preprocessor
function -> real function

Although, for clarity, perhaps check_symbol_exists should be
called check_macro_exists.

The fact check_function_exists checks C function but not C++ free
function is a bit confusing. AFAIU, CMake is dedicated to build C++
source code, so I suppose many users may expect it works
well for both C and C++ free functions.

Why it can not work, actually?

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.

Yes, I know this problem quite well.
However, I rarely work with such old or incompatible libraries.
IMHO, CMake should be able to handle standard C++ definitions
and let users to deal with incompatibilities.

Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net
_______________________________________________
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