File: ecbuild_get_date.cmake

package info (click to toggle)
eccodes 2.12.0-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 480,184 kB
  • sloc: ansic: 163,815; makefile: 21,266; sh: 8,507; python: 6,026; f90: 5,762; perl: 2,891; yacc: 818; lex: 356; cpp: 305; fortran: 116; awk: 66
file content (60 lines) | stat: -rw-r--r-- 1,979 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# (C) Copyright 2011- ECMWF.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
# In applying this licence, ECMWF does not waive the privileges and immunities
# granted to it by virtue of its status as an intergovernmental organisation nor
# does it submit to any jurisdiction.

##############################################################################
#.rst:
#
# ecbuild_get_date
# ================
#
# Set the CMake variable ``${DATE}`` to the current date in the form
# YYYY.mm.DD. ::
#
#   ecbuild_get_date( DATE )
#
##############################################################################

macro(ecbuild_get_date RESULT)
  if (HAVE_BIT_REPRODUCIBLE)
    ecbuild_info("date not included in bit-reproducible builds")
  else()
    if(UNIX)
        execute_process(COMMAND "date" "+%d/%m/%Y" OUTPUT_VARIABLE ${RESULT})
        string(REGEX REPLACE "(..)/(..)/(....).*" "\\3.\\2.\\1" ${RESULT} ${${RESULT}})
    else()
        ecbuild_error("date not implemented")
      endif()
  endif()
endmacro(ecbuild_get_date)

##############################################################################
#.rst:
#
# ecbuild_get_timestamp
# =====================
#
# Set the CMake variable ``${TIMESTAMP}`` to the current date and time in the
# form YYYYmmDDHHMMSS. ::
#
#   ecbuild_get_timestamp( TIMESTAMP )
#
##############################################################################

macro(ecbuild_get_timestamp RESULT)
  if (HAVE_BIT_REPRODUCIBLE)
    ecbuild_info("date not included in bit-reproducible builds")
  else()
    if(UNIX)
        execute_process(COMMAND "date" "+%Y/%m/%d/%H/%M/%S" OUTPUT_VARIABLE _timestamp)
        string(REGEX REPLACE "(....)/(..)/(..)/(..)/(..)/(..).*" "\\1\\2\\3\\4\\5\\6" ${RESULT} ${_timestamp})
    else()
        ecbuild_warn("This is NOT UNIX - timestamp not implemented")
    endif()
  endif()
endmacro(ecbuild_get_timestamp)