build(Windows): make bundling nvim-qt optional (#21866)

Closes https://github.com/neovim/neovim/issues/14552.
This commit is contained in:
Enan Ajmain
2023-02-08 15:08:18 +06:00
committed by GitHub
parent 1ca4a8b1dd
commit 645daaf5e9
3 changed files with 80 additions and 63 deletions

View File

@@ -712,6 +712,59 @@ if(WIN32)
-P ${PROJECT_SOURCE_DIR}/cmake/WindowsDllCopy.cmake)
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
# "command line is too long" error that occurs when Ninja tries running
# a command that exceeds the length limit (8191 characters) on Windows.
@@ -719,67 +772,19 @@ if(WIN32)
set(EXTERNAL_BLOBS_SCRIPT
"file(MAKE_DIRECTORY \"${PROJECT_BINARY_DIR}/windows_runtime_deps/platforms\")")
foreach(DEP_FILE IN ITEMS
curl-ca-bundle.crt
curl.exe
diff.exe
tee.exe
win32yank.exe
xxd.exe
curl-ca-bundle.crt
curl.exe
diff.exe
tee.exe
win32yank.exe
xxd.exe
# 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
)
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}\")")
${NVIMQT_DEPS}
)
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()
file(WRITE ${PROJECT_BINARY_DIR}/external_blobs.cmake ${EXTERNAL_BLOBS_SCRIPT})
add_custom_target(external_blobs