macro (pip_code_model SRC RESULT) set(RESULT "") set(OPTS "") set(_IS_OPT false) foreach (_A ${ARGN}) #message(STATUS ${_A}) if (_IS_OPT) list (APPEND OPTS ${_A}) else () if ("${_A}" STREQUAL "OPTIONS") set(_IS_OPT true) else () set (RESULT ${_A}) endif () endif () endforeach() #message(STATUS "src = ${CMAKE_CURRENT_SOURCE_DIR}/${SRC}") #message(STATUS "result = ${RESULT}") #message(STATUS "options = ${OPTS}") set(${RESULT} ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_ccm.cpp) #message(STATUS "Res = ${${RESULT}}") add_custom_command(OUTPUT ${RESULT} COMMAND ${PIP_CMG} -qP ${OPTS} -o ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_ccm -I${PIP_INCLUDES} ${CMAKE_CURRENT_SOURCE_DIR}/${SRC} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${SRC} VERBATIM) #message(STATUS "Creating code model based on \"${SRC}\", please wait ... ") #message(STATUS "exec \"-qP ${OPTS} -o ${PROJECT_NAME}_ccm -I${PIP_INCLUDES} ${SRC}\"") #message(STATUS "exec ${PIP_CMG} -P ${OPTS} -o ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_ccm -I${PIP_INCLUDES} ${CMAKE_CURRENT_SOURCE_DIR}/${SRC}") #execute_process(OUTPUT_VARIABLE CMG_OUT COMMAND ${PIP_CMG} -qP ${OPTS} -o ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_ccm -I${PIP_INCLUDES} ${CMAKE_CURRENT_SOURCE_DIR}/${SRC}) #message(STATUS "Creating code model done, to use it include \"${PROJECT_NAME}_ccm.h\"") #message(STATUS ${CMG_OUT}) #message(STATUS ${CACHE_CMG_FILES}) endmacro (pip_code_model)