Host Environment
To Reproduce
Steps to reproduce the behavior:
./vcpkg install opencv4[qt] --recurse
Failure logs
Computing installation plan...
The following packages will be rebuilt:
.\vcpkg update, thenAdditionally, attach any relevant sections from the log files above.
Additional context
I removed all the qt5 stuff, and rebuilt from scratch, the same error.
I was able to reproduce your issue. There might be a circular reference inside features for qt5 CONTROL file @Neumann-A; this should be reproducible easily with an empty port, just depending on "qt5" .
Changing opencv4 dependency from qt5 to qt5-base seems to fix the issue, but I am not sure it is enough to satisfy dependencies
Found in cmake\OpenCVFindLibsGUI.cmake:
if(WITH_QT)
if(NOT WITH_QT EQUAL 4)
find_package(Qt5 COMPONENTS Core Gui Widgets Test Concurrent REQUIRED NO_MODULE)
if(Qt5_FOUND)
set(HAVE_QT5 ON)
set(HAVE_QT ON)
find_package(Qt5 COMPONENTS OpenGL QUIET)
if(Qt5OpenGL_FOUND)
set(QT_QTOPENGL_FOUND ON)
endif()
endif()
endif()
if(NOT HAVE_QT)
find_package(Qt4 REQUIRED QtCore QtGui QtTest)
if(QT4_FOUND)
set(HAVE_QT TRUE)
endif()
endif()
endif()
Depending on only qt5-base seems correct if you ask me
Yes I just completed a build and it seems ok.
I am going to fix it in the next opencv 4.3 update.
Do you have time in any case to investigate circular dependency problems when a port file depends on qt5 (not qt5-base), since you are well into the matter? It seems that vcpkg in that case cannot resolve anymore the chain of dependencies and just throws hands up
Since depending on the metaport qt5 is probably always wrong having it fail feels more like a feature than a bug :). I look into it if I got some free time but it currently seems like a low priority issue.
It seems that vcpkg in that case cannot resolve anymore the chain of dependencies and just throws hands up
That seems like a bug which needs to be resolved in vcpkg sources.
This also breaks on macOS as well.
And confirmed that changing the dependency for the qt feature to point to qt5-base works on macOS