summaryrefslogtreecommitdiffstats
path: root/CMakeScripts/UseGlibMarshal.cmake
diff options
context:
space:
mode:
authorJoshua L. Blocher <verbalshadow@gmail.com>2008-04-05 16:09:23 +0000
committerverbalshadow <verbalshadow@users.sourceforge.net>2008-04-05 16:09:23 +0000
commit3db6dd9f163bc6f664a7ef5af5f442e436d259f8 (patch)
tree2f65558c7888c80a39baf296383a1717bb99b1a2 /CMakeScripts/UseGlibMarshal.cmake
parentcmake: add explicit coloring and verbosity setting (diff)
downloadinkscape-3db6dd9f163bc6f664a7ef5af5f442e436d259f8.tar.gz
inkscape-3db6dd9f163bc6f664a7ef5af5f442e436d259f8.zip
Cmake: add UseGlibMarshal.cmake for generating files
(bzr r5338)
Diffstat (limited to '')
-rw-r--r--CMakeScripts/UseGlibMarshal.cmake27
1 files changed, 27 insertions, 0 deletions
diff --git a/CMakeScripts/UseGlibMarshal.cmake b/CMakeScripts/UseGlibMarshal.cmake
new file mode 100644
index 000000000..79ae08f4f
--- /dev/null
+++ b/CMakeScripts/UseGlibMarshal.cmake
@@ -0,0 +1,27 @@
+# - This is a module to Generate files using Glib-Marshal
+# Both the header and source files (.h and .cpp)
+# Copyright 2008 - Joshua L. Blocher
+#
+# And it defines the following variables:
+# GLIB_MARSHAL_PREFIX - The name of the files
+# GLIB_MARSHAL_LIST - File to Generate from
+# GLIB_MARSHAL_OUTPUT_HEADER - Result of Generation
+# GLIB_MARSHAL_OUTPUT_CPP - Result of Generation
+# GLIB_MARSHAL_OUTPUT_LOCATION - Where we are putting the Output
+
+FIND_PROGRAM(GLIB_MARSHAL_EXECUTABLE NAMES glib-genmarshal PATHS /usr/local/bin )
+
+MACRO(GLIB_MARSHAL GLIB_MARSHAL_PREFIX GLIB_MARSHAL_LIST GLIB_MARSHAL_OUTPUT_LOCATION)
+ IF(GLIB_MARSHAL_EXECUTABLE)
+ SET(GLIB_MARSHAL_OUTPUT_TEMP)
+ SET(GLIB_MARSHAL_OUTPUT_EXTRA_LINE '#include "${GLIB_MARSHAL_PREFIX}.h"' )
+
+ EXECUTE_PROCESS(COMMAND ${GLIB_MARSHAL_EXECUTABLE} --prefix=${GLIB_MARSHAL_PREFIX} --header ${CMAKE_CURRENT_SOURCE_DIR}/${GLIB_MARSHAL_LIST}
+ OUTPUT_VARIABLE ${GLIB_MARSHAL_OUTPUT_HEADER}
+ COMMAND ${GLIB_MARSHAL_EXECUTABLE} --prefix=${GLIB_MARSHAL_PREFIX} --body ${CMAKE_CURRENT_SOURCE_DIR}/${GLIB_MARSHAL_LIST}
+ OUTPUT_VARIABLE ${GLIB_MARSHAL_OUTPUT_TEMP})
+ SET(GLIB_MARSHAL_OUTPUT_CPP "${GLIB_MARSHAL_OUTPUT_EXTRA_LINE}${GLIB_MARSHAL_OUTPUT_TEMP}")
+ FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_PREFIX}.h "${GLIB_MARSHAL_OUTPUT_HEADER}")
+ FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${GLIB_MARSHAL_PREFIX}.cpp "${GLIB_MARSHAL_OUTPUT_CPP}")
+ ENDIF(GLIB_MARSHAL_EXECUTABLE)
+ENDMACRO(GLIB_MARSHAL)