F1ash / qt-virt-manager

Qt Virtual machines manager
http://f1ash.github.io/qt-virt-manager
GNU General Public License v2.0
233 stars 71 forks source link

Build Error Involving qtermwidget.h #27

Closed harriseldon closed 6 years ago

harriseldon commented 6 years ago

I am trying to build the project and I get the following error: qt-virt-manager/src/vm_viewer/qterminal/termwidget.h:4:10: fatal error: qtermwidget.h: No such file or directory

include

      ^~~~~~~~~~~~~~~

compilation terminated.

If this issue is related to how I am building it, please let me know. I do have qtermwidget installed and the .h file is in /usr/include/qtermwidget5/

msarti commented 6 years ago

Same error, building on Arch Linux against qtermwidget 0.8.0-1.

F1ash commented 6 years ago

rpm -q --filesbypkg qtermwidget-devel

qtermwidget-devel /usr/include/qtermwidget5 qtermwidget-devel /usr/include/qtermwidget5/Filter.h qtermwidget-devel /usr/include/qtermwidget5/qtermwidget.h qtermwidget-devel /usr/lib64/libqtermwidget5.so qtermwidget-devel /usr/lib64/pkgconfig/qtermwidget5.pc qtermwidget-devel /usr/share/cmake/qtermwidget5 qtermwidget-devel /usr/share/cmake/qtermwidget5/qtermwidget5-config.cmake qtermwidget-devel /usr/share/cmake/qtermwidget5/qtermwidget5_use.cmake

...that in Fedora. For find header i use find_package() cmake function. Pls, display the content of your distribution qtermwidget[-devel] package.

msarti commented 6 years ago

pacman -Ql qtermwidget

qtermwidget /usr/ qtermwidget /usr/include/ qtermwidget /usr/include/qtermwidget5/ qtermwidget /usr/include/qtermwidget5/Emulation.h qtermwidget /usr/include/qtermwidget5/Filter.h qtermwidget /usr/include/qtermwidget5/qtermwidget.h qtermwidget /usr/include/qtermwidget5/qtermwidget_export.h qtermwidget /usr/lib/ qtermwidget /usr/lib/libqtermwidget5.so qtermwidget /usr/lib/libqtermwidget5.so.0 qtermwidget /usr/lib/libqtermwidget5.so.0.8.0 qtermwidget /usr/lib/pkgconfig/ qtermwidget /usr/lib/pkgconfig/qtermwidget5.pc qtermwidget /usr/share/ qtermwidget /usr/share/cmake/ qtermwidget /usr/share/cmake/qtermwidget5/ qtermwidget /usr/share/cmake/qtermwidget5/qtermwidget5-config-version.cmake qtermwidget /usr/share/cmake/qtermwidget5/qtermwidget5-config.cmake qtermwidget /usr/share/cmake/qtermwidget5/qtermwidget5-targets-release.cmake qtermwidget /usr/share/cmake/qtermwidget5/qtermwidget5-targets.cmake qtermwidget /usr/share/qtermwidget5/ qtermwidget /usr/share/qtermwidget5/color-schemes/ qtermwidget /usr/share/qtermwidget5/color-schemes/BlackOnLightYellow.schema qtermwidget /usr/share/qtermwidget5/color-schemes/BlackOnRandomLight.colorscheme qtermwidget /usr/share/qtermwidget5/color-schemes/BlackOnWhite.schema qtermwidget /usr/share/qtermwidget5/color-schemes/BreezeModified.colorscheme qtermwidget /usr/share/qtermwidget5/color-schemes/DarkPastels.colorscheme qtermwidget /usr/share/qtermwidget5/color-schemes/GreenOnBlack.colorscheme qtermwidget /usr/share/qtermwidget5/color-schemes/Linux.colorscheme qtermwidget /usr/share/qtermwidget5/color-schemes/Solarized.colorscheme qtermwidget /usr/share/qtermwidget5/color-schemes/SolarizedLight.colorscheme qtermwidget /usr/share/qtermwidget5/color-schemes/WhiteOnBlack.schema qtermwidget /usr/share/qtermwidget5/color-schemes/historic/ qtermwidget /usr/share/qtermwidget5/color-schemes/historic/BlackOnLightColor.schema qtermwidget /usr/share/qtermwidget5/color-schemes/historic/DarkPicture.schema qtermwidget /usr/share/qtermwidget5/color-schemes/historic/GreenOnBlack.schema qtermwidget /usr/share/qtermwidget5/color-schemes/historic/GreenTint.schema qtermwidget /usr/share/qtermwidget5/color-schemes/historic/GreenTint_MC.schema qtermwidget /usr/share/qtermwidget5/color-schemes/historic/LightPicture.schema qtermwidget /usr/share/qtermwidget5/color-schemes/historic/Linux.schema qtermwidget /usr/share/qtermwidget5/color-schemes/historic/Transparent.schema qtermwidget /usr/share/qtermwidget5/color-schemes/historic/Transparent_MC.schema qtermwidget /usr/share/qtermwidget5/color-schemes/historic/Transparent_darkbg.schema qtermwidget /usr/share/qtermwidget5/color-schemes/historic/Transparent_lightbg.schema qtermwidget /usr/share/qtermwidget5/color-schemes/historic/XTerm.schema qtermwidget /usr/share/qtermwidget5/color-schemes/historic/syscolor.schema qtermwidget /usr/share/qtermwidget5/color-schemes/historic/vim.schema qtermwidget /usr/share/qtermwidget5/kb-layouts/ qtermwidget /usr/share/qtermwidget5/kb-layouts/default.keytab qtermwidget /usr/share/qtermwidget5/kb-layouts/historic/ qtermwidget /usr/share/qtermwidget5/kb-layouts/historic/vt100.keytab qtermwidget /usr/share/qtermwidget5/kb-layouts/historic/x11r5.keytab qtermwidget /usr/share/qtermwidget5/kb-layouts/linux.keytab qtermwidget /usr/share/qtermwidget5/kb-layouts/macbook.keytab qtermwidget /usr/share/qtermwidget5/kb-layouts/solaris.keytab qtermwidget /usr/share/qtermwidget5/kb-layouts/vt420pc.keytab qtermwidget /usr/share/qtermwidget5/translations/ qtermwidget /usr/share/qtermwidget5/translations/qtermwidget_da.qm qtermwidget /usr/share/qtermwidget5/translations/qtermwidget_fr.qm qtermwidget /usr/share/qtermwidget5/translations/qtermwidget_lt.qm qtermwidget /usr/share/qtermwidget5/translations/qtermwidget_pl.qm qtermwidget /usr/share/qtermwidget5/translations/qtermwidget_tr.qm qtermwidget /usr/share/qtermwidget5/translations/qtermwidget_zh_TW.qm

F1ash commented 6 years ago

cat /usr/lib64/pkgconfig/qtermwidget5.pc prefix=/usr libdir=${prefix}/lib64 includedir=${prefix}/include

Name: qtermwidget5 Description: QTermWidget library for Qt 0.x Version: 0.7.1 Requires: Qt5Core, Qt5Xml, Qt5Widgets Libs: -L${libdir} -lqtermwidget5 Cflags: -I${includedir} -I${includedir}/qtermwidget5

yet one (for your distribution)...

msarti commented 6 years ago

cat /usr/lib/pkgconfig/qtermwidget5.pc

file generated by create_pkgconfig_file()

prefix=/usr exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include

Name: qtermwidget5 Description: QTermWidget library for Qt 0.x Version: 0.8.0 Requires: Qt5Widgets Cflags: -I${includedir} -I${includedir}/qtermwidget5 Libs: -L${libdir} -lqtermwidget5

F1ash commented 6 years ago

hmmm... and you use last git-repo point of qt-virt-manager? at last point i have not that problem...

msarti commented 6 years ago

Yes, I try to build the master head.

This is the command line for cmake and the output: cmake -DBUILD_QT_VERSION=5 -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release

-- The CXX compiler identification is GNU 7.2.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test COMPILER_SUPPORTS_CXX11
-- Performing Test COMPILER_SUPPORTS_CXX11 - Success
-- Build with QT version: 5
-- QT4 build: 0
-- QT5 build: 1
-- 
-- LIB_SUFFIX variable is not defined. It will be autodetected now.
-- You can set it manually with -DLIB_SUFFIX=<value> (64 for example)
--    LIB_SUFFIX is set to '64'
-- 
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 
-- Found LibVirt: /usr/lib/libvirt.so  
-- Performing Test LIBVNCSERVER_FOUND
-- Performing Test LIBVNCSERVER_FOUND - Success
-- Found LibVNCServer: /usr/lib/libvncserver.so
-- Found GLib2: /usr/lib/libglib-2.0.so  
-- Checking for module 'gobject-2.0'
--   Found gobject-2.0, version 2.54.0
-- Found GObject libraries: /usr/lib/libgobject-2.0.so;/usr/lib/libgmodule-2.0.so;/usr/lib/libgthread-2.0.so;/usr/lib/libglib-2.0.so
-- Found GObject includes : /usr/include/glib-2.0/gobject
-- Checking for module 'gio-2.0'
--   Found gio-2.0, version 2.54.0
-- Found Gio libraries: /usr/lib/libgio-2.0.so
-- Found Gio includes : /usr/include/glib-2.0/gio
-- Found Spice1: /usr/include/spice-1  
-- Found SPICE_CLIENT_GLIB2: /usr/lib/libspice-client-glib-2.0.so  
-- Found includes :
    /usr/include/glib-2.0;/usr/lib/glib-2.0/include
    /usr/include/glib-2.0/gobject
    /usr/include/glib-2.0/gio

    /usr/include/spice-1
    /usr/include/spice-client-glib-2.0
    /usr/include/libvirt

    /usr/include/rfb
-- Found BUILD_PROJECT_LIBRARIES: Qt5::Widgets;Qt5::Xml;Qt5::Svg;Qt5::Multimedia;Qt5::Network;/usr/lib/libvirt.so;/usr/lib/libglib-2.0.so;/usr/lib/libgobject-2.0.so;/usr/lib/libgmodule-2.0.so;/usr/lib/libgthread-2.0.so;/usr/lib/libglib-2.0.so;/usr/lib/libgio-2.0.so;/usr/lib/libspice-client-glib-2.0.so;/usr/lib/libvncclient.so
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/qt-virt-manager
F1ash commented 6 years ago

..... -- Found PkgConfig: /usr/bin/pkg-config (found version "1.3.10") -- Found LibVirt: /usr/lib64/libvirt.so
-- Performing Test LIBVNCSERVER_FOUND -- Performing Test LIBVNCSERVER_FOUND - Success -- Found LibVNCServer: /usr/lib64/libvncserver.so -- Found GLib2: /usr/lib64/libglib-2.0.so
-- Checking for module 'gobject-2.0' -- Found gobject-2.0, version 2.54.2 -- Found GObject libraries: /usr/lib64/libgobject-2.0.so;/usr/lib64/libgmodule-2.0.so;/usr/lib64/libgthread-2.0.so;/usr/lib64/libglib-2.0.so -- Found GObject includes : /usr/include/glib-2.0/gobject -- Checking for module 'gio-2.0' -- Found gio-2.0, version 2.54.2 -- Found Gio libraries: /usr/lib64/libgio-2.0.so -- Found Gio includes : /usr/include/glib-2.0/gio -- Found Spice1: /usr/include/spice-1
-- Found SPICE_CLIENT_GLIB2: /usr/lib64/libspice-client-glib-2.0.so
-- Checking for module 'libcacard' -- Found libcacard, version 2.5.3 -- Found CACard libraries: /usr/lib64/libcacard.so -- Found CACard includes : /usr/include/cacard -- Found includes : /usr/include/glib-2.0;/usr/lib64/glib-2.0/include /usr/include/glib-2.0/gobject /usr/include/glib-2.0/gio /usr/include/cacard /usr/include/spice-1 /usr/include/spice-client-glib-2.0 /usr/include/libvirt /usr/include/qtermwidget5 /usr/include/rfb -- Found BUILD_PROJECT_LIBRARIES: Qt5::Widgets;Qt5::Xml;Qt5::Svg;Qt5::Multimedia;Qt5::Network;/usr/lib64/libvirt.so;qtermwidget5;/usr/lib64/libglib-2.0.so;/usr/lib64/libgobject-2.0.so;/usr/lib64/libgmodule-2.0.so;/usr/lib64/libgthread-2.0.so;/usr/lib64/libglib-2.0.so;/usr/lib64/libgio-2.0.so;/usr/lib64/libcacard.so;/usr/lib64/libspice-client-glib-2.0.so;/usr/lib64/libvncclient.so -- Configuring done -- Generating done ..... you can to see that qtermwidget5 library is not found... Maybe this is pkg-config problem.

gasinvein commented 6 years ago

Same here, openSUSE Tumbleweed, pkg-config 0.29.2, qtermwidget-qt5 0.8.0, files:

/usr/include/qtermwidget5
/usr/include/qtermwidget5/Emulation.h
/usr/include/qtermwidget5/Filter.h
/usr/include/qtermwidget5/qtermwidget.h
/usr/include/qtermwidget5/qtermwidget_export.h
/usr/lib64/libqtermwidget5.so
/usr/lib64/pkgconfig/qtermwidget5.pc
/usr/share/cmake/qtermwidget5
/usr/share/cmake/qtermwidget5/qtermwidget5-config-version.cmake
/usr/share/cmake/qtermwidget5/qtermwidget5-config.cmake
/usr/share/cmake/qtermwidget5/qtermwidget5-targets-relwithdebinfo.cmake
/usr/share/cmake/qtermwidget5/qtermwidget5-targets.cmake
abucodonosor commented 6 years ago

@F1ash

I have the same problem.

It seems qtermwidget >= 0.8.0 changed his cmake files so QTERMWIDGET_INCLUDE_DIRS doesn't seems to exits anymore.

I'll investigate

abucodonosor commented 6 years ago

@F1ash

after this https://github.com/lxde/qtermwidget/pull/120 find_package() seems broken from external projects.

pkg_check_modules() , eg: pure pkg-config seems to still work

abucodonosor commented 6 years ago

@F1ash

Ok I figured how the NEW way is meant to work.. the question is if you want support <0.8.0 too or just >= 0.8.0 in newer version ?

abucodonosor commented 6 years ago

@F1ash

after poking around the only sane way to support both <0.8 && >=0.8 , without adding lots ifde's and checks ( for nothing ) is to use pkg_check_modules()..

something simple like this should do it:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index c6649ab..9e83dc3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1085,7 +1085,7 @@ endif ( QT4_BUILD )

 find_package(LibVirt                REQUIRED)
 if ( WITH_LXC_SUPPORT )
-    find_package(${TERM_WIDGET_LIB} REQUIRED)
+    pkg_check_modules(QTERMWIDGET ${TERM_WIDGET_LIB} REQUIRED)
 endif ()
 if ( WITH_VNC_SUPPORT )
     find_package(LibVNCServer       REQUIRED)
F1ash commented 6 years ago

thanks. it's works.