diff --git a/CMakeLists.txt b/CMakeLists.txt index 4271ad9a6abfb5b5fbf226c72b107ddbd1e8764b..ae578587cc95c2802449d5b9dc98ee012dbf523b 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 de939671c1d83510e95c4a04fdb7f04d1e983285..3c48339f31f2d1dfa21401f240adab8cbb544b3f 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 e43bde55e665ed6ece1dd8fd9311d9ce51ca4240..a799c509e381a942441b92acd7b238e40a236d48 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