aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/GenerateHelptags.cmake21
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)