From 38be366a67cd16a976eb6cff145c2e139fc9bbac Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Tue, 6 Aug 2013 10:23:43 +0200 Subject: [PATCH] Fixed generation of configure header, now replacing date fields with current date. Added CMake script to generate a variable containing the current date. Removed last argument (the terminating NULL element) from output. --- client/X11/CMakeLists.txt | 15 ++++++++++++--- client/X11/generate_argument_docbook.c | 9 ++++++++- client/X11/{xfreerdp.1.xml => xfreerdp.1.xml.in} | 6 +++--- cmake/today.cmake | 16 ++++++++++++++++ 4 files changed, 39 insertions(+), 7 deletions(-) rename client/X11/{xfreerdp.1.xml => xfreerdp.1.xml.in} (94%) create mode 100644 cmake/today.cmake diff --git a/client/X11/CMakeLists.txt b/client/X11/CMakeLists.txt index eab3cf229..5d104cb94 100644 --- a/client/X11/CMakeLists.txt +++ b/client/X11/CMakeLists.txt @@ -68,17 +68,26 @@ set(${MODULE_PREFIX}_LIBS ${CMAKE_DL_LIBS}) if(WITH_MANPAGES) + if(XMLTO_FOUND) + # We need the variable ${MAN_TODAY} to contain the current date in ISO + # format to replace it in the configure_file step. + include(today) + + TODAY(MAN_TODAY) + + configure_file(xfreerdp.1.xml.in xfreerdp.1.xml @ONLY) + add_executable(generate_argument_docbook generate_argument_docbook.c) target_link_libraries(generate_argument_docbook winpr-utils freerdp-core freerdp-utils freerdp-client) - if(XMLTO_FOUND) add_custom_command(OUTPUT xfreerdp.1 COMMAND generate_argument_docbook - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/xfreerdp.1.xml ${CMAKE_CURRENT_BINARY_DIR}/ COMMAND ${XMLTO_EXECUTABLE} man xfreerdp.1.xml WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS xfreerdp.1.xml generate_argument_docbook) + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/xfreerdp.1.xml + generate_argument_docbook) add_custom_target(xfreerdp.manpage ALL DEPENDS xfreerdp.1) diff --git a/client/X11/generate_argument_docbook.c b/client/X11/generate_argument_docbook.c index 1c324acf9..37fe96ce8 100644 --- a/client/X11/generate_argument_docbook.c +++ b/client/X11/generate_argument_docbook.c @@ -123,6 +123,7 @@ LPCSTR tr_esc_str(LPCSTR arg) int main(int argc, char *argv[]) { + size_t elements = sizeof(args)/sizeof(args[0]); size_t x; const char *fname = "xfreerdp-argument.1.xml"; FILE *fp = NULL; @@ -142,7 +143,13 @@ int main(int argc, char *argv[]) /* Iterate over argument struct and write data to docbook 4.5 * compatible XML */ - for(x=0; x - 2013-08-05 + @MAN_TODAY@ The FreeRDP Team @@ -25,7 +25,7 @@ PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" - 2013-08-05 + @MAN_TODAY@ xfreerdp [file] [options] [/v:server[:port]] @@ -33,7 +33,7 @@ PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" - 2011-08-27 + @MAN_TODAY@ DESCRIPTION diff --git a/cmake/today.cmake b/cmake/today.cmake new file mode 100644 index 000000000..51d0031a8 --- /dev/null +++ b/cmake/today.cmake @@ -0,0 +1,16 @@ +# This script returns the current date in ISO format +# +# YYYY-MM-DD +# +MACRO (TODAY RESULT) + IF (WIN32) + EXECUTE_PROCESS(COMMAND "cmd" " /C date +%Y-%m-%d" OUTPUT_VARIABLE ${RESULT}) + string(REGEX REPLACE "(..)/(..)/..(..).*" "\\1/\\2/\\3" ${RESULT} ${${RESULT}}) + ELSEIF(UNIX) + EXECUTE_PROCESS(COMMAND "date" "+%Y-%m-%d" OUTPUT_VARIABLE ${RESULT}) + string(REGEX REPLACE "(..)/(..)/..(..).*" "\\1/\\2/\\3" ${RESULT} ${${RESULT}}) + ELSE (WIN32) + MESSAGE(SEND_ERROR "date not implemented") + SET(${RESULT} 000000) + ENDIF (WIN32) +ENDMACRO (TODAY)