summaryrefslogtreecommitdiff
path: root/emu/cmake/find_gengetopt.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'emu/cmake/find_gengetopt.cmake')
-rw-r--r--emu/cmake/find_gengetopt.cmake33
1 files changed, 33 insertions, 0 deletions
diff --git a/emu/cmake/find_gengetopt.cmake b/emu/cmake/find_gengetopt.cmake
new file mode 100644
index 0000000..3caea3e
--- /dev/null
+++ b/emu/cmake/find_gengetopt.cmake
@@ -0,0 +1,33 @@
+MACRO(FIND_GENGETOPT)
+ IF(NOT GENGETOPT_EXECUTABLE)
+ FIND_PROGRAM(GENGETOPT_EXECUTABLE gengetopt)
+ IF (NOT GENGETOPT_EXECUTABLE)
+ MESSAGE(FATAL_ERROR "gengetopt not found - aborting")
+ ENDIF (NOT GENGETOPT_EXECUTABLE)
+ ENDIF(NOT GENGETOPT_EXECUTABLE)
+ENDMACRO(FIND_GENGETOPT)
+
+MACRO(ADD_GENGETOPT_FILES _sources )
+ FIND_GENGETOPT()
+
+ FOREACH (_current_FILE ${ARGN})
+ GET_FILENAME_COMPONENT(_in ${_current_FILE} ABSOLUTE)
+ GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE)
+
+ SET(_out ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.c)
+ SET(_header ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.h)
+
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_out} ${_header}
+ COMMAND ${GENGETOPT_EXECUTABLE}
+ ARGS
+ -F ${_basename}
+ --unamed-opts
+ --input=${_in}
+ DEPENDS ${_in}
+ )
+
+ SET(${_sources} ${${_sources}} ${_out} )
+ SET(${_sources} ${${_sources}} ${_header} )
+ ENDFOREACH (_current_FILE)
+ENDMACRO(ADD_GENGETOPT_FILES)