From 0fd1c5d8091569e1a94b37b5388422d55ba222c9 Mon Sep 17 00:00:00 2001 From: Brad King 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. --- Source/kwsys/CMakeLists.txt | 5 +++++ Source/kwsys/Configure.hxx.in | 4 ++++ Source/kwsys/kwsysPlatformCxxTests.cxx | 13 +++++++++++++ 3 files changed, 22 insertions(+) diff --git a/Source/kwsys/CMakeLists.txt b/Source/kwsys/CMakeLists.txt index 7da17d05dd..48732d6618 100644 --- a/Source/kwsys/CMakeLists.txt +++ b/Source/kwsys/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/Source/kwsys/Configure.hxx.in b/Source/kwsys/Configure.hxx.in index 5a6c75ea0c..1b9df6b7e5 100644 --- a/Source/kwsys/Configure.hxx.in +++ b/Source/kwsys/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/Source/kwsys/kwsysPlatformCxxTests.cxx b/Source/kwsys/kwsysPlatformCxxTests.cxx index e43bde55e6..a799c509e3 100644 --- a/Source/kwsys/kwsysPlatformCxxTests.cxx +++ b/Source/kwsys/kwsysPlatformCxxTests.cxx @@ -29,3 +29,16 @@ int main() { return 0; } #include int main() { return 0; } #endif + +#ifdef TEST_KWSYS_STAT_HAS_ST_MTIM +#include +#include +#include +int main() +{ + struct stat stat1; + (void)stat1.st_mtim.tv_sec; + (void)stat1.st_mtim.tv_nsec; + return 0; +} +#endif