Информация об изменениях

Сообщение Re[6]: cmake - детектируем математические функции из math.h от 02.05.2015 20:26

Изменено 02.05.2015 20:40 andyp

Здравствуйте, MTD, Вы писали:

MTD>А ты как ищешь?


Да стандарно, как подглядел у других. Пробовал CHECK_CXX_SYMBOL_EXISTS, CHECK_SYMBOL_EXISTS, CHECK_FUNCTION_EXISTS. Превые два варианта, на сколько понимаю, должны пытаться что-то покомпилять, третий — полинковать с тестовой программкой. Не великий знаток cmake, поэтому больше ничего на ум не приходит.

Т.е пишу в cmakelists.txt:

set(CMAKE_REQUIRED_LIBRARIES m) #это, на сколько понимаю, для gcc нужно
include (CheckFunctionExists)
CHECK_FUNCTION_EXISTS ( asinh HAVE_ASINH )

Ну или
include(CheckCXXSymbolExists)
CHECK_CXX_SYMBOL_EXISTS(asinh, cmath, HAVE_ASINH)

или
include(CheckSymbolExists)
CHECK_SYMBOL_EXISTS(asinh, math.h, HAVE_ASINH)

И все это для msvc 2013 фейлится. Но asinh в либе есть.
Re[6]: cmake - детектируем математические функции из math.h
Здравствуйте, MTD, Вы писали:

MTD>А ты как ищешь?


Да стандарно, как подглядел у других. Пробовал CHECK_CXX_SYMBOL_EXISTS, CHECK_SYMBOL_EXISTS, CHECK_FUNCTION_EXISTS. Превые два варианта, на сколько понимаю, должны пытаться что-то покомпилять, третий — полинковать с тестовой программкой. Не великий знаток cmake, поэтому больше ничего на ум не приходит.

Т.е пишу в cmakelists.txt:

set(CMAKE_REQUIRED_LIBRARIES m) #это, на сколько понимаю, для gcc нужно
include (CheckFunctionExists)
CHECK_FUNCTION_EXISTS ( asinh HAVE_ASINH )

Ну или
include(CheckCXXSymbolExists)
CHECK_CXX_SYMBOL_EXISTS(asinh, cmath, HAVE_ASINH)

или
include(CheckSymbolExists)
CHECK_SYMBOL_EXISTS(asinh, math.h, HAVE_ASINH)

И все это для msvc 2013 фейлится. Но asinh в либе есть. Есть он и в хидерах:
_GENERIC_MATH1(asinh, _CRTSPECIAL) //хидер xtgmath.h, определение видно, когда инклюдишь math.h