aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/CMakeLists.txt43
1 files changed, 43 insertions, 0 deletions
diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt
index a9de7557e4..66971eccb2 100644
--- a/runtime/CMakeLists.txt
+++ b/runtime/CMakeLists.txt
@@ -2,6 +2,7 @@ set(SYN_VIM_GENERATOR ${PROJECT_SOURCE_DIR}/scripts/genvimvim.lua)
set(GENERATED_RUNTIME_DIR ${PROJECT_BINARY_DIR}/runtime)
set(GENERATED_SYN_VIM ${GENERATED_RUNTIME_DIR}/syntax/vim/generated.vim)
set(GENERATED_HELP_TAGS ${GENERATED_RUNTIME_DIR}/doc/tags)
+set(GENERATED_PACKAGE_DIR ${GENERATED_RUNTIME_DIR}/pack/dist/opt)
file(MAKE_DIRECTORY ${GENERATED_RUNTIME_DIR})
file(MAKE_DIRECTORY ${GENERATED_RUNTIME_DIR}/syntax)
@@ -18,6 +19,47 @@ add_custom_command(OUTPUT ${GENERATED_SYN_VIM}
${PROJECT_SOURCE_DIR}/src/nvim/eval.c
)
+if(POLICY CMP0054)
+ cmake_policy(SET CMP0054 OLD)
+endif()
+
+file(GLOB PACKAGES ${PROJECT_SOURCE_DIR}/runtime/pack/dist/opt/*)
+
+set(GENERATED_PACKAGE_TAGS)
+foreach(PACKAGE ${PACKAGES})
+ get_filename_component(PACKNAME ${PACKAGE} NAME)
+ file(GLOB "${PACKNAME}_DOC_FILES" ${PACKAGE}/doc/*.txt)
+ if("${PACKNAME}_DOC_FILES")
+ file(MAKE_DIRECTORY ${GENERATED_PACKAGE_DIR}/${PACKNAME})
+ add_custom_target("${PACKNAME}-tags"
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ ${PACKAGE} ${GENERATED_PACKAGE_DIR}/${PACKNAME}
+ COMMAND "${PROJECT_BINARY_DIR}/bin/nvim"
+ -u NONE -i NONE -e --headless -c "helptags doc" -c quit
+ DEPENDS
+ nvim
+ WORKING_DIRECTORY "${GENERATED_PACKAGE_DIR}/${PACKNAME}"
+ )
+
+ add_custom_command(OUTPUT "${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/tags"
+ DEPENDS
+ "${PACKNAME}-tags"
+ )
+
+ set("${PACKNAME}_DOC_NAMES")
+ foreach(DF "${${PACKNAME}_DOC_FILES}")
+ get_filename_component(F ${DF} NAME)
+ list(APPEND "${PACKNAME}_DOC_NAMES" ${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/${F})
+ endforeach()
+
+ install_helper(
+ FILES ${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/tags "${${PACKNAME}_DOC_NAMES}"
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim/runtime/pack/dist/opt/${PACKNAME}/doc)
+
+ list(APPEND GENERATED_PACKAGE_TAGS "${GENERATED_PACKAGE_DIR}/${PACKNAME}/doc/tags")
+ endif()
+endforeach()
+
file(GLOB DOCFILES ${PROJECT_SOURCE_DIR}/runtime/doc/*.txt)
set(BUILDDOCFILES)
@@ -53,6 +95,7 @@ add_custom_target(
DEPENDS
${GENERATED_SYN_VIM}
${GENERATED_HELP_TAGS}
+ ${GENERATED_PACKAGE_TAGS}
)
# CMake is painful here. It will create the destination using the user's