From 93df6a72eda0a9a3ee3ec7dc351f83753e5e7f49 Mon Sep 17 00:00:00 2001
From: Brad King <brad.king@kitware.com>
Date: Thu, 17 Feb 2005 10:49:16 -0500
Subject: [PATCH] ENH: Added try-compile KWSYS_STAT_HAS_ST_MTIM.  This tests
 whether struct stat has the extra st_mtim member that has high resolution
 times.

---
 CMakeLists.txt            |  5 +++++
 Configure.hxx.in          |  4 ++++
 kwsysPlatformCxxTests.cxx | 13 +++++++++++++
 3 files changed, 22 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4271ad9a..ae578587 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -175,6 +175,11 @@ ELSE(KWSYS_IOS_USE_SSTREAM)
   ENDIF(KWSYS_IOS_USE_STRSTREAM_H)
 ENDIF(KWSYS_IOS_USE_SSTREAM)
 
+IF(UNIX)
+  KWSYS_PLATFORM_CXX_TEST(KWSYS_STAT_HAS_ST_MTIM
+    "Checking whether struct stat has st_mtim member" DIRECT)
+ENDIF(UNIX)
+
 IF(KWSYS_NAMESPACE MATCHES "^kwsys$")
   SET(KWSYS_NAME_IS_KWSYS 1)
 ELSE(KWSYS_NAMESPACE MATCHES "^kwsys$")
diff --git a/Configure.hxx.in b/Configure.hxx.in
index de939671..3c48339f 100644
--- a/Configure.hxx.in
+++ b/Configure.hxx.in
@@ -54,6 +54,9 @@
 # define @KWSYS_NAMESPACE@_ios @KWSYS_NAMESPACE@_ios
 #endif
 
+/* Whether struct stat has the st_mtim member for high resolution times.  */
+#define @KWSYS_NAMESPACE@_STAT_HAS_ST_MTIM @KWSYS_STAT_HAS_ST_MTIM@
+
 /* If building a C++ file in kwsys itself, give the source file
    access to the macros without a configured namespace.  */
 #if defined(KWSYS_NAMESPACE)
@@ -68,6 +71,7 @@
 # define KWSYS_IOS_USE_SSTREAM     @KWSYS_NAMESPACE@_IOS_USE_SSTREAM
 # define KWSYS_IOS_USE_STRSTREAM_H @KWSYS_NAMESPACE@_IOS_USE_STRSTREAM_H
 # define KWSYS_IOS_USE_STRSTREA_H  @KWSYS_NAMESPACE@_IOS_USE_STRSTREA_H
+# define KWSYS_STAT_HAS_ST_MTIM    @KWSYS_NAMESPACE@_STAT_HAS_ST_MTIM
 #endif
 
 #endif
diff --git a/kwsysPlatformCxxTests.cxx b/kwsysPlatformCxxTests.cxx
index e43bde55..a799c509 100644
--- a/kwsysPlatformCxxTests.cxx
+++ b/kwsysPlatformCxxTests.cxx
@@ -29,3 +29,16 @@ int main() { return 0; }
 #include <strstrea.h>
 int main() { return 0; }
 #endif
+
+#ifdef TEST_KWSYS_STAT_HAS_ST_MTIM
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+int main()
+{
+  struct stat stat1;
+  (void)stat1.st_mtim.tv_sec;
+  (void)stat1.st_mtim.tv_nsec;
+  return 0;
+}
+#endif
-- 
GitLab