diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2020-11-25 20:35:13 +0100 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2020-11-25 20:35:13 +0100 |
commit | 394c9fbb6cc243e46b32aa9e7221b0e6cadd4c13 (patch) | |
tree | 2a6cf365b703be3cdb78045890f84e2a3aa5e74c /emu/cmake/find_gengetopt.cmake | |
parent | 6c3401b8a2ce7a2dfe21a253f840f286088b1921 (diff) | |
download | 6502-394c9fbb6cc243e46b32aa9e7221b0e6cadd4c13.tar.gz 6502-394c9fbb6cc243e46b32aa9e7221b0e6cadd4c13.tar.bz2 |
some work on emulator, also added gengetopt and cmake support for it
Diffstat (limited to 'emu/cmake/find_gengetopt.cmake')
-rw-r--r-- | emu/cmake/find_gengetopt.cmake | 33 |
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) |