aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRui Abreu Ferreira <raf-ep@gmx.com>2016-05-16 23:16:49 +0100
committerRui Abreu Ferreira <raf-ep@gmx.com>2017-01-20 18:29:18 +0000
commita27fcf38fd964c28352738f04f7d44eb203bbda8 (patch)
tree807134741e24ba35caeb081d05b4c1205acc1356 /src
parent1cb52309f102f0c54d6832ae31723b5878498adc (diff)
downloadrneovim-a27fcf38fd964c28352738f04f7d44eb203bbda8.tar.gz
rneovim-a27fcf38fd964c28352738f04f7d44eb203bbda8.tar.bz2
rneovim-a27fcf38fd964c28352738f04f7d44eb203bbda8.zip
Windows: Install runtime dependencies with Neovim binary
Look for runtime dependencies diff.exe and win32yank.exe (and recursively for DLL dependencies) and install them with nvim.exe. If a dependency is missing a warning will be issued.
Diffstat (limited to 'src')
-rw-r--r--src/nvim/CMakeLists.txt36
1 files changed, 29 insertions, 7 deletions
diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt
index f2b75dca2a..5a658691ce 100644
--- a/src/nvim/CMakeLists.txt
+++ b/src/nvim/CMakeLists.txt
@@ -292,18 +292,40 @@ target_link_libraries(nvim ${NVIM_EXEC_LINK_LIBRARIES})
install_helper(TARGETS nvim)
if(WIN32)
- # Copy DLLs to bin/ and install them along with nvim
- add_custom_target(nvim_dll_deps ALL DEPENDS nvim
+ # Copy DLLs and third-party tools to bin/ and install them along with nvim
+ add_custom_target(nvim_runtime_deps ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_BINARY_DIR}/windows_runtime_deps/
+ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
+ install(DIRECTORY ${PROJECT_BINARY_DIR}/windows_runtime_deps/
+ DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+ foreach(BIN win32yank.exe)
+ unset(BIN_PATH CACHE)
+ find_program(BIN_PATH ${BIN})
+ if(NOT BIN_PATH)
+ message(FATAL_ERROR "Unable to find external dependency ${BIN}")
+ endif()
+
+ add_custom_target(external_${BIN}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/windows_runtime_deps
+ COMMAND ${CMAKE_COMMAND}
+ "-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}"
+ -DBINARY="${BIN_PATH}"
+ -DDST=${PROJECT_BINARY_DIR}/windows_runtime_deps
+ -P ${PROJECT_SOURCE_DIR}/cmake/WindowsDllCopy.cmake
+ COMMAND ${CMAKE_COMMAND} -E copy ${BIN_PATH} ${PROJECT_BINARY_DIR}/windows_runtime_deps/
+ COMMENT "${BIN_PATH}")
+ add_dependencies(nvim_runtime_deps "external_${BIN}")
+ endforeach()
+
+ add_custom_target(nvim_dll_deps DEPENDS nvim
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/windows_runtime_deps
COMMAND ${CMAKE_COMMAND}
"-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}"
-DBINARY="${PROJECT_BINARY_DIR}/bin/nvim${CMAKE_EXECUTABLE_SUFFIX}"
-DDST=${PROJECT_BINARY_DIR}/windows_runtime_deps
- -P ${PROJECT_SOURCE_DIR}/cmake/WindowsDllCopy.cmake
- COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_BINARY_DIR}/windows_runtime_deps/
- ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
- install(DIRECTORY ${PROJECT_BINARY_DIR}/windows_runtime_deps/
- DESTINATION ${CMAKE_INSTALL_BINDIR})
+ -P ${PROJECT_SOURCE_DIR}/cmake/WindowsDllCopy.cmake)
+ add_dependencies(nvim_runtime_deps nvim_dll_deps)
endif()
if(CLANG_ASAN_UBSAN)