# Distributed under the OSI-approved BSD 3-Clause License. See accompanying # file Copyright.txt or https://cmake.org/licensing for details. #[=======================================================================[.rst: FindCMath -------- Find the native CMath includes and library. IMPORTED Targets ^^^^^^^^^^^^^^^^ This module defines :prop_tgt:`IMPORTED` target ``CMath::CMath``, if CMath has been found. Result Variables ^^^^^^^^^^^^^^^^ This module defines the following variables: :: CMath_INCLUDE_DIRS - Where to find math.h CMath_LIBRARIES - List of libraries when using CMath. CMath_FOUND - True if CMath found. #]=======================================================================] include(CheckSymbolExists) include(CheckLibraryExists) check_symbol_exists(pow "math.h" CMath_HAVE_LIBC_POW) find_library(CMath_LIBRARY NAMES m) if(NOT CMath_HAVE_LIBC_POW) set(CMAKE_REQUIRED_LIBRARIES_SAVE ${CMAKE_REQUIRED_LIBRARIES}) set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${CMath_LIBRARY}) check_symbol_exists(pow "math.h" CMath_HAVE_LIBM_POW) set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES_SAVE}) endif() set(CMath_pow FALSE) if(CMath_HAVE_LIBC_POW OR CMath_HAVE_LIBM_POW) set(CMath_pow TRUE) endif() set(CMath_INCLUDE_DIRS) include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(CMath REQUIRED_VARS CMath_pow) if(CMath_FOUND) if(NOT CMath_INCLUDE_DIRS) set(CMath_INCLUDE_DIRS) endif() if(NOT CMath_LIBRARIES) if (CMath_LIBRARY) set(CMath_LIBRARIES ${CMath_LIBRARY}) endif() endif() if(NOT TARGET CMath::CMath) if(CMath_LIBRARIES) add_library(CMath::CMath UNKNOWN IMPORTED) set_target_properties(CMath::CMath PROPERTIES IMPORTED_LOCATION "${CMath_LIBRARY}") else() add_library(CMath::CMath INTERFACE IMPORTED) endif() endif() endif()