set (CMAKE_CONFIGURATION_TYPES "Debug;Release;RelWithDebInfo"
CACHE STRING "" FORCE)
-string (TIMESTAMP BUILD_DATE "%Y-%m-%d")
-
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
include(CheckCCompilerFlag)
include(CheckCXXCompilerFlag)
message(FATAL_ERROR "No python interpreter found")
endif()
+# allow for reproducible builds - python for portability
+if (DEFINED ENV{SOURCE_DATE_EPOCH})
+ execute_process(
+ COMMAND "${PYTHON}" "${CMAKE_MODULE_PATH}/formatdate.py" "$ENV{SOURCE_DATE_EPOCH}"
+ OUTPUT_VARIABLE BUILD_DATE
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+else ()
+ string (TIMESTAMP BUILD_DATE "%Y-%m-%d")
+endif ()
+message(STATUS "Build date: ${BUILD_DATE}")
+
+
if(${RAGEL} STREQUAL "RAGEL-NOTFOUND")
message(FATAL_ERROR "Ragel state machine compiler not found")
endif()
--- /dev/null
+#!/usr/bin/env python
+from __future__ import print_function
+import os
+import sys
+import datetime
+
+def usage():
+ print("Usage:", os.path.basename(sys.argv[0]), "<seconds from epoch>")
+
+if len(sys.argv) != 2:
+ usage()
+ sys.exit(1)
+
+ts = sys.argv[1]
+
+build_date = datetime.datetime.utcfromtimestamp(int(ts))
+
+print(build_date.strftime("%Y-%m-%d"))