- SET(_output)
- SET(_module_input)
- FOREACH(_input ${ARGN})
- FILE(STRINGS ${_input} _sip_modules REGEX "%Module")
- FILE(STRINGS ${_input} _sip_classes REGEX "^class ")
- FOREACH(_sip_module ${_sip_modules})
- STRING(REGEX MATCH ".*%Module *\\( *name=.*\\).*" _mod_name "${_sip_module}")
- IF (_mod_name)
- STRING(REGEX REPLACE ".*%Module *\\( *name=(.*).*\\).*" "\\1" _mod_name ${_sip_module})
- ELSE()
- STRING(REGEX REPLACE ".*%Module *(.*)" "\\1" _mod_name ${_sip_module})
- ENDIF()
- SET(_mod_header "sipAPI${_mod_name}.h")
- SET(_mod_source "sip${_mod_name}cmodule${PYQT_CXX_EXT}")
- LIST(APPEND _output ${CMAKE_CURRENT_BINARY_DIR}/${_mod_source})
- SET(${outfiles} ${${outfiles}} ${CMAKE_CURRENT_BINARY_DIR}/${_mod_source})
- SET(_module_input ${_input})
- ENDFOREACH()
- FOREACH(_sip_class ${_sip_classes})
- STRING(REGEX MATCH ".*class +.* *:" _class_name "${_sip_class}")
- IF (_class_name)
- STRING(REGEX REPLACE ".*class +(.*) *:.*" "\\1" _class_name ${_sip_class})
- ELSE()
- STRING(REGEX REPLACE ".*class *(.*)" "\\1" _class_name ${_sip_class})
- ENDIF()
- STRING(STRIP ${_class_name} _class_name)
- SET(_class_source "sip${_mod_name}${_class_name}${PYQT_CXX_EXT}")
- LIST(APPEND _output ${CMAKE_CURRENT_BINARY_DIR}/${_class_source})
- SET(${outfiles} ${${outfiles}} ${CMAKE_CURRENT_BINARY_DIR}/${_class_source})
- ENDFOREACH()
- ENDFOREACH()
- ADD_CUSTOM_COMMAND(
- OUTPUT ${_output}
- COMMAND ${SIP_EXECUTABLE} ${PYQT_SIPFLAGS} ${CMAKE_CURRENT_SOURCE_DIR}/${_module_input}
- MAIN_DEPENDENCY ${_module_input}
- )