mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
build(Windows): make bundling nvim-qt optional (#21866)
Closes https://github.com/neovim/neovim/issues/14552.
This commit is contained in:
parent
1ca4a8b1dd
commit
645daaf5e9
@ -310,12 +310,18 @@ install_helper(
|
|||||||
# Go down the tree.
|
# Go down the tree.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
if(EXISTS "${DEPS_PREFIX}/share/nvim-qt")
|
||||||
|
option(USE_BUNDLED_NVIMQT "Bundle neovim-qt" ON)
|
||||||
|
else()
|
||||||
|
option(USE_BUNDLED_NVIMQT "Bundle neovim-qt" OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_subdirectory(src/nvim)
|
add_subdirectory(src/nvim)
|
||||||
add_subdirectory(cmake.config)
|
add_subdirectory(cmake.config)
|
||||||
add_subdirectory(test/functional/fixtures) # compile test programs
|
add_subdirectory(test/functional/fixtures) # compile test programs
|
||||||
add_subdirectory(runtime)
|
add_subdirectory(runtime)
|
||||||
get_directory_property(GENERATED_HELP_TAGS DIRECTORY runtime DEFINITION GENERATED_HELP_TAGS)
|
get_directory_property(GENERATED_HELP_TAGS DIRECTORY runtime DEFINITION GENERATED_HELP_TAGS)
|
||||||
if(WIN32)
|
if(WIN32 AND USE_BUNDLED_NVIMQT)
|
||||||
install_helper(
|
install_helper(
|
||||||
FILES ${DEPS_PREFIX}/share/nvim-qt/runtime/plugin/nvim_gui_shim.vim
|
FILES ${DEPS_PREFIX}/share/nvim-qt/runtime/plugin/nvim_gui_shim.vim
|
||||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim-qt/runtime/plugin)
|
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/nvim-qt/runtime/plugin)
|
||||||
|
@ -76,6 +76,10 @@ else()
|
|||||||
option(USE_BUNDLED_LIBICONV "Use the bundled version of libiconv." OFF)
|
option(USE_BUNDLED_LIBICONV "Use the bundled version of libiconv." OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
option(USE_BUNDLED_NVIMQT "Bundle neovim-qt" ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
option(USE_EXISTING_SRC_DIR "Skip download of deps sources in case of existing source directory." OFF)
|
option(USE_EXISTING_SRC_DIR "Skip download of deps sources in case of existing source directory." OFF)
|
||||||
|
|
||||||
find_package(Git)
|
find_package(Git)
|
||||||
@ -261,9 +265,11 @@ if(WIN32)
|
|||||||
GetBinaryDep(TARGET wintools
|
GetBinaryDep(TARGET wintools
|
||||||
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory . ${DEPS_INSTALL_DIR}/bin)
|
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory . ${DEPS_INSTALL_DIR}/bin)
|
||||||
|
|
||||||
GetBinaryDep(TARGET wingui
|
if(USE_BUNDLED_NVIMQT)
|
||||||
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory bin ${DEPS_INSTALL_DIR}/bin
|
GetBinaryDep(TARGET wingui
|
||||||
|
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory bin ${DEPS_INSTALL_DIR}/bin
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory share ${DEPS_INSTALL_DIR}/share)
|
COMMAND ${CMAKE_COMMAND} -E copy_directory share ${DEPS_INSTALL_DIR}/share)
|
||||||
|
endif()
|
||||||
|
|
||||||
GetBinaryDep(TARGET win32yank_X86_64
|
GetBinaryDep(TARGET win32yank_X86_64
|
||||||
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy win32yank.exe ${DEPS_INSTALL_DIR}/bin)
|
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy win32yank.exe ${DEPS_INSTALL_DIR}/bin)
|
||||||
|
@ -712,6 +712,59 @@ if(WIN32)
|
|||||||
-P ${PROJECT_SOURCE_DIR}/cmake/WindowsDllCopy.cmake)
|
-P ${PROJECT_SOURCE_DIR}/cmake/WindowsDllCopy.cmake)
|
||||||
add_dependencies(nvim_runtime_deps nvim_dll_deps)
|
add_dependencies(nvim_runtime_deps nvim_dll_deps)
|
||||||
|
|
||||||
|
if(USE_BUNDLED_NVIMQT)
|
||||||
|
set(NVIMQT_DEPS
|
||||||
|
# Dependencies for neovim-qt
|
||||||
|
bearer/qgenericbearer.dll
|
||||||
|
iconengines/qsvgicon.dll
|
||||||
|
imageformats/qgif.dll
|
||||||
|
imageformats/qicns.dll
|
||||||
|
imageformats/qico.dll
|
||||||
|
imageformats/qjpeg.dll
|
||||||
|
imageformats/qsvg.dll
|
||||||
|
imageformats/qtga.dll
|
||||||
|
imageformats/qtiff.dll
|
||||||
|
imageformats/qwbmp.dll
|
||||||
|
imageformats/qwebp.dll
|
||||||
|
platforms/qwindows.dll
|
||||||
|
styles/qwindowsvistastyle.dll
|
||||||
|
translations/qt_ar.qm
|
||||||
|
translations/qt_bg.qm
|
||||||
|
translations/qt_ca.qm
|
||||||
|
translations/qt_cs.qm
|
||||||
|
translations/qt_da.qm
|
||||||
|
translations/qt_de.qm
|
||||||
|
translations/qt_en.qm
|
||||||
|
translations/qt_es.qm
|
||||||
|
translations/qt_fi.qm
|
||||||
|
translations/qt_fr.qm
|
||||||
|
translations/qt_gd.qm
|
||||||
|
translations/qt_he.qm
|
||||||
|
translations/qt_hu.qm
|
||||||
|
translations/qt_it.qm
|
||||||
|
translations/qt_ja.qm
|
||||||
|
translations/qt_ko.qm
|
||||||
|
translations/qt_lv.qm
|
||||||
|
translations/qt_pl.qm
|
||||||
|
translations/qt_ru.qm
|
||||||
|
translations/qt_sk.qm
|
||||||
|
translations/qt_uk.qm
|
||||||
|
D3Dcompiler_47.dll
|
||||||
|
libEGL.dll
|
||||||
|
libgcc_s_seh-1.dll
|
||||||
|
libGLESv2.dll
|
||||||
|
libstdc++-6.dll
|
||||||
|
libwinpthread-1.dll
|
||||||
|
nvim-qt.exe
|
||||||
|
opengl32sw.dll
|
||||||
|
Qt5Core.dll
|
||||||
|
Qt5Gui.dll
|
||||||
|
Qt5Network.dll
|
||||||
|
Qt5Svg.dll
|
||||||
|
Qt5Widgets.dll
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
# A CMake script is used for copying the files to avoid the
|
# A CMake script is used for copying the files to avoid the
|
||||||
# "command line is too long" error that occurs when Ninja tries running
|
# "command line is too long" error that occurs when Ninja tries running
|
||||||
# a command that exceeds the length limit (8191 characters) on Windows.
|
# a command that exceeds the length limit (8191 characters) on Windows.
|
||||||
@ -719,67 +772,19 @@ if(WIN32)
|
|||||||
set(EXTERNAL_BLOBS_SCRIPT
|
set(EXTERNAL_BLOBS_SCRIPT
|
||||||
"file(MAKE_DIRECTORY \"${PROJECT_BINARY_DIR}/windows_runtime_deps/platforms\")")
|
"file(MAKE_DIRECTORY \"${PROJECT_BINARY_DIR}/windows_runtime_deps/platforms\")")
|
||||||
foreach(DEP_FILE IN ITEMS
|
foreach(DEP_FILE IN ITEMS
|
||||||
curl-ca-bundle.crt
|
curl-ca-bundle.crt
|
||||||
curl.exe
|
curl.exe
|
||||||
diff.exe
|
diff.exe
|
||||||
tee.exe
|
tee.exe
|
||||||
win32yank.exe
|
win32yank.exe
|
||||||
xxd.exe
|
xxd.exe
|
||||||
|
|
||||||
# Dependencies for neovim-qt
|
${NVIMQT_DEPS}
|
||||||
bearer/qgenericbearer.dll
|
)
|
||||||
iconengines/qsvgicon.dll
|
get_filename_component(DEP_FILE_DIR ${DEP_FILE} DIRECTORY)
|
||||||
imageformats/qgif.dll
|
set(EXTERNAL_BLOBS_SCRIPT "${EXTERNAL_BLOBS_SCRIPT}\n"
|
||||||
imageformats/qicns.dll
|
"file(COPY \"${DEPS_PREFIX}/bin/${DEP_FILE}\"
|
||||||
imageformats/qico.dll
|
DESTINATION \"${PROJECT_BINARY_DIR}/windows_runtime_deps/${DEP_FILE_DIR}\")")
|
||||||
imageformats/qjpeg.dll
|
|
||||||
imageformats/qsvg.dll
|
|
||||||
imageformats/qtga.dll
|
|
||||||
imageformats/qtiff.dll
|
|
||||||
imageformats/qwbmp.dll
|
|
||||||
imageformats/qwebp.dll
|
|
||||||
platforms/qwindows.dll
|
|
||||||
styles/qwindowsvistastyle.dll
|
|
||||||
translations/qt_ar.qm
|
|
||||||
translations/qt_bg.qm
|
|
||||||
translations/qt_ca.qm
|
|
||||||
translations/qt_cs.qm
|
|
||||||
translations/qt_da.qm
|
|
||||||
translations/qt_de.qm
|
|
||||||
translations/qt_en.qm
|
|
||||||
translations/qt_es.qm
|
|
||||||
translations/qt_fi.qm
|
|
||||||
translations/qt_fr.qm
|
|
||||||
translations/qt_gd.qm
|
|
||||||
translations/qt_he.qm
|
|
||||||
translations/qt_hu.qm
|
|
||||||
translations/qt_it.qm
|
|
||||||
translations/qt_ja.qm
|
|
||||||
translations/qt_ko.qm
|
|
||||||
translations/qt_lv.qm
|
|
||||||
translations/qt_pl.qm
|
|
||||||
translations/qt_ru.qm
|
|
||||||
translations/qt_sk.qm
|
|
||||||
translations/qt_uk.qm
|
|
||||||
D3Dcompiler_47.dll
|
|
||||||
libEGL.dll
|
|
||||||
libgcc_s_seh-1.dll
|
|
||||||
libGLESv2.dll
|
|
||||||
libstdc++-6.dll
|
|
||||||
libwinpthread-1.dll
|
|
||||||
nvim-qt.exe
|
|
||||||
opengl32sw.dll
|
|
||||||
Qt5Core.dll
|
|
||||||
Qt5Gui.dll
|
|
||||||
Qt5Network.dll
|
|
||||||
Qt5Svg.dll
|
|
||||||
Qt5Widgets.dll
|
|
||||||
|
|
||||||
)
|
|
||||||
get_filename_component(DEP_FILE_DIR ${DEP_FILE} DIRECTORY)
|
|
||||||
set(EXTERNAL_BLOBS_SCRIPT "${EXTERNAL_BLOBS_SCRIPT}\n"
|
|
||||||
"file(COPY \"${DEPS_PREFIX}/bin/${DEP_FILE}\"
|
|
||||||
DESTINATION \"${PROJECT_BINARY_DIR}/windows_runtime_deps/${DEP_FILE_DIR}\")")
|
|
||||||
endforeach()
|
endforeach()
|
||||||
file(WRITE ${PROJECT_BINARY_DIR}/external_blobs.cmake ${EXTERNAL_BLOBS_SCRIPT})
|
file(WRITE ${PROJECT_BINARY_DIR}/external_blobs.cmake ${EXTERNAL_BLOBS_SCRIPT})
|
||||||
add_custom_target(external_blobs
|
add_custom_target(external_blobs
|
||||||
|
Loading…
Reference in New Issue
Block a user