Commits

pajoye  committed 3db9c95

- add missing cmake macros/modules

  • Participants
  • Parent commits 1a283dc

Comments (0)

Files changed (4)

File src/cmake/modules/TestForHighBitCharacters.c

+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+     (('a' <= (c) && (c) <= 'i') \
+	 || ('j' <= (c) && (c) <= 'r') \
+	 || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+  main ()
+{
+   int i;
+   for (i = 0; i < 256; i++)
+     if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i))
+       exit(1);
+   exit (0);
+}

File src/cmake/modules/TestForHighBitCharacters.cmake

+# cmake/modules/TestForHighBitCharacters.cmake
+#
+# Copyright (C) 2006  Alan W. Irwin
+#
+# This file is part of PLplot.
+#
+# PLplot is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; version 2 of the License.
+#
+# PLplot is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public License
+# along with the file PLplot; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+
+# Check if ctype.h macros work on characters with the high bit set.
+if(NOT DEFINED CMAKE_HIGH_BIT_CHARACTERS)
+   message(STATUS 
+      "Check for whether ctype.h macros work on characters with the\n"
+   "   high bit set."
+   )
+  try_compile(CMAKE_HIGH_BIT_CHARACTERS  
+    ${CMAKE_BINARY_DIR}
+    ${CMAKE_SOURCE_DIR}/CMakeModules/TestForHighBitCharacters.c
+    OUTPUT_VARIABLE OUTPUT)
+  if(CMAKE_HIGH_BIT_CHARACTERS)
+    message(STATUS "High-bit characters - work")
+    set(HIGH_BIT_CHARACTERS 1 CACHE INTERNAL
+      "Do ctype.h macros work on high-bit characters")
+      file(APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeOutput.log
+      "Determining if ctype.h macros work on high-bit characters passed with "
+      "the following output:\n${OUTPUT}\n\n")
+  else(CMAKE_HIGH_BIT_CHARACTERS)
+    message(STATUS "High-bit characters - don't work")
+    set(HIGH_BIT_CHARACTERS 0 CACHE INTERNAL
+      "Do ctype.h macros work on high-bit characters")
+      file(APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log
+      "Determining if ctype.h macros work on high-bit characters failed with "
+      "the following output:\n${OUTPUT}\n\n")
+  endif(CMAKE_HIGH_BIT_CHARACTERS)
+endif(NOT DEFINED CMAKE_HIGH_BIT_CHARACTERS)

File src/cmake/modules/TestForStandardHeaderwait.cmake

+# cmake/modules/CheckHEADER_SYS_WAIT.cmake
+#
+# Copyright (C) 2006  Alan W. Irwin
+#
+# This file is part of PLplot.
+#
+# PLplot is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; version 2 of the License.
+#
+# PLplot is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public License
+# along with the file PLplot; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+
+#
+# - Check for sys/wait.h that is POSIX.1 compatible following autotools
+#   AC_HEADER_SYS_WAIT
+
+include(CheckCSourceCompiles)
+
+set(_CHECK_HEADER_SYS_WAIT_SOURCE_CODE "
+#include <sys/types.h>
+#include <sys/wait.h>
+#ifndef WEXITSTATUS
+# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
+#endif
+#ifndef WIFEXITED
+# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
+#endif
+int
+main ()
+{
+  int s;
+  wait (&s);
+  s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
+  ;
+  return 0;
+}
+")
+check_c_source_compiles(
+"${_CHECK_HEADER_SYS_WAIT_SOURCE_CODE}"
+HAVE_SYS_WAIT_H)

File src/cmake/modules/gd.cmake

+option(BUILD_TEST "Compile examples in the build tree and enable ctest" OFF)