summaryrefslogtreecommitdiffstats
path: root/CMakeScripts/UseGlibMarshal.cmake
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2009-01-11 21:21:20 +0000
committertweenk <tweenk@users.sourceforge.net>2009-01-11 21:21:20 +0000
commit366ad0f6c860b7060b281ecc0e1e3ea439bafca1 (patch)
treed238d255886238f8e5b19d48c01b3357c6f45dd4 /CMakeScripts/UseGlibMarshal.cmake
parentNow it is possible to clear the list of documents in (diff)
downloadinkscape-366ad0f6c860b7060b281ecc0e1e3ea439bafca1.tar.gz
inkscape-366ad0f6c860b7060b281ecc0e1e3ea439bafca1.zip
UseGlibMarshal.cmake - Don't overwrite the file if it hasn't changed
(bzr r7116)
Diffstat (limited to '')
-rw-r--r--CMakeScripts/UseGlibMarshal.cmake18
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()
+