summaryrefslogtreecommitdiff
path: root/config.h.cmake
diff options
context:
space:
mode:
authorMarkus Minichmayr <markus@tapkey.com>2022-03-06 22:32:25 +0100
committerAllen Winter <allen.winter@kdab.com>2022-06-03 11:17:08 -0400
commit0d932910200e77b884d89917545495215567a9f6 (patch)
tree3c95f72bd3424e756964781db9e2c568a8d8426e /config.h.cmake
parent19ca5336c707bb70b3c62805c04fe04e35941d68 (diff)
downloadlibical-git-0d932910200e77b884d89917545495215567a9f6.tar.gz
Introduce `USE_64BIT_ICALTIME_T` CMake option to allow redirecting icaltime_t to 64-bit types.
Diffstat (limited to 'config.h.cmake')
-rw-r--r--config.h.cmake18
1 files changed, 14 insertions, 4 deletions
diff --git a/config.h.cmake b/config.h.cmake
index 561b91a8..039a8446 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -1,7 +1,5 @@
/* config.h. Generated by cmake from config.h.cmake */
-#include "config_public.h"
-
/* Define if you have the ICU library. */
#cmakedefine HAVE_LIBICU 1
@@ -235,6 +233,7 @@ typedef unsigned int wint_t;
#endif
#cmakedefine SIZEOF_TIME_T ${SIZEOF_TIME_T}
+#cmakedefine SIZEOF_ICALTIME_T ${SIZEOF_ICALTIME_T}
/* whether we have ICU DANGI calendar */
#cmakedefine HAVE_ICU_DANGI
@@ -523,17 +522,28 @@ typedef ssize_t IO_SSIZE_T;
#define localtime_r(tp,tmp) (localtime(tp)?(*(tmp)=*localtime(tp),(tmp)):0)
#endif
-#define SIZEOF_ICALTIME_T SIZEOF_TIME_T
-
/*
* Substitute functions for those from time.h but working with icaltime_t instead of time_t.
* icaltime_t is defined in config_public.h.cmake.
*/
+ #cmakedefine USE_64BIT_ICALTIME_T 1
+#if (defined(USE_64BIT_ICALTIME_T) && (SIZEOF_TIME_T != 8))
+#if defined(_MSC_VER)
+#define icaltime(timer) _time64(timer)
+#define icalctime(timer) _ctime64(timer)
+#define icalmktime(timeptr) _mktime64(timeptr)
+#define icalgmtime_r(tp,tmp) (_gmtime64(tp)?(*(tmp)=*_gmtime64(tp),(tmp)):0)
+#define icallocaltime_r(tp,tmp) (_localtime64(tp)?(*(tmp)=*_localtime64(tp),(tmp)):0)
+#else
+#error "This compiler is not supported together with the 'USE_64BIT_ICALTIME_T' option."
+#endif
+#else
#define icaltime(timer) time(timer)
#define icalctime(timer) ctime(timer)
#define icalmktime(timeptr) mktime(timeptr)
#define icalgmtime_r(timer, buf) gmtime_r(timer, buf)
#define icallocaltime_r(timer, buf) localtime_r(timer, buf)
+#endif
/* define MAXPATHLEN */
#if defined(_WIN32)