diff --git a/.docker/desktop-apps.bake.Dockerfile b/.docker/desktop-apps.bake.Dockerfile index fdef950d1..7223a8ca8 100644 --- a/.docker/desktop-apps.bake.Dockerfile +++ b/.docker/desktop-apps.bake.Dockerfile @@ -10,7 +10,8 @@ # ============================================================================== #### DESKTOP-APPS -FROM core-base AS desktop-builder +FROM core-base AS desktop-linux + ARG PRODUCT_VERSION ARG BUILD_NUMBER ARG CACHE_BUST=1 @@ -69,7 +70,8 @@ FROM core-base AS desktop-builder COPY ${BRANDING_DIR}/desktop-apps /desktop-apps ### - COPY --from=desktop-js /app/loginpage/deploy /desktop-apps/common/loginpage/deploy + COPY --from=desktop-common /index.html /desktop-apps/common/loginpage/deploy/index.html + COPY --from=desktop-common /editors/webext/noconnect.html /desktop-apps/common/loginpage/deploy/noconnect.html #COPY gcc_64 /qt5 ENV PRODUCT_VERSION=${PRODUCT_VERSION} @@ -79,15 +81,45 @@ FROM core-base AS desktop-builder RUN --mount=type=cache,target=/build-cache-desktop,id=build-cache-desktop-${CACHE_BUST} \ --mount=type=cache,target=/nuget-cache,id=nuget-cache-${CACHE_BUST} \ + --mount=type=cache,target=/ccache,id=ccache \ + --mount=type=bind,from=third-party,source=/third_party,target=/third_party_src \ + --mount=type=secret,id=nextcloud_user \ + --mount=type=secret,id=nextcloud_pass \ + export NEXTCLOUD_USER="$(cat /run/secrets/nextcloud_user)" && \ + export NEXTCLOUD_PASS="$(cat /run/secrets/nextcloud_pass)" && \ + export CCACHE_DIR=/ccache && \ + cp -a /third_party_src/. /build-cache-desktop/third_party && \ cd /build-cache-desktop && \ - cmake -GNinja -DVCPKG_TARGET_TRIPLET=x64-linux-dynamic \ - -DCMAKE_TOOLCHAIN_FILE=/opt/vcpkg/scripts/buildsystems/vcpkg.cmake \ - -DVCPKG_MANIFEST_MODE=ON \ - -DVCPKG_MANIFEST_DIR="/core" \ - -DVCPKG_MANIFEST_FEATURES="desktop-editors" \ - -DABOUT_PAGE_APP_NAME="${ABOUT_PAGE_APP_NAME}" \ - /desktop-apps/win-linux/ && \ + cmake -GNinja \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DCMAKE_TOOLCHAIN_FILE=/opt/vcpkg/scripts/buildsystems/vcpkg.cmake \ + -DVCPKG_MANIFEST_MODE=ON \ + -DVCPKG_MANIFEST_DIR="/core" \ + -DABOUT_PAGE_APP_NAME="${ABOUT_PAGE_APP_NAME}" \ + /desktop-apps/win-linux/ && \ cmake --build . && \ cmake --install . && \ + ccache --show-stats && \ cp -a desktopeditors /desktopeditors + COPY --from=desktop-common / /desktopeditors/ + + RUN /desktopeditors/converter/allfontsgen \ + --use-system=1 \ + --input=/desktopeditors/fonts \ + --input=/core-fonts \ + --allfonts=/desktopeditors/converter/AllFonts.js \ + --selection=/desktopeditors/converter/font_selection.bin + + RUN /desktopeditors/converter/allthemesgen \ + --converter-dir=/desktopeditors/converter \ + --src=/desktopeditors/editors/sdkjs/slide/themes \ + --allfonts=/desktopeditors/converter/AllFonts.js \ + --output=/desktopeditors/editors/sdkjs/common/Images + + RUN rm /desktopeditors/converter/allthemesgen && \ + rm /desktopeditors/converter/allfontsgen + + RUN echo 'LD_LIBRARY_PATH=$PWD:$PWD/converter:$LD_LIBRARY_PATH LD_PRELOAD=libcef.so ./DesktopEditors' > /desktopeditors/start_desktop.sh && \ + chmod +x /desktopeditors/start_desktop.sh \ No newline at end of file diff --git a/package/inno/_code.iss b/package/inno/_code.iss index c3058be93..94794f3b8 100644 --- a/package/inno/_code.iss +++ b/package/inno/_code.iss @@ -210,7 +210,7 @@ procedure initExtensions; var prefix: string; begin -#ifdef _Euro-Office +#ifdef _EuroOffice SetArrayLength(AudioExts, 28); #else SetArrayLength(AudioExts, 27); @@ -245,7 +245,7 @@ begin AudioExts[24] := 'FODT'; AudioExts[25] := 'VSDX'; AudioExts[26] := 'XLSM'; -#ifdef _Euro-Office +#ifdef _EuroOffice AudioExts[27] := 'DOCXF'; #endif @@ -281,7 +281,7 @@ begin ExtensionRegistryInfo[24] := prefix + 'Fodt:' + ExpandConstant('{cm:extFODT}') + ':' + '35'; ExtensionRegistryInfo[25] := prefix + 'Vsdx:' + ExpandConstant('{cm:extVSDX}') + ':' + '36'; ExtensionRegistryInfo[26] := prefix + 'Xlsm:' + ExpandConstant('{cm:extXLSM}') + ':' + '37'; -#ifdef _Euro-Office +#ifdef _EuroOffice ExtensionRegistryInfo[27] := prefix + 'Docxf:' + ExpandConstant('{cm:extDOCXF}') + ':' + '13'; #endif end; @@ -485,7 +485,7 @@ begin args := ['new.docx:.docx:.Document.12:7:1000:1100', 'new.pptx:.pptx:.Show.12:9:1002:1102', 'new.xlsx:.xlsx:.Sheet.12:10:1001:1101' -#ifdef _Euro-Office +#ifdef _EuroOffice ,'new.pdf:.pdf:.Pdf:5:1003:1103' #endif ]; @@ -586,7 +586,7 @@ begin AddToDefaultPrograms; AddContextMenuNewItems; -#ifndef _Euro-Office +#ifndef _EuroOffice //TODO: for bug 55795. remove for ver 7.3 SetArrayLength(cleanExts, 1); SetArrayLength(extensionInfo, 1); @@ -674,7 +674,7 @@ begin RegDeleteKeyIncludingSubkeys(HKEY_LOCAL_MACHINE, ExpandConstant('Software\Classes\.docx\{#ASCC_REG_PREFIX}.Document.12')); RegDeleteKeyIncludingSubkeys(HKEY_LOCAL_MACHINE, ExpandConstant('Software\Classes\.pptx\{#ASCC_REG_PREFIX}.Show.12')); RegDeleteKeyIncludingSubkeys(HKEY_LOCAL_MACHINE, ExpandConstant('Software\Classes\.xlsx\{#ASCC_REG_PREFIX}.Sheet.12')); -#ifdef _Euro-Office +#ifdef _EuroOffice RegDeleteKeyIncludingSubkeys(HKEY_LOCAL_MACHINE, ExpandConstant('Software\Classes\.pdf\{#ASCC_REG_PREFIX}.Pdf')); #endif end; diff --git a/package/inno/common.iss b/package/inno/common.iss index e57f2b4e7..94c391f1c 100644 --- a/package/inno/common.iss +++ b/package/inno/common.iss @@ -115,7 +115,7 @@ Compression=lzma2/ultra64 LZMAUseSeparateProcess=yes [Languages] -#ifdef _Euro-Office +#ifdef _EuroOffice Name: en; MessagesFile: compiler:Default.isl; Name: ru; MessagesFile: compiler:Languages\Russian.isl; #else @@ -230,7 +230,7 @@ Name: {group}\{cm:Uninstall}; IconFilename: {app}\{#iconsExe}; IconIndex: 25; Fi Name: "{group}\{cm:jumpDOCX}"; IconFilename: "{app}\{#iconsExe}"; IconIndex: 14; Filename: "{app}\{#iconsExe}"; Parameters: "--new:word"; Name: "{group}\{cm:jumpXLSX}"; IconFilename: "{app}\{#iconsExe}"; IconIndex: 15; Filename: "{app}\{#iconsExe}"; Parameters: "--new:cell"; Name: "{group}\{cm:jumpPPTX}"; IconFilename: "{app}\{#iconsExe}"; IconIndex: 16; Filename: "{app}\{#iconsExe}"; Parameters: "--new:slide"; -#ifdef _Euro-Office +#ifdef _EuroOffice Name: "{group}\{cm:jumpDOCXF}"; IconFilename: "{app}\{#iconsExe}"; IconIndex: 17; Filename: "{app}\{#iconsExe}"; Parameters: "--new:form"; #endif @@ -260,7 +260,7 @@ Root: HKLM; Subkey: Software\Classes\{#ASSOC_PROG_ID}\DefaultIcon; Valu Root: HKLM; Subkey: Software\Classes\{#ASSOC_PROG_ID}\shell\open\command; ValueType: string; ValueName:; ValueData: """{app}\{#iconsExe}"" ""%1"""; Root: HKLM; Subkey: Software\Classes\{#ASSOC_PROG_ID}\shell\open; ValueType: string; ValueName: FriendlyAppName; ValueData: {#ASSOC_APP_FRIENDLY_NAME}; -#ifdef _Euro-Office +#ifdef _EuroOffice Root: HKLM; Subkey: "SOFTWARE\Classes\{#sAppProtocol}"; ValueType: "string"; ValueData: "URL:{#sAppName} Protocol"; Flags: uninsdeletekey; Root: HKLM; Subkey: "SOFTWARE\Classes\{#sAppProtocol}"; ValueType: "string"; ValueName: "URL Protocol"; ValueData: ""; Root: HKLM; Subkey: "SOFTWARE\Classes\{#sAppProtocol}\DefaultIcon"; ValueType: "string"; ValueData: "{app}\{#iconsExe},0"; diff --git a/package/inno/help.iss b/package/inno/help.iss index 6c3bbd427..c4ffe0867 100644 --- a/package/inno/help.iss +++ b/package/inno/help.iss @@ -68,7 +68,7 @@ Compression=lzma2/ultra64 LZMAUseSeparateProcess=yes [Languages] -#ifdef _Euro-Office +#ifdef _EuroOffice Name: en; MessagesFile: compiler:Default.isl; Name: be; MessagesFile: compiler:Languages\Belarusian.isl; Name: bg; MessagesFile: compiler:Languages\Bulgarian.isl; diff --git a/package/make_inno.ps1 b/package/make_inno.ps1 index 7e4d681a3..e48cb2856 100644 --- a/package/make_inno.ps1 +++ b/package/make_inno.ps1 @@ -105,8 +105,8 @@ $InnoArgs = "/DVERSION=$Version", if ($BrandingDir) { $InnoArgs += "/DBRANDING_DIR=$BrandingDir" } -if ($CompanyName -eq "euro-office") { - $InnoArgs += "/D_Euro-Office" +if ($CompanyName -eq "Euro-Office") { + $InnoArgs += "/D_EuroOffice" } switch ($Target) { "commercial" { diff --git a/win-linux/CMakeLists.txt b/win-linux/CMakeLists.txt index a337039aa..ff1e618fe 100644 --- a/win-linux/CMakeLists.txt +++ b/win-linux/CMakeLists.txt @@ -17,21 +17,9 @@ set(CMAKE_AUTOUIC ON) set(CORE_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/../../core") set(DESKTOP_SDK_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../desktop-sdk") +set(BUILD_DESKTOP TRUE CACHE INTERNAL "tell common to prepare third party for desktop") include(${CORE_ROOT_DIR}/common.cmake) -message( "Fetch and build icu (DESKTOPEDITOR VERSION 60)" ) -set(ICU_3RDPARTY_DIR "${CORE_ROOT_DIR}/Common/3dParty/icu") -set(ICU_INSTALL_DIR "${EO_CORE_3RD_PARTY_INSTALL_DIR}/icu60") -set(ICU_MAJOR_VER "60") -set(ICU_MINOR_VER "3") -get_filename_component(ICU_3RDPARTY_DIR_ABS "${ICU_3RDPARTY_DIR}" ABSOLUTE) -get_filename_component(ICU_INSTALL_DIR_ABS "${ICU_INSTALL_DIR}" ABSOLUTE) -execute_process( - COMMAND_ECHO STDOUT - COMMAND ./nc-build.sh "${EO_CORE_3RD_PARTY_WORK_DIR}/icu60" "${ICU_INSTALL_DIR}" ${ICU_MAJOR_VER} ${ICU_MINOR_VER} - WORKING_DIRECTORY ${ICU_3RDPARTY_DIR_ABS} -) - if(NOT TARGET hunspell-wrapper) add_subdirectory(${CORE_ROOT_DIR}/Common/3dParty/hunspell/qt hunspell-wrapper) @@ -121,33 +109,11 @@ if(NOT TARGET allthemesgen) add_subdirectory( "${CORE_ROOT_DIR}/DesktopEditor/allthemesgen" allthemesgen ) endif() -message( "Fetch and build OpenSSL" ) -set(OPENSSL_3RDPARTY_DIR "${CORE_ROOT_DIR}/Common/3dParty/openssl") -set(OPENSSL_INSTALL_DIR "${EO_CORE_3RD_PARTY_INSTALL_DIR}/openssl_build_linux_64") -get_filename_component(OPENSSL_3RDPARTY_DIR_ABS "${OPENSSL_3RDPARTY_DIR}" ABSOLUTE) -get_filename_component(OPENSSL_INSTALL_DIR_ABS "${OPENSSL_INSTALL_DIR}" ABSOLUTE) -execute_process( - COMMAND_ECHO STDOUT - COMMAND ./nc-build.sh "${EO_CORE_3RD_PARTY_WORK_DIR}/openssl" "${OPENSSL_INSTALL_DIR}" - WORKING_DIRECTORY ${OPENSSL_3RDPARTY_DIR_ABS} -) - -# 2. Find Qt Packages -set(QT_ROOT "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/qt/Qt-5.9.9/gcc_64/") -set(QT_DIR "${QT_ROOT}/lib/cmake/Qt5") -set(Qt5_DIR "${QT_ROOT}/lib/cmake/Qt5") -find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Gui Widgets PrintSupport Svg) -find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui Widgets PrintSupport Svg LinguistTools Multimedia MultimediaWidgets) - if(UNIX) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS DBus X11Extras) add_definitions(-DLINUX -D_LINUX -D_X11) endif() -set(CEF_ROOT "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/cef") -list(APPEND CMAKE_MODULE_PATH "${CEF_ROOT}/cmake") -find_package(CEF REQUIRED) - # 3. Definitions & Global Config add_definitions(-D__DONT_WRITE_IN_APP_TITLE) add_definitions(-DAPP_ICON_PATH="./res/icons/desktopeditors-eo.ico") @@ -295,6 +261,8 @@ if(WIN32) list(APPEND COMMON_SOURCES src/platform_win/wintoastlib.cpp src/components/cnotification.cpp) endif() + + elseif(UNIX AND NOT APPLE) # Linux Resource Compiler (GResource) @@ -354,8 +322,10 @@ add_executable(DesktopEditors ${COMMON_SOURCES} ${COMMON_HEADERS} ${RESOURCES}) set_default_options(DesktopEditors) -find_package(PkgConfig REQUIRED) -pkg_check_modules(DBUS REQUIRED dbus-1) +if(NOT WIN32) + find_package(PkgConfig REQUIRED) + pkg_check_modules(DBUS REQUIRED dbus-1) +endif() # 8. Include Paths target_include_directories(DesktopEditors PRIVATE @@ -368,15 +338,22 @@ target_include_directories(DesktopEditors PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../core/DesktopEditor ${CMAKE_CURRENT_SOURCE_DIR}/../../core/Common ${CMAKE_CURRENT_SOURCE_DIR}/extras/update-daemon/src/classes - ${OPENSSL_INSTALL_DIR}/include + ${OPENSSL_INSTALL_DIR_ABS}/include ${CMAKE_CURRENT_SOURCE_DIR}/../../core/Common/3dParty/openssl/common ${CORE_ROOT_DIR}/Common/3dParty/openssl/common ) +if(WIN32) + target_include_directories(DesktopEditors PRIVATE + ${Qt5PrintSupport_PRIVATE_INCLUDE_DIRS} + ${Qt5Core_PRIVATE_INCLUDE_DIRS} + ${Qt5Gui_PRIVATE_INCLUDE_DIRS}) +endif() + target_link_directories(DesktopEditors PRIVATE $<$:${CEF_ROOT}/Debug> $<$:${CEF_ROOT}/Release> - ${ICU_INSTALL_DIR}/include + ${ICU_DESKTOP_INSTALL_DIR}/include ) target_link_libraries(DesktopEditors PRIVATE @@ -401,39 +378,56 @@ target_link_libraries(DesktopEditors PRIVATE PdfFile DjVuFile XpsFile - ${OPENSSL_INSTALL_DIR_ABS}/lib/libssl.a - ${OPENSSL_INSTALL_DIR_ABS}/lib/libcrypto.a - -Wl,--end-group - - # --- Main CEF Binary --- - cef + ${OPENSSL_LIBSSL} + ${OPENSSL_LIBCRYPTO} + -Wl,--end-group # --- System Essentials --- hunspell_wrapper ooxmlsignature - X11 - dl - pthread - rt - z ) +if(WIN32) + target_link_libraries(DesktopEditors PRIVATE libcef) +else() + target_link_libraries(DesktopEditors PRIVATE cef X11 dl pthread rt z) +endif() + if(ABOUT_PAGE_APP_NAME) add_compile_definitions(ABOUT_PAGE_APP_NAME="${ABOUT_PAGE_APP_NAME}") endif() +target_compile_definitions(DesktopEditors PRIVATE COMMON_OPENSSL_BUILDING_INTERNAL) + +if(WIN32) + target_compile_definitions(DesktopEditors PRIVATE UNICODE _UNICODE WIN32 _WINDOWS) +endif() + if(UNIX) target_link_libraries(DesktopEditors PRIVATE Qt${QT_VERSION_MAJOR}::DBus Qt${QT_VERSION_MAJOR}::X11Extras - ${ICU_INSTALL_DIR_ABS}/lib/libicuuc.so.${ICU_MAJOR_VER} - ${ICU_INSTALL_DIR_ABS}/lib/libicudata.so.${ICU_MAJOR_VER} - ${ICU_INSTALL_DIR_ABS}/lib/libicui18n.so.${ICU_MAJOR_VER} + ${LIBICUUC_DESKTOP} + ${LIBICUDATA_DESKTOP} + ${LIBICUI_DESKTOP} ) target_link_options(DesktopEditors PRIVATE "-Wl,-rpath,$ORIGIN" "-Wl,-rpath,$ORIGIN/converter") endif() +if(WIN32) + foreach(_t DesktopEditors editors_helper + doctrenderer DocxRenderer kernel kernel_network graphics + UnicodeConverter PdfFile DjVuFile XpsFile ooxmlsignature + Fb2File EpubFile HtmlFile2 OFDFile IWorkFile HWPFile + StarMathConverter) + target_link_options(${_t} PRIVATE + "/MANIFESTDEPENDENCY:type='win32' name='converter' version='1.0.0.0' processorArchitecture='amd64'") + endforeach() + target_link_options(DesktopEditors PRIVATE + "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'") +endif() + # 10. Translations file(GLOB TS_FILES "langs/*.ts") qt5_create_translation(DesktopEditors TS_FILES ${TS_FILES}) @@ -442,86 +436,95 @@ qt5_create_translation(DesktopEditors TS_FILES ${TS_FILES}) set(CEF_LIB_PATH "${CEF_ROOT}/Release") set(CEF_RESOURCES_PATH "${CEF_ROOT}/Resources") - - set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/desktopeditors" CACHE PATH "Default install path" FORCE) set(CMAKE_INSTALL_BINDIR ".") -# 2. Main Target Installation -install(TARGETS +# 2. Main Target Installation (RUNTIME = .exe/.dll on Windows, LIBRARY = .so on Linux) +install(TARGETS editors_helper DesktopEditors ascdocumentscore qtascdocumentscore - #ooxmlsignature LIBRARY DESTINATION ${CMAKE_INSTALL_BINDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) -# CEF Binaries -install(DIRECTORY "${CEF_LIB_PATH}/" - DESTINATION ${CMAKE_INSTALL_BINDIR} - FILES_MATCHING - PATTERN "*.so" - PATTERN "*.so.*" - PATTERN "*.bin" - PATTERN "*.json" -) +# CEF binaries +if(WIN32) + install(DIRECTORY "${CEF_LIB_PATH}/" + DESTINATION ${CMAKE_INSTALL_BINDIR} + FILES_MATCHING + PATTERN "*.dll" + PATTERN "*.bin" + PATTERN "*.json" + ) +else() + install(DIRECTORY "${CEF_LIB_PATH}/" + DESTINATION ${CMAKE_INSTALL_BINDIR} + FILES_MATCHING + PATTERN "*.so" + PATTERN "*.so.*" + PATTERN "*.bin" + PATTERN "*.json" + ) +endif() -# CEF Resources (pak files, locales, icudtl.dat) +# CEF Resources (pak files, locales, icudtl.dat) — identical layout on both platforms install(DIRECTORY "${CEF_RESOURCES_PATH}/" DESTINATION ${CMAKE_INSTALL_BINDIR} ) -install(DIRECTORY "${ICU_INSTALL_DIR_ABS}/lib/" - DESTINATION ${CMAKE_INSTALL_BINDIR} - FILES_MATCHING PATTERN "lib*.so*" -) - -install(DIRECTORY "${QT_ROOT}/lib/" - DESTINATION ${CMAKE_INSTALL_BINDIR} - FILES_MATCHING PATTERN "lib*.so*" -) - -install(DIRECTORY "${QT_ROOT}/plugins/" - DESTINATION ${CMAKE_INSTALL_BINDIR} -) +# ICU runtime for the main app +if(WIN32) + install(DIRECTORY "${ICU_DESKTOP_INSTALL_DIR_ABS}/lib/" + DESTINATION ${CMAKE_INSTALL_BINDIR} + FILES_MATCHING PATTERN "icu*.dll" + ) +else() + install(DIRECTORY "${ICU_DESKTOP_INSTALL_DIR_ABS}/lib/" + DESTINATION ${CMAKE_INSTALL_BINDIR} + FILES_MATCHING PATTERN "lib*.so*" + ) +endif() -#Install Core dependencies -install(TARGETS - UnicodeConverter - kernel - kernel_network - Fb2File - PdfFile - HtmlFile2 - EpubFile - XpsFile - OFDFile - DjVuFile - DocxRenderer - doctrenderer - IWorkFile - HWPFile - graphics - x2tlib - allfontsgen - allthemesgen - StarMathConverter - ooxmlsignature - x2t - LIBRARY DESTINATION ${CMAKE_INSTALL_BINDIR}/converter - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}/converter -) +# Qt runtime +if(WIN32) + install(DIRECTORY "${QT_ROOT}/bin/" + DESTINATION ${CMAKE_INSTALL_BINDIR} + FILES_MATCHING PATTERN "Qt5*.dll" + ) + install(DIRECTORY "${QT_ROOT}/plugins/" + DESTINATION ${CMAKE_INSTALL_BINDIR} + FILES_MATCHING PATTERN "*.dll" + ) +else() + install(DIRECTORY "${QT_ROOT}/lib/" + DESTINATION ${CMAKE_INSTALL_BINDIR} + FILES_MATCHING PATTERN "lib*.so*" + ) + install(DIRECTORY "${QT_ROOT}/plugins/" + DESTINATION ${CMAKE_INSTALL_BINDIR} + ) +endif() -install(DIRECTORY "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/boost/linux_64/lib/" - DESTINATION ${CMAKE_INSTALL_BINDIR}/converter - FILES_MATCHING PATTERN "lib*.so*" -) +# vcpkg runtime DLLs (hunspell, etc. — x64-windows triplet is dynamic) +if(WIN32) + install(DIRECTORY "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/" + DESTINATION ${CMAKE_INSTALL_BINDIR} + FILES_MATCHING PATTERN "*.dll" + ) +endif() -install(DIRECTORY "${EO_CORE_3RD_PARTY_INSTALL_DIR}/icu/lib/" +# Core dependencies → converter/ +install(DIRECTORY "${EO_CORE_OUTPUT_DIR}/" + USE_SOURCE_PERMISSIONS DESTINATION ${CMAKE_INSTALL_BINDIR}/converter - FILES_MATCHING PATTERN "lib*.so*" ) -#qt6: qt_add_translations... \ No newline at end of file +# Boost: on Windows it's static (linked into the binaries) — nothing to install +if(NOT WIN32) + install(DIRECTORY "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/boost/linux_64/lib/" + DESTINATION ${CMAKE_INSTALL_BINDIR}/converter + FILES_MATCHING PATTERN "lib*.so*" + ) +endif() \ No newline at end of file diff --git a/win-linux/src/main.cpp b/win-linux/src/main.cpp index b0faa7bc4..e8bed05b5 100644 --- a/win-linux/src/main.cpp +++ b/win-linux/src/main.cpp @@ -71,6 +71,10 @@ int main( int argc, char *argv[] ) QCoreApplication::setAttribute(Qt::AA_DisableHighDpiScaling); #endif QCoreApplication::setAttribute(Qt::AA_Use96Dpi); +#ifdef _WIN32 + QCoreApplication::setAttribute(Qt::AA_UseDesktopOpenGL); // avoid Qt's ANGLE colliding with CEF's libEGL/libGLESv2 +#endif + QCoreApplication::setApplicationName(QString::fromUtf8(WINDOW_NAME)); QApplication::setApplicationDisplayName(QString::fromUtf8(WINDOW_NAME));