[Gammaray-interest] Qt Internals problem
Kevin Funk
kevin.funk at kdab.com
Tue Oct 29 11:21:28 CET 2013
On Tuesday 29 October 2013, 11:14, Stefano Cordibella wrote:
> Thank you Kevin for your quick answer!
>
> In my environment I am unable to auto-detect QT_PRIVATE_INCLUDE_DIR.
>
> I export qmake bin dir in this way:
> export PATH=/usr/local/Trolltech/Qt-4.8.4/bin:$PATH
Hey,
You need to have 'qmake' from the build directory in your PATH. Then the
private-header check in CMake should succeed.
See the help text during the CMake run:
"Make sure the qmake found first in your execute comes from this build
version".
> But CMake told me :
> -- The C compiler identification is GNU
> -- The CXX compiler identification is GNU
> -- Check for working C compiler: /usr/bin/gcc
> -- Check for working C compiler: /usr/bin/gcc -- works
> -- Detecting C compiler ABI info
> -- Detecting C compiler ABI info - done
> -- 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
> -- Building GammaRay 1.3.2 in Release mode
> -- Looking for Q_WS_X11
> -- Looking for Q_WS_X11 - found
> -- Looking for Q_WS_WIN
> -- Looking for Q_WS_WIN - not found.
> -- Looking for Q_WS_QWS
> -- Looking for Q_WS_QWS - not found.
> -- Looking for Q_WS_MAC
> -- Looking for Q_WS_MAC - not found.
> -- Found Qt4: /usr/local/Trolltech/Qt-4.8.4/bin/qmake (found suitable
> version "4.8.4", required is "4.7.0")
> -- Looking for clock_gettime in rt
> -- Looking for clock_gettime in rt - found
> -- Looking for include files HAVE_STDINT_H
> -- Looking for include files HAVE_STDINT_H - found
> -- Performing Test HAVE_GCC_UNUSED_BUT_SET
> -- Performing Test HAVE_GCC_UNUSED_BUT_SET - Success
> -- Performing Test HAVE_GCC_LOGICAL_OP
> -- Performing Test HAVE_GCC_LOGICAL_OP - Success
> -- Looking for include files HAVE_GRAPHVIZ_VERSION_H
> -- Looking for include files HAVE_GRAPHVIZ_VERSION_H - found
> -- Found Graphviz version 2.26.3
> -- Found Graphviz: /usr/lib/libcdt.so /usr/lib/libgvc.so
> /usr/lib/libcgraph.so /usr/lib/libgraph.so /usr/lib/libpathplan.so
>
> ----------------------------------------------------------------------------
> - -- The following external packages were located on your system.
> -- This installation will have the extra features provided by these
> packages.
> ----------------------------------------------------------------------------
> - * Script engine debugger in Qt - A debugger for QtScript
> * WebKit in Qt - A Qt-based web browser engine
> * Qt SVG - Qt SVG renderer and generator
> * Qt Designer Library - Qt graphical widget editor
> * Qt Print Support - Qt PDF generation
> * librt - High resolution clock for the timer profiler plugin.
> * Graphviz - Graph visualization software
> * VTK - Visualization Toolkit
>
> ----------------------------------------------------------------------------
> - -- The following OPTIONAL packages could NOT be located on your system. --
> Consider installing them to enable more features from this software.
> ---------------------------------------------------------------------------
> -- * Qt internals (4.7.0 or higher) <http://developer.qt.nokia.com/> Private
> Qt headers, necessary for painter debugging/profiling. You must have a
> build version of Qt available. Make sure the qmake found first in your
> execute comes from this build version.
> * KDE4 <http://www.kde.org/>
> KDE libraries
> Required for the KJob tracker plug-in
>
> ----------------------------------------------------------------------------
> -
>
> -- Configuring done
> -- Generating done
> -- Build files have been written to: /home/juba/Qt/GammaRay-1.3.2/build
>
> So I try to set the QT_PRIVATE_INCLUDE_DIR manually via make edit_cache:
> /home/juba/Qt/qt-everywhere-opensource-src-4.8.4/include/QtCore
>
> After this the HARFBUZZ_INCLUDE_DIR become set to:
> /home/juba/Qt/qt-everywhere-opensource-src-4.8.4/src/3rdparty/harfbuzz/src
>
> After this setting I generate the Makefiles, but the build doesn't
> complete...
> The reported error is:
> [ 38%] Building CXX object
> core/CMakeFiles/gammaray_probe.dir/mainwindow.cpp.o
> /home/juba/Qt/GammaRay-1.3.2/core/mainwindow.cpp:38:68: fatal error:
> private/qguiplatformplugin_p.h: No such file or directory
> compilation terminated.
> make[2]: *** [core/CMakeFiles/gammaray_probe.dir/mainwindow.cpp.o] Error 1
> make[1]: *** [core/CMakeFiles/gammaray_probe.dir/all] Error 2
> make: *** [all] Error 2
Using the other qmake binary probably should solve this already.
> So I check the GammaRay root directory and I found the file in
> 3rdparty/qt/private/qguiplatformplugin_p.h
> The file is also present in
> qt-everywhere-opensource-src-4.8.4/src/gui/kernel/qguiplatformplugin_p.h
> and
> qt-everywhere-opensource-src-4.8.4/include/QtGui/private/qguiplatformplugin_
> p.h, but I haven't diff the content.
>
> Any idea to fix this build issue?
>
> (I prefer to use mailing list in order to keep a reference to the
> solution of the problem, so other people may track this solution).
Perfectly fine, of course.
Greets
> Stefano.
>
> On 10/29/2013 09:33 AM, Kevin Funk wrote:
> > On Tuesday 29 October 2013, 08:57, Stefano Cordibella wrote:
> >> Hi again,
> >>
> >> I have a question about compiling GammaRay with Qt internals
> >>
> >> feature enable.
> >> What is the directory that I should provide for this feature?
> >> I edit the cmake cache and I found an entry named QT_PRIVATE_INCLUDE_DIR
> >> but if I set a value for it I am unable to build GammaRay.
> >> The documentation refer to the "build" directory of Qt, and I don't
> >> understand if it refers to the source directory in which I compile the
> >> library (my ~/Qt/qt-everywhere-opensource-src-4.8.4) or the installation
> >> directory (the default /usr/local/Throlltech/Qt-4.8.4/).
> >>
> >> Forgive me for this stupid question, but I am unable to find
> >> documentation about this topic...
> >>
> >> Thanks in advance,
> >> Stefano.
> >
> > Hey Stefano,
> >
> > unfortunately this is not a stupid question at all. It is a bit tricky to
> > get right with a Qt4 build at the moment. It's lacking documentation.
> >
> > So, in order to enable that feature, QT_PRIVATE_INCLUDE_DIR should point
> > to
> > "$MY_QT4_IN_SOURCE_BUILD_DIRECTORY/include/QtCore". Note that you don't
> > have to specify that variable via CMake flags or anything, it's
> > auto-detected in case everything is alright.
> >
> > It's important that you have an *in-source build* of Qt4 (the directory
> > must contain both a src/ and include/ directory after having compiled Qt)
> > -- it's currently not possible to make this work with an out-of-source
> > build.
> >
> > Hope this clears up things a bit. In case you need to debug further, have
> > a
> > look at the root CMakeLists.txt file in GammaRay.git.
> >
> > Feel free to ping us on #gammaray on Freenode (IRC).
> >
> > Greets
--
Kevin Funk | kevin.funk at kdab.com | Software Engineer
KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
Tel. Germany +49-30-521325470, Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-independent software solutions
More information about the Gammaray-interest
mailing list