aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmake
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2007-05-30 18:08:35 +0000
committerGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2007-05-30 18:08:35 +0000
commit658eccd43b43caad7b03c593d9645e797f063799 (patch)
tree7dea35b17e28bd3386ee672832da57fd59d46a7e /cmake
parent7947ae0e502d4a71b5db19e582399a17d5647273 (diff)
Convert 5 m4 checks to cmake modules
Diffstat (limited to 'cmake')
-rw-r--r--cmake/CheckComplex.cmake22
-rw-r--r--cmake/CheckComplexMath1.cmake23
-rw-r--r--cmake/CheckComplexMath2.cmake22
-rw-r--r--cmake/CheckIeeeMath.cmake30
-rw-r--r--cmake/CheckSysvMath.cmake34
5 files changed, 131 insertions, 0 deletions
diff --git a/cmake/CheckComplex.cmake b/cmake/CheckComplex.cmake
new file mode 100644
index 000000000..6b667f486
--- /dev/null
+++ b/cmake/CheckComplex.cmake
@@ -0,0 +1,22 @@
+INCLUDE(CheckCXXSourceCompiles)
+
+MACRO (CHECK_COMPLEX _RESULT)
+
+SET(_CHECK_COMPLEX_SOURCE_CODE "
+
+#include<complex>
+
+using namespace std;
+
+int main(int argc, char *argv[])
+{
+ complex<double> x(1.0, 1.0);
+ complex<float> y(1.0f, 1.0f);
+ return 0;
+}
+
+")
+
+CHECK_CXX_SOURCE_COMPILES("${_CHECK_COMPLEX_SOURCE_CODE}" ${_RESULT})
+
+ENDMACRO (CHECK_COMPLEX)
diff --git a/cmake/CheckComplexMath1.cmake b/cmake/CheckComplexMath1.cmake
new file mode 100644
index 000000000..52024288d
--- /dev/null
+++ b/cmake/CheckComplexMath1.cmake
@@ -0,0 +1,23 @@
+INCLUDE(CheckCXXSourceCompiles)
+
+MACRO (CHECK_COMPLEX_MATH1 _RESULT)
+
+SET(_CHECK_COMPLEX_MATH1_SOURCE_CODE "
+
+#include<complex>
+
+using namespace std;
+
+int main(int argc, char *argv[])
+{
+ complex<double> x(1.0, 1.0), y(1.0, 1.0);
+ cos(x); cosh(x); exp(x); log(x); pow(x,1); pow(x,double(2.0));
+ pow(x, y); pow(double(2.0), x); sin(x); sinh(x); sqrt(x); tan(x); tanh(x);
+ return 0;
+}
+
+")
+
+CHECK_CXX_SOURCE_COMPILES("${_CHECK_COMPLEX_MATH1_SOURCE_CODE}" ${_RESULT})
+
+ENDMACRO (CHECK_COMPLEX_MATH1)
diff --git a/cmake/CheckComplexMath2.cmake b/cmake/CheckComplexMath2.cmake
new file mode 100644
index 000000000..68ed74417
--- /dev/null
+++ b/cmake/CheckComplexMath2.cmake
@@ -0,0 +1,22 @@
+INCLUDE(CheckCXXSourceCompiles)
+
+MACRO (CHECK_COMPLEX_MATH2 _RESULT)
+
+SET(_CHECK_COMPLEX_MATH2_SOURCE_CODE "
+
+#include<complex>
+
+using namespace std;
+
+int main(int argc, char *argv[])
+{
+ complex<double> x(1.0, 1.0), y(1.0, 1.0);
+ acos(x); asin(x); atan(x); atan2(x,y); atan2(x, double(3.0));
+ atan2(double(3.0), x); log10(x); return 0;
+}
+
+")
+
+CHECK_CXX_SOURCE_COMPILES("${_CHECK_COMPLEX_MATH2_SOURCE_CODE}" ${_RESULT})
+
+ENDMACRO (CHECK_COMPLEX_MATH2)
diff --git a/cmake/CheckIeeeMath.cmake b/cmake/CheckIeeeMath.cmake
new file mode 100644
index 000000000..13bc6ac61
--- /dev/null
+++ b/cmake/CheckIeeeMath.cmake
@@ -0,0 +1,30 @@
+INCLUDE(CheckCXXSourceCompiles)
+
+MACRO (CHECK_IEEE_MATH _RESULT)
+
+SET(_CHECK_IEEE_MATH_SOURCE_CODE "
+
+#include<cmath>
+
+int main(int argc, char *argv[])
+{
+ double x = 1.0; double y = 1.0;
+ acosh(x); asinh(x); atanh(x);
+ expm1(x);
+ erf(x); erfc(x);
+ // finite(x);
+ isnan(x);
+ j0(x); j1(x);
+ lgamma(x);
+ logb(x); log1p(x);
+ rint(x);
+ // trunc(x);
+ y0(x); y1(x);
+ return 0;
+}
+
+")
+
+CHECK_CXX_SOURCE_COMPILES("${_CHECK_IEEE_MATH_SOURCE_CODE}" ${_RESULT})
+
+ENDMACRO (CHECK_IEEE_MATH)
diff --git a/cmake/CheckSysvMath.cmake b/cmake/CheckSysvMath.cmake
new file mode 100644
index 000000000..d4542bc59
--- /dev/null
+++ b/cmake/CheckSysvMath.cmake
@@ -0,0 +1,34 @@
+INCLUDE(CheckCXXSourceCompiles)
+
+MACRO (CHECK_SYSV_MATH _RESULT)
+
+SET(_CHECK_SYSV_MATH_SOURCE_CODE "
+
+#include<cmath>
+
+int main(int argc, char *argv[])
+{
+ double x = 1.0; double y = 1.0;
+ _class(x);
+ ilogb(x);
+ itrunc(x);
+ nearest(x);
+ rsqrt(x);
+ uitrunc(x);
+
+ copysign(x,y);
+ drem(x,y);
+ fmod(x,y);
+ hypot(x,y);
+ nextafter(x,y);
+ remainder(x,y);
+ scalb(x,y);
+ unordered(x,y);
+ return 0;
+}
+
+")
+
+CHECK_CXX_SOURCE_COMPILES("${_CHECK_SYSV_MATH_SOURCE_CODE}" ${_RESULT})
+
+ENDMACRO (CHECK_SYSV_MATH)