Am Sat, 10 Dec 2022 15:38:43 +0100 schrieb Yu Jin <technikma...@gmail.com>:
> Am Do., 8. Dez. 2022 um 16:11 Uhr schrieb Kornel Benko <kor...@lyx.org>: > > > Am Thu, 8 Dec 2022 09:52:29 -0500 > > schrieb Scott Kostyshak <skost...@lyx.org>: > > > > > On Mon, Dec 05, 2022 at 10:15:18PM +0100, Yu Jin wrote: > > > > Am Mo., 5. Dez. 2022 um 10:39 Uhr schrieb Pavel Sanda <sa...@lyx.org>: > > > > > > > > > > > > > > Given that on major linux distributions will still link against qt5 > > > > > I think stikcing for 2.4 with Qt 5 is just fine... > > > > > > > > > > > > I think my curiosity helped here :) > > > > > > > > So I found out that there is different version of zlib in the Qt > > versions, > > > > the working Qt has a version 1.2.11 (I can see it in the zlib.h in e.g. > > > > C:\Qt\6.3.1\msvc2019_64\include\QtZlib folder and the broken Qt > > Versions > > > > have 1.2.12 or 13. > > > > I digged a bit more and found that our projects in Visual Studio > > include > > > > those QtZlib folders for some reason: > > > > and lyx's zlib folder gets included further below which means it has > > lower > > > > priority. If I just remove the QtZlib include from the project, > > compilation > > > > works. Can we do something in CMake here so that QtZlib is not > > included? > > > > > > CC'ing Kornel if he has time to take a look at the CMake question. > > > > > > Scott > > > > I really have no idea. I don't even have QtZlib directory on my system. > > Even searching with 'apt-file find QtZlib' > > > > Ok so i found out that QtZlib is a dependency of QtCore and QtCore is a > dependency of Qt6Core5Compat. Since we have > include_directories(${Qt6Core5Compat_INCLUDE_DIRS}) > > https://git.lyx.org/?p=lyx.git;a=blob;f=CMakeLists.txt;h=4a9c428d4a48c838f9e9cd61fab59c46a330b1b3;hb=HEAD#l837 > > It includes those dirs. I don't know it does seem kinda suspicious to me, > because actually Qt forces everyone who needs Core to use QtZlib with that, > but I can't evaluate that. I just tried to add a > list(REMOVE_ITEM Qt6Core5Compat_INCLUDE_DIRS > "C:/Qt/6.4.1/msvc2019_64/include/QtZlib") > just before that include_directories command and it works > perfectly fine, everything compiles and runs as it should. With Qt5 it > works fine because we don't include any dirs there but we do with that > compatibility module. > What we could do is use this command: > list(REMOVE_ITEM Qt6Core5Compat_INCLUDE_DIRS > "${CMAKE_PREFIX_PATH}/include/QtZlib") > but it would rather be a workaround than a solution. Any thoughts? If this works for you, then I have no objection. Works for debian (it is noop there). Kornel
diff --git a/CMakeLists.txt b/CMakeLists.txt index 4a9c428d4a..037465a625 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -832,10 +832,11 @@ if(LYX_USE_QT MATCHES "QT6|QT5") set(LYX_QTMAIN_LIBRARY ${${QtVal}Core_QTMAIN_LIBRARIES}) endif() if (LYX_USE_QT MATCHES "QT6") get_target_property(QT_MOC_EXECUTABLE Qt6::moc LOCATION) find_package(Qt6 COMPONENTS Core5Compat REQUIRED) + list(REMOVE_ITEM Qt6Core5Compat_INCLUDE_DIRS "${CMAKE_PREFIX_PATH}/include/QtZlib") include_directories(${Qt6Core5Compat_INCLUDE_DIRS}) set(QtCore5CompatLibrary Qt6::Core5Compat) set(QtCore5CompatModule Core5Compat) endif() endif()
pgpD9GywNg6XJ.pgp
Description: Digitale Signatur von OpenPGP
-- lyx-devel mailing list lyx-devel@lists.lyx.org http://lists.lyx.org/mailman/listinfo/lyx-devel