Browse Source

Add macro which checks if the header file exists

Andy Cedilnik 23 years ago
parent
commit
5a08e1b6dc
2 changed files with 40 additions and 0 deletions
  1. 14 0
      Modules/CheckIncludeFile.c.in
  2. 26 0
      Modules/CheckIncludeFile.cmake

+ 14 - 0
Modules/CheckIncludeFile.c.in

@@ -0,0 +1,14 @@
+#ifdef CHECK_INCLUDE_FILE
+
+#include <${CHECK_INCLUDE_FILE_VAR}>
+
+int main()
+{
+  return 0;
+}
+
+#else  /* CHECK_INCLUDE_FILE */
+
+#  error "CHECK_INCLUDE_FILE has to specify the include file"
+
+#endif /* CHECK_INCLUDE_FILE */

+ 26 - 0
Modules/CheckIncludeFile.cmake

@@ -0,0 +1,26 @@
+#
+# Check if the include file exists.
+#
+# CHECK_INCLUDE_FILE - macro which checks the include file exists.
+# INCLUDE - name of include file
+# VARIABLE - variable to return result
+#
+
+MACRO(CHECK_INCLUDE_FILE INCLUDE VARIABLE)
+  SET(CHECK_INCLUDE_FILE_VAR ${INCLUDE})
+  CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CheckIncludeFile.c.in
+                 ${PROJECT_BINARY_DIR}/CheckIncludeFile.c IMMEDIATE)
+  TRY_COMPILE(COMPILE_OK
+             ${PROJECT_BINARY_DIR}
+             ${PROJECT_BINARY_DIR}/CheckIncludeFile.c
+             COMPILE_DEFINITIONS -DCHECK_INCLUDE_FILE="${INCLUDE}"
+             OUTPUT_VARIABLE OUTPUT)
+  IF(COMPILE_OK)
+    SET(${VARIABLE} ${COMPILE_OK})
+  ELSE(COMPILE_OK)
+    WRITE_FILE(${PROJECT_BINARY_DIR}/CMakeError.log 
+      "Determining if the include file ${INCLUDE} "
+      "exists failed with the following output:\n"
+      "${OUTPUT}\n")
+  ENDIF(COMPILE_OK)
+ENDMACRO(CHECK_INCLUDE_FILE)