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()

Attachment: pgpD9GywNg6XJ.pgp
Description: Digitale Signatur von OpenPGP

-- 
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel

Reply via email to