diff options
-rw-r--r-- | cmake/GenerateHelptags.cmake | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/cmake/GenerateHelptags.cmake b/cmake/GenerateHelptags.cmake index d4f4518b9b..bc50db2ca4 100644 --- a/cmake/GenerateHelptags.cmake +++ b/cmake/GenerateHelptags.cmake @@ -1,28 +1,35 @@ if(DEFINED ENV{DESTDIR}) file(TO_CMAKE_PATH - "$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/share/nvim/runtime/doc" + $ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/share/nvim/runtime/doc HELPTAGS_WORKING_DIRECTORY) else() file(TO_CMAKE_PATH - "${CMAKE_INSTALL_PREFIX}/share/nvim/runtime/doc" + ${CMAKE_INSTALL_PREFIX}/share/nvim/runtime/doc HELPTAGS_WORKING_DIRECTORY) endif() message(STATUS "Generating helptags in ${HELPTAGS_WORKING_DIRECTORY}.") -if(EXISTS "${HELPTAGS_WORKING_DIRECTORY}/") +if(EXISTS ${HELPTAGS_WORKING_DIRECTORY}/) message(STATUS "${HELPTAGS_WORKING_DIRECTORY} already exists") - # if the doc directory already exists, helptags could fail due to duplicate + # If the doc directory already exists, helptags could fail due to duplicate # tags. Tell the user to remove the directory and try again. - set(TROUBLESHOOTING "\nRemove \"${HELPTAGS_WORKING_DIRECTORY}\" and try again") + set(TROUBLESHOOTING "\nRemove \"${HELPTAGS_WORKING_DIRECTORY}\" and try again.") endif() +# Workaround for hanging "yes | nvim -c 'helptags ++t .'" +# and therefore hanging "yes | make install": +# Set INPUT_FILE to an empty file, causing execute_process +# to disregard other standard input (such as "yes |"). +set(EMPTY_FILE ${CMAKE_CURRENT_BINARY_DIR}/.GenerateHelptags) +file(WRITE ${EMPTY_FILE} "") execute_process( - COMMAND "${CMAKE_CURRENT_BINARY_DIR}/bin/nvim" + COMMAND ${CMAKE_CURRENT_BINARY_DIR}/bin/nvim -u NONE -esX -c "helptags ++t ." -c quit - WORKING_DIRECTORY "${HELPTAGS_WORKING_DIRECTORY}" + WORKING_DIRECTORY ${HELPTAGS_WORKING_DIRECTORY} + INPUT_FILE ${EMPTY_FILE} OUTPUT_VARIABLE err ERROR_VARIABLE err RESULT_VARIABLE res) |