From d5060a132c562a45189ccef946f7e85879b26cc3 Mon Sep 17 00:00:00 2001 From: Jean-Francois Dockes Date: Mon, 30 Aug 2021 13:45:39 +0200 Subject: [PATCH] Add --enable-guidebug configure option to build the recoll program with debug symbols. Closes issue #91 --- src/configure.ac | 14 ++ src/doc/user/usermanual.html | 313 +++++++++++++++++------------------ src/doc/user/usermanual.xml | 256 ++++++++++++++-------------- src/qtgui/recoll.pro.in | 6 +- 4 files changed, 293 insertions(+), 296 deletions(-) diff --git a/src/configure.ac b/src/configure.ac index 3083373d..cacf1f52 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -466,6 +466,18 @@ if test X$enableQT = Xyes ; then QMAKE_DISABLE_ZEITGEIST="" fi + # Retain debugging symbols in GUI recoll ? This makes it enormous (~50MB) + AC_ARG_ENABLE(guidebug, + AC_HELP_STRING([--enable-guidebug], + [Generate and retain debug symbols in GUI program (makes the file very big).]), + enableGuiDebug=$enableval, enableGuiDebug="no") + + if test "$enableGuiDebug" = "yes" ; then + QMAKE_ENABLE_GUIDEBUG="" + else + QMAKE_ENABLE_GUIDEBUG="#" + fi + AC_CONFIG_FILES($QTGUI/recoll.pro) ##################### End QT stuff @@ -565,6 +577,8 @@ AC_SUBST(QMAKE_ENABLE_WEBKIT) AC_SUBST(QMAKE_DISABLE_WEBKIT) AC_SUBST(QMAKE_ENABLE_WEBENGINE) AC_SUBST(QMAKE_DISABLE_WEBENGINE) +AC_SUBST(QMAKE_ENABLE_GUIDEBUG) +AC_SUBST(QMAKE_DISABLE_GUIDEBUG) AC_SUBST(QMAKE_ENABLE_ZEITGEIST) AC_SUBST(QMAKE_DISABLE_ZEITGEIST) AC_SUBST(LIBQZEITGEIST) diff --git a/src/doc/user/usermanual.html b/src/doc/user/usermanual.html index 5c31a0aa..d924ff79 100644 --- a/src/doc/user/usermanual.html +++ b/src/doc/user/usermanual.html @@ -8389,169 +8389,158 @@ hasextract = False system, and need to modify things, I would very much welcome patches.

-

Configure options: 

-
- +
+
+
+
+

Configure + options:

+
+
+
+

--without-aspell will + disable the code for phonetic matching of search + terms.

+

--with-fam or + --with-inotify will enable + the code for real time indexing. Inotify support is + enabled by default on Linux systems.

+

--with-qzeitgeist will + enable sending Zeitgeist events about the visited + search results, and needs the qzeitgeist package.

+

--disable-qtgui will + disable the Qt graphical interface, which allows + building the indexer and the command line search + program in absence of a Qt environment.

+

--disable-webkit will + implement the result list with a Qt QTextBrowser instead of a + WebKit widget if you do not or can't depend on the + latter.

+

--enable-webengine will + enable the use of Qt Webengine (only meaningful if the + Qt GUI is enabled), in place or Qt Webkit.

+

--enable-guidebug will + build the recoll GUI program with debug symbols. This + makes it very big (~50MB), which is why it is stripped + by default.

+

--disable-idxthreads is + available from version 1.19 to suppress multithreading + inside the indexing process. You can also use the + run-time configuration to restrict recollindex to using + a single thread, but the compile-time option may + disable a few more unused locks. This only applies to + the use of multithreading for the core index processing + (data input). The Recoll monitor mode always uses at + least two threads of execution.

+

--disable-python-module + will avoid building the Python module.

+

--disable-python-chm + will avoid building the Python libchm interface used to + index CHM files.

+

--enable-camelcase will + enable splitting camelCase words. This + is not enabled by default as it has the unfortunate + side-effect of making some phrase searches quite + confusing: ie, "MySQL + manual" would be matched by "MySQL manual" and "my sql manual" but not "mysql manual" (only inside phrase + searches).

+

--with-file-command + Specify the version of the 'file' command to use (ie: + --with-file-command=/usr/local/bin/file). Can be useful + to enable the gnu version on systems where the native + one is bad.

+

--disable-x11mon Disable + X11 connection + monitoring inside recollindex. Together with + --disable-qtgui, this allows building recoll without + Qt and X11.

+

--disable-userdoc will + avoid building the user manual. This avoids having to + install the Docbook XML/XSL files and the TeX toolchain + used for translating the manual to PDF.

+

--enable-recollq Enable + building the recollq command line + query tool (recoll -t without need for Qt). This is + done by default if --disable-qtgui is set but this + option enables forcing it.

+

--disable-pic + (Recoll versions up to + 1.21 only) will compile Recoll with position-dependant + code. This is incompatible with building the KIO or the + Python or PHP extensions, but might yield + very marginally faster code.

+

--without-systemd + Disable the automatic installation of systemd unit + files. Normally unit files are installed if the install + path can be detected.

+

--with-system-unit-dir=DIR Provide an + install path for the systemd system unit template + file.

+

--with-user-unit-dir=DIR + Provide an install path for the systemd user unit + file.

+

Of course the usual autoconf configure options, + like --prefix apply.

+
+
+
+
+
+

Normal + procedure, for source extracted from a tar + distribution)

+
+
+
+
cd recoll-xxx
+./configure [options]
+make
+(practices usual hardship-repelling invocations)
+
+
+
+
+
+

Building + from git code

+
+
+
+

When building from source cloned from the git + repository, you also need to install autoconf, automake, and libtool and you must execute + sh autogen.sh in the top + source directory before running configure.

-

Normal procedure (for source extracted from a tar - distribution):

-
-          cd recoll-xxx
-          ./configure
-          make
-          (practices usual hardship-repelling invocations)
-        
-

When building from source cloned from the git - repository, you also need to install autoconf, automake, and libtool and you must execute - sh autogen.sh in the top - source directory before running configure.

diff --git a/src/doc/user/usermanual.xml b/src/doc/user/usermanual.xml index a9d5cb38..69fb7ef7 100644 --- a/src/doc/user/usermanual.xml +++ b/src/doc/user/usermanual.xml @@ -5363,10 +5363,10 @@ text/html [file:///Users/uncrypted-dockes/projets/bateaux/ilur/factEtCie/r - There is a good chance that your system repository has - packages for the Recoll Python API, sometimes in a package separate - from the main one (maybe named something like python-recoll). Else - refer to the Building from source chapter. + There is a good chance that your system repository has packages for the Recoll Python + API, sometimes in a package separate from the main one (maybe named something like + python-recoll). Else refer to the Building from source + chapter. As an introduction, the following small sample will run a query and list the title and url for each of the results. The @@ -6323,12 +6323,10 @@ hasextract = False for Xapian core. - If you are - building Xapian for an older CPU (before Pentium 4 or Athlon - 64), you need to add the flag - to the configure command. Else all Xapian application will - crash with an illegal instruction - error. + If you are building Xapian for an older CPU (before Pentium 4 or Athlon 64), you + need to add the flag to the configure command. Else all + Xapian application will crash with an illegal instruction + error. @@ -6357,8 +6355,8 @@ hasextract = False Check the - &RCL; download page for up to date version - information. + &RCL; download page for up to date version + information. @@ -6366,147 +6364,143 @@ hasextract = False Building &RCL; has been built on Linux, FreeBSD, Mac OS X, and Solaris, - most versions after 2005 should be ok, maybe some older ones too - (Solaris 8 used to be ok). If you build on another system, and - need to modify things, - I would - very much welcome patches. + most versions after 2005 should be ok, maybe some older ones too (Solaris 8 used to be + ok). If you build on another system, and need to modify + things, I would very much welcome + patches. - + Configure options: - - - - will disable the code for phonetic matching of search - terms. + + will disable the code for phonetic matching of search + terms. - or - will enable the code for real - time indexing. Inotify support is enabled by default on Linux - systems. - + or + will enable the code for real + time indexing. Inotify support is enabled by default on Linux + systems. - will - enable sending Zeitgeist - events about the visited search results, and needs - the qzeitgeist - package. + will + enable sending Zeitgeist + events about the visited search results, and needs + the qzeitgeist + package. - is available - from version 1.17 to implement the result list with a - Qt QTextBrowser instead of a - WebKit widget if you do not or can't depend on the - latter. + will disable the Qt + graphical interface, which allows building the indexer and the command line search + program in absence of a Qt environment. - Disable the Qt - interface. Will allow building the indexer and the command line - search program in absence of a Qt environment. - + will implement the result list with + a Qt QTextBrowser instead of a WebKit widget if you do + not or can't depend on the latter. - Enable the - use of Qt Webengine (only meaningful if the Qt GUI - is enabled), in place or Qt Webkit. + will enable the use of Qt + Webengine (only meaningful if the Qt GUI is enabled), in place or Qt + Webkit. - is available - from version 1.19 to suppress multithreading inside the - indexing process. You can also use the run-time - configuration to restrict recollindex - to using a single thread, but the compile-time option - may disable a few more unused locks. This only applies - to the use of multithreading for the core index - processing (data input). The &RCL; monitor mode always - uses at least two threads of execution. + will build the recoll GUI program + with debug symbols. This makes it very big (~50MB), which is why it is stripped by + default. - will - avoid building the Python - module. + is available from version 1.19 + to suppress multithreading inside the indexing process. You can also use the run-time + configuration to restrict recollindex to using a single thread, but + the compile-time option may disable a few more unused locks. This only applies to the + use of multithreading for the core index processing (data input). The &RCL; monitor + mode always uses at least two threads of execution. - will - avoid building the Python libchm interface used to index CHM - files. + will + avoid building the Python + module. - will enable - splitting camelCase words. This - is not enabled by default as it has the unfortunate - side-effect of making some phrase searches quite - confusing: ie, "MySQL manual" would be - matched by "MySQL manual" and - "my sql manual" but not - "mysql manual" (only inside phrase - searches). - + will + avoid building the Python libchm interface used to index CHM + files. - Specify - the version of the 'file' command to use (ie: - --with-file-command=/usr/local/bin/file). Can be useful to - enable the gnu version on systems where the native one is - bad. + will enable + splitting camelCase words. This + is not enabled by default as it has the unfortunate + side-effect of making some phrase searches quite + confusing: ie, "MySQL manual" would be + matched by "MySQL manual" and + "my sql manual" but not + "mysql manual" (only inside phrase + searches). + + Specify + the version of the 'file' command to use (ie: + --with-file-command=/usr/local/bin/file). Can be useful to + enable the gnu version on systems where the native one is + bad. - Disable - X11 connection monitoring - inside recollindex. Together with --disable-qtgui, this - allows building recoll without - Qt and - X11. + Disable + X11 connection monitoring + inside recollindex. Together with --disable-qtgui, this + allows building recoll without + Qt and + X11. - - will avoid building the user manual. This avoids having to - install the Docbook XML/XSL files and the TeX toolchain used for - translating the manual to PDF. + + will avoid building the user manual. This avoids having to + install the Docbook XML/XSL files and the TeX toolchain used for + translating the manual to PDF. - Enable - building the recollq command line query - tool (recoll -t without need for Qt). This is done by - default if --disable-qtgui is set but this option - enables forcing it. + Enable + building the recollq command line query + tool (recoll -t without need for Qt). This is done by + default if --disable-qtgui is set but this option + enables forcing it. - (&RCL; versions up - to 1.21 only) will compile - &RCL; with position-dependant code. This is incompatible with - building the KIO or the Python - or PHP extensions, but might - yield very marginally faster code. + (&RCL; versions up to 1.21 only) will + compile &RCL; with position-dependant code. This is incompatible with building the KIO + or the Python or PHP extensions, + but might yield very marginally faster code. - Disable - the automatic installation of systemd unit files. Normally - unit files are installed if the install path can be detected. - - - - Provide - an install path for the systemd system unit template file. - - - - Provide - an install path for the systemd user unit file. - - - Of course the usual - autoconf configure - options, like apply. - - + Disable + the automatic installation of systemd unit files. Normally + unit files are installed if the install path can be detected. - + + + Provide + an install path for the systemd system unit template file. + + + + Provide + an install path for the systemd user unit file. + + + Of course the usual autoconf configure + options, like apply. + - Normal procedure (for source extracted from a tar - distribution): - - cd recoll-xxx - ./configure - make - (practices usual hardship-repelling invocations) - + + Normal procedure, for source extracted from a tar distribution) + + + cd recoll-xxx +./configure [options] +make +(practices usual hardship-repelling invocations) + + + + + + Building from git code + + When building from source cloned from the git repository, + you also need to install autoconf, + automake, and + libtool and you must execute + sh autogen.sh in the top source directory + before running configure. + + - When building from source cloned from the git repository, - you also need to install autoconf, - automake, and - libtool and you must execute - sh autogen.sh in the top source directory - before running configure. diff --git a/src/qtgui/recoll.pro.in b/src/qtgui/recoll.pro.in index 09e3da46..134bc378 100644 --- a/src/qtgui/recoll.pro.in +++ b/src/qtgui/recoll.pro.in @@ -12,8 +12,6 @@ DEFINES += BUILDING_RECOLLGUI @QMAKE_ENABLE_WEBENGINE@ DEFINES += USING_WEBENGINE QMAKE_CXXFLAGS += -std=c++11 -QMAKE_LFLAGS_RELEASE -= -s -QMAKE_STRIP=echo @QMAKE_ENABLE_ZEITGEIST@ QT += dbus @QMAKE_ENABLE_ZEITGEIST@ QMAKE_CXXFLAGS += -DUSE_ZEITGEIST @@ -24,7 +22,9 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport @QMAKE_ENABLE_WEBKIT@ greaterThan(QT_MAJOR_VERSION, 4): QT += webkitwidgets @QMAKE_ENABLE_WEBENGINE@ greaterThan(QT_MAJOR_VERSION, 4): QT += webenginewidgets -CONFIG += qt warn_on thread release +CONFIG += qt warn_on thread release +@QMAKE_ENABLE_GUIDEBUG@ CONFIG += force_debug_info + HEADERS += \ advsearch_w.h \