What is the right pattern to use in cmake to create a custom rule for converting a bunch of files?<br><br><br>&nbsp;&nbsp;&nbsp; In make I can define a custome rule for file types.&nbsp; <br>&nbsp;&nbsp;&nbsp; What is the right way to do this in cmake?&nbsp; <br>
<br>I can create a macro, but I'm unsure how to properly connect it to a target.&nbsp; I can't seem to put it in a custom target.<br><br><span style="font-weight: bold; text-decoration: underline;">Example:&nbsp;&nbsp;automake:</span><br>
<div style="margin-left: 80px;">.xml.h:<br>&nbsp;&nbsp;&nbsp;&nbsp;cat base.xml $&lt; &gt; $.hprep<br>&nbsp;&nbsp;&nbsp;&nbsp;transmogrify $*.hprep<br></div><br><span style="font-weight: bold; text-decoration: underline;">My Cmake (which doesn't work)</span><br>
<div style="margin-left: 80px;">MACRO(GENERATE_H XMLFILES)<br>&nbsp;&nbsp;SET(BASE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/base.xml)<br>&nbsp;&nbsp;FOREACH(FILE ${XMLFILES})<br>&nbsp;&nbsp;&nbsp;&nbsp;# File name without the extension<br>&nbsp;&nbsp;&nbsp;&nbsp;GET_FILENAME_COMPONENT(TMP_FILENAME ${FILE} NAME_WE)
<br><br>&nbsp;&nbsp;&nbsp;&nbsp;# the input file might be full path, so handle that<br>&nbsp;&nbsp;&nbsp;&nbsp;GET_FILENAME_COMPONENT(TMP_FILENAME ${FILE} PATH)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;# determine input filename<br>&nbsp;&nbsp;&nbsp;&nbsp;IF (TMP_FILEPATH)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET(TMP_PATH ${TMP_FILEPATH}/${TMP_FILENAME}.xml)
<br>&nbsp;&nbsp;&nbsp;&nbsp;ELSE(TMP_FILEPATH)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SET(TMP_PATH&nbsp;&nbsp;${CONNECTED_SOURCE_DIR}/${TMP_FILENAME}.xml)<br>&nbsp;&nbsp;&nbsp;&nbsp;ENDIF(TMP_FILEPATH)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;# Build the mch file<br>&nbsp;&nbsp;&nbsp;&nbsp;ADD_CUSTOM_COMMAND(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OUTPUT&nbsp;&nbsp;&nbsp;&nbsp;${TMP_ PATH}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEPENDS&nbsp;&nbsp; ${MCH_HEADER}
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COMMAND&nbsp;&nbsp; cat<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ARGS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${BASE_PATH} ${FILE}<br>&nbsp;&nbsp;&nbsp;&nbsp;)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;# Convert <br>&nbsp;&nbsp;&nbsp;&nbsp;ADD_CUSTOM_COMMAND(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OUTPUT&nbsp;&nbsp;&nbsp;&nbsp;tmpFile<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COMMAND&nbsp;&nbsp; transmogrify<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ARGS&nbsp;&nbsp;&nbsp;&nbsp; ${TMP_MCFILE}<br>&nbsp;&nbsp;&nbsp;&nbsp;)
<br>&nbsp;&nbsp;ENDFOREACH(FILE)<br>ENDMACRO(GENERATE_H)<br><br><br></div><br><br><br>-- <br>Peter Kahn<br><a href="mailto:citizenkahn@gmail.com">citizenkahn@gmail.com</a><br><a href="mailto:citizenkahn@jabber80.com">citizenkahn@jabber80.com
</a>, pkahnpie1@AIM, skype: citizenkahn<br><a href="http://analogoustendencies.blogspot.com/">http://analogoustendencies.blogspot.com/</a><br><br>