diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2015-08-08 19:20:13 +0200 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2015-08-08 19:20:13 +0200 |
commit | 1f295a77bd1eaff3faa3927dc081b0e95a6dde50 (patch) | |
tree | dae8358bcb75451dea68d8135866a7e05610a6d5 /cmake | |
parent | 8f99ca8a6adf94d916296953885c63feadf3e71a (diff) | |
download | cssh-1f295a77bd1eaff3faa3927dc081b0e95a6dde50.tar.gz cssh-1f295a77bd1eaff3faa3927dc081b0e95a6dde50.tar.bz2 |
added gengetopt support
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/gengetopt.cmake | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/cmake/gengetopt.cmake b/cmake/gengetopt.cmake new file mode 100644 index 0000000..3caea3e --- /dev/null +++ b/cmake/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) |