Featured image of post Récupérer la date et l'heure courante dans CMake

Récupérer la date et l'heure courante dans CMake

CMake ne fournit aucune commande standard pour récupérer sous forme de texte la date et l’heure courante. Voici deux macros qui permettent de récupérer ces informations sous Unix ou Windows.

Mise à jour - 03/01/2023

Depuis la rédaction de cet article, la commande string(TIMESTAMP) a été introduite dans la version courante de CMake. Il reste en ligne pour les archives, mais ces deux macros ne devraient plus être utilisées.

cmake_minimum_required(VERSION 2.8)

# Return the date (yyyy-mm-dd)
macro(DATE RESULT)
    if(WIN32)
        execute_process(COMMAND "cmd" " /C date /T" OUTPUT_VARIABLE ${RESULT})
        string(REGEX REPLACE "(..)/(..)/(....).*" "\\3-\\2-\\1" ${RESULT} ${${RESULT}})
    elseif(UNIX)
        execute_process(COMMAND "date" "+%Y-%m-%d" OUTPUT_VARIABLE ${RESULT})
    else()
        message(SEND_ERROR "Unable to detect date")
        set(${RESULT} UNKNOWN)
    endif()
endmacro()

# Return the time (hh:mm:ss)
macro(TIME RESULT)
    if(WIN32)
        execute_process(COMMAND "cmd" " /C echo %TIME%" OUTPUT_VARIABLE ${RESULT})
        string(REGEX REPLACE "(..:..:..),(..)" "\\1" ${RESULT} ${${RESULT}})
    elseif(UNIX)
        execute_process(COMMAND "date" "+%H:%M:%S" OUTPUT_VARIABLE ${RESULT})
    else()
        message(SEND_ERROR "Unable to detect time")
        set(${RESULT} UNKNOWN)
    endif()
endmacro()

Crédit photo : Murray Campbell

Dernière mise à jour le 03 Jan 2023 09:55 CET
comments powered by Disqus
Généré avec Hugo
Thème Stack conçu par Jimmy