diff options
| author | Krzysztof Kosi??ski <tweenk.pl@gmail.com> | 2009-01-11 21:21:20 +0000 |
|---|---|---|
| committer | tweenk <tweenk@users.sourceforge.net> | 2009-01-11 21:21:20 +0000 |
| commit | 366ad0f6c860b7060b281ecc0e1e3ea439bafca1 (patch) | |
| tree | d238d255886238f8e5b19d48c01b3357c6f45dd4 /CMakeScripts | |
| parent | Now it is possible to clear the list of documents in (diff) | |
| download | inkscape-366ad0f6c860b7060b281ecc0e1e3ea439bafca1.tar.gz inkscape-366ad0f6c860b7060b281ecc0e1e3ea439bafca1.zip | |
UseGlibMarshal.cmake - Don't overwrite the file if it hasn't changed
(bzr r7116)
Diffstat (limited to 'CMakeScripts')
| -rw-r--r-- | CMakeScripts/UseGlibMarshal.cmake | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/CMakeScripts/UseGlibMarshal.cmake b/CMakeScripts/UseGlibMarshal.cmake index 6f81730e5..63d501a57 100644 --- a/CMakeScripts/UseGlibMarshal.cmake +++ b/CMakeScripts/UseGlibMarshal.cmake @@ -21,8 +21,16 @@ MACRO(GLIB_MARSHAL GLIB_MARSHAL_PREFIX GLIB_MARSHAL_FILE GLIB_MARSHAL_OUTPUT_LOC EXECUTE_PROCESS(COMMAND ${GLIB_MARSHAL_EXECUTABLE} --prefix=${GLIB_MARSHAL_PREFIX} --body ${CMAKE_CURRENT_SOURCE_DIR}/${GLIB_MARSHAL_FILE}.list OUTPUT_VARIABLE GLIB_MARSHAL_OUTPUT_CPP ) - FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h "${GLIB_MARSHAL_OUTPUT_HEADER}") - FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.cpp "${GLIB_MARSHAL_OUTPUT_EXTRA_LINE}") - FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.cpp "${GLIB_MARSHAL_OUTPUT_CPP}") - ENDIF(GLIB_MARSHAL_EXECUTABLE) -ENDMACRO(GLIB_MARSHAL) + # check whether the generated file is the same as the existing one + FILE(READ ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h GLIB_MARSHAL_HEADER_OLD) + IF(NOT GLIB_MARSHAL_HEADER_OLD STREQUAL GLIB_MARSHAL_OUTPUT_HEADER) + MESSAGE(STATUS "${GLIB_MARSHAL_FILE}.h changed; overwriting") + FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.h "${GLIB_MARSHAL_OUTPUT_HEADER}") + FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.cpp "${GLIB_MARSHAL_OUTPUT_EXTRA_LINE}") + FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_FILE}.cpp "${GLIB_MARSHAL_OUTPUT_CPP}") + ELSE() + MESSAGE(STATUS "${GLIB_MARSHAL_FILE}.h unchanged") + ENDIF() + ENDIF() +ENDMACRO() + |
