diff -ur qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/fulltextsearch.pri qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/fulltextsearch.pri --- qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/fulltextsearch.pri 2014-04-10 20:37:12.000000000 +0200 +++ qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/fulltextsearch.pri 2014-10-26 03:33:45.000000000 +0100 @@ -1,125 +1,7 @@ -DEFINES += _BUILD_FOR_QT_ LUCENE_DISABLE_MEMTRACKING -win32:DEFINES += _CRT_SECURE_NO_DEPRECATE _MT - -CLUCENEDIR = ../../../../src/3rdparty/clucene/src/CLucene - -INCLUDEPATH += . .. \ - $$CLUCENEDIR \ - $$CLUCENEDIR/../ \ - $$CLUCENEDIR/analysis \ - $$CLUCENEDIR/analysis/standard \ - $$CLUCENEDIR/config \ - $$CLUCENEDIR/debug \ - $$CLUCENEDIR/document \ - $$CLUCENEDIR/index \ - $$CLUCENEDIR/queryParser \ - $$CLUCENEDIR/search \ - $$CLUCENEDIR/store \ - $$CLUCENEDIR/util - - -SOURCES += $$CLUCENEDIR/StdHeader.cpp \ - $$CLUCENEDIR/analysis/AnalysisHeader.cpp \ - $$CLUCENEDIR/analysis/Analyzers.cpp \ - $$CLUCENEDIR/config/gunichartables.cpp \ - $$CLUCENEDIR/config/repl_lltot.cpp \ - $$CLUCENEDIR/config/repl_tcscasecmp.cpp \ - $$CLUCENEDIR/config/repl_tcslwr.cpp \ - $$CLUCENEDIR/config/repl_tcstod.cpp \ - $$CLUCENEDIR/config/repl_tcstoll.cpp \ - $$CLUCENEDIR/config/repl_tprintf.cpp \ - $$CLUCENEDIR/config/threads.cpp \ - $$CLUCENEDIR/config/utf8.cpp \ - $$CLUCENEDIR/debug/condition.cpp \ - $$CLUCENEDIR/debug/error.cpp \ - $$CLUCENEDIR/debug/memtracking.cpp \ - $$CLUCENEDIR/document/DateField.cpp \ - $$CLUCENEDIR/document/Document.cpp \ - $$CLUCENEDIR/document/Field.cpp \ - $$CLUCENEDIR/index/CompoundFile.cpp \ - $$CLUCENEDIR/index/DocumentWriter.cpp \ - $$CLUCENEDIR/index/FieldInfos.cpp \ - $$CLUCENEDIR/index/FieldsReader.cpp \ - $$CLUCENEDIR/index/FieldsWriter.cpp \ - $$CLUCENEDIR/index/IndexModifier.cpp \ - $$CLUCENEDIR/index/IndexReader.cpp \ - $$CLUCENEDIR/index/IndexWriter.cpp \ - $$CLUCENEDIR/index/MultiReader.cpp \ - $$CLUCENEDIR/index/SegmentInfos.cpp \ - $$CLUCENEDIR/index/SegmentMergeInfo.cpp \ - $$CLUCENEDIR/index/SegmentMergeQueue.cpp \ - $$CLUCENEDIR/index/SegmentMerger.cpp \ - $$CLUCENEDIR/index/SegmentReader.cpp \ - $$CLUCENEDIR/index/SegmentTermDocs.cpp \ - $$CLUCENEDIR/index/SegmentTermEnum.cpp \ - $$CLUCENEDIR/index/SegmentTermPositions.cpp \ - $$CLUCENEDIR/index/SegmentTermVector.cpp \ - $$CLUCENEDIR/index/Term.cpp \ - $$CLUCENEDIR/index/TermInfo.cpp \ - $$CLUCENEDIR/index/TermInfosReader.cpp \ - $$CLUCENEDIR/index/TermInfosWriter.cpp \ - $$CLUCENEDIR/index/TermVectorReader.cpp \ - $$CLUCENEDIR/index/TermVectorWriter.cpp \ - $$CLUCENEDIR/queryParser/Lexer.cpp \ - $$CLUCENEDIR/queryParser/MultiFieldQueryParser.cpp \ - $$CLUCENEDIR/queryParser/QueryParser.cpp \ - $$CLUCENEDIR/queryParser/QueryParserBase.cpp \ - $$CLUCENEDIR/queryParser/QueryToken.cpp \ - $$CLUCENEDIR/queryParser/TokenList.cpp \ - $$CLUCENEDIR/search/BooleanQuery.cpp \ - $$CLUCENEDIR/search/BooleanScorer.cpp \ - $$CLUCENEDIR/search/CachingWrapperFilter.cpp \ - $$CLUCENEDIR/search/ChainedFilter.cpp \ - $$CLUCENEDIR/search/ConjunctionScorer.cpp \ - $$CLUCENEDIR/search/DateFilter.cpp \ - $$CLUCENEDIR/search/ExactPhraseScorer.cpp \ - $$CLUCENEDIR/search/Explanation.cpp \ - $$CLUCENEDIR/search/FieldCache.cpp \ - $$CLUCENEDIR/search/FieldCacheImpl.cpp \ - $$CLUCENEDIR/search/FieldDocSortedHitQueue.cpp \ - $$CLUCENEDIR/search/FieldSortedHitQueue.cpp \ - $$CLUCENEDIR/search/FilteredTermEnum.cpp \ - $$CLUCENEDIR/search/FuzzyQuery.cpp \ - $$CLUCENEDIR/search/HitQueue.cpp \ - $$CLUCENEDIR/search/Hits.cpp \ - $$CLUCENEDIR/search/IndexSearcher.cpp \ - $$CLUCENEDIR/search/MultiSearcher.cpp \ - $$CLUCENEDIR/search/MultiTermQuery.cpp \ - $$CLUCENEDIR/search/PhrasePositions.cpp \ - $$CLUCENEDIR/search/PhraseQuery.cpp \ - $$CLUCENEDIR/search/PhraseScorer.cpp \ - $$CLUCENEDIR/search/PrefixQuery.cpp \ - $$CLUCENEDIR/search/QueryFilter.cpp \ - $$CLUCENEDIR/search/RangeFilter.cpp \ - $$CLUCENEDIR/search/RangeQuery.cpp \ - $$CLUCENEDIR/search/SearchHeader.cpp \ - $$CLUCENEDIR/search/Similarity.cpp \ - $$CLUCENEDIR/search/SloppyPhraseScorer.cpp \ - $$CLUCENEDIR/search/Sort.cpp \ - $$CLUCENEDIR/search/TermQuery.cpp \ - $$CLUCENEDIR/search/TermScorer.cpp \ - $$CLUCENEDIR/search/WildcardQuery.cpp \ - $$CLUCENEDIR/search/WildcardTermEnum.cpp \ - $$CLUCENEDIR/store/FSDirectory.cpp \ - $$CLUCENEDIR/store/IndexInput.cpp \ - $$CLUCENEDIR/store/IndexOutput.cpp \ - $$CLUCENEDIR/store/Lock.cpp \ - $$CLUCENEDIR/store/MMapInput.cpp \ - $$CLUCENEDIR/store/RAMDirectory.cpp \ - $$CLUCENEDIR/store/TransactionalRAMDirectory.cpp \ - $$CLUCENEDIR/util/BitSet.cpp \ - $$CLUCENEDIR/util/Equators.cpp \ - $$CLUCENEDIR/util/FastCharStream.cpp \ - $$CLUCENEDIR/util/fileinputstream.cpp \ - $$CLUCENEDIR/util/Misc.cpp \ - $$CLUCENEDIR/util/Reader.cpp \ - $$CLUCENEDIR/util/StringBuffer.cpp \ - $$CLUCENEDIR/util/StringIntern.cpp \ - $$CLUCENEDIR/util/ThreadLocal.cpp \ - $$CLUCENEDIR/analysis/standard/StandardAnalyzer.cpp \ - $$CLUCENEDIR/analysis/standard/StandardFilter.cpp \ - $$CLUCENEDIR/analysis/standard/StandardTokenizer.cpp +INCLUDEPATH += /usr/include/clucene09 $$[QT_INSTALL_LIBS]/clucene09 $$[QT_INSTALL_LIBS] +LIBS += -L$$[QT_INSTALL_LIBS]/clucene09 -lclucene +#DEFINES += LUCENE_ENABLE_REFCOUNT (must be set at CLucene build time!) #Header files HEADERS += qclucene_global_p.h \ diff -ur qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qclucene-config_p.h qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qclucene-config_p.h --- qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qclucene-config_p.h 2014-04-10 20:37:12.000000000 +0200 +++ qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qclucene-config_p.h 2014-10-26 02:28:54.000000000 +0100 @@ -15,6 +15,8 @@ ** ****************************************************************************/ +#error This header must not be included when building against system CLucene. + #ifndef QCLUCENE_CONFIG_P_H #define QCLUCENE_CONFIG_P_H diff -ur qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qclucene_global_p.h qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qclucene_global_p.h --- qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qclucene_global_p.h 2014-04-10 20:37:12.000000000 +0200 +++ qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qclucene_global_p.h 2014-10-26 02:31:54.000000000 +0100 @@ -29,20 +29,10 @@ // We mean it. // -#if !defined(_MSC_VER) -# include "qclucene-config_p.h" -#endif - #include #include -#if !defined(_MSC_VER) && !defined(__MINGW32__) && defined(_CL_HAVE_WCHAR_H) && defined(_CL_HAVE_WCHAR_T) -# if !defined(TCHAR) -# define TCHAR wchar_t -# endif -#else -# include -#endif +#include QT_BEGIN_HEADER @@ -56,52 +46,6 @@ # define QHELP_EXPORT Q_DECL_IMPORT #endif -// -// W A R N I N G -// ------------- -// -// adjustments here, need to be done in -// QTDIR/src/3rdparty/clucene/src/CLucene/StdHeader.h as well -// -#if defined(_LUCENE_DONTIMPLEMENT_NS_MACROS) - -#elif !defined(DISABLE_NAMESPACE) -# ifdef QT_NAMESPACE -# define CL_NS_DEF(sub) namespace QT_NAMESPACE { namespace lucene{ namespace sub{ -# define CL_NS_DEF2(sub,sub2) namespace QT_NAMESPACE { namespace lucene{ namespace sub{ namespace sub2 { - -# define CL_NS_END }}} -# define CL_NS_END2 }}}} - -# define CL_NS_USE(sub) using namespace QT_NAMESPACE::lucene::sub; -# define CL_NS_USE2(sub,sub2) using namespace QT_NAMESPACE::lucene::sub::sub2; - -# define CL_NS(sub) QT_NAMESPACE::lucene::sub -# define CL_NS2(sub,sub2) QT_NAMESPACE::lucene::sub::sub2 -# else -# define CL_NS_DEF(sub) namespace lucene{ namespace sub{ -# define CL_NS_DEF2(sub,sub2) namespace lucene{ namespace sub{ namespace sub2 { - -# define CL_NS_END }} -# define CL_NS_END2 }}} - -# define CL_NS_USE(sub) using namespace lucene::sub; -# define CL_NS_USE2(sub,sub2) using namespace lucene::sub::sub2; - -# define CL_NS(sub) lucene::sub -# define CL_NS2(sub,sub2) lucene::sub::sub2 -# endif -#else -# define CL_NS_DEF(sub) -# define CL_NS_DEF2(sub, sub2) -# define CL_NS_END -# define CL_NS_END2 -# define CL_NS_USE(sub) -# define CL_NS_USE2(sub,sub2) -# define CL_NS(sub) -# define CL_NS2(sub,sub2) -#endif - namespace { TCHAR* QStringToTChar(const QString &str) { diff -ur qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qindexreader.cpp qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qindexreader.cpp --- qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qindexreader.cpp 2014-04-10 20:37:12.000000000 +0200 +++ qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qindexreader.cpp 2014-10-26 02:48:02.000000000 +0100 @@ -18,6 +18,8 @@ #include "qindexreader_p.h" #include "qclucene_global_p.h" +#include + #include #include @@ -59,13 +61,13 @@ { using namespace lucene::index; - return IndexReader::isLuceneFile(filename); + return IndexReader::isLuceneFile(filename.toLocal8Bit().constData()); } bool QCLuceneIndexReader::indexExists(const QString &directory) { using namespace lucene::index; - return IndexReader::indexExists(directory); + return IndexReader::indexExists(directory.toLocal8Bit().constData()); } QCLuceneIndexReader QCLuceneIndexReader::open(const QString &path) @@ -73,7 +75,7 @@ using namespace lucene::index; QCLuceneIndexReader indexReader; - indexReader.d->reader = IndexReader::open(path); + indexReader.d->reader = IndexReader::open(path.toLocal8Bit().constData()); return indexReader; } @@ -81,25 +83,29 @@ void QCLuceneIndexReader::unlock(const QString &path) { using namespace lucene::index; - IndexReader::unlock(path); + IndexReader::unlock(path.toLocal8Bit().constData()); } bool QCLuceneIndexReader::isLocked(const QString &directory) { + // The system CLucene fails here if the directory does not exist yet, unlike + // the bundled one. Work around that. + QDir::current().mkpath(directory); + using namespace lucene::index; - return IndexReader::isLocked(directory); + return IndexReader::isLocked(directory.toLocal8Bit().constData()); } quint64 QCLuceneIndexReader::lastModified(const QString &directory) { using namespace lucene::index; - return quint64(IndexReader::lastModified(directory)); + return quint64(IndexReader::lastModified(directory.toLocal8Bit().constData())); } qint64 QCLuceneIndexReader::getCurrentVersion(const QString &directory) { using namespace lucene::index; - return qint64(IndexReader::getCurrentVersion(directory)); + return qint64(IndexReader::getCurrentVersion(directory.toLocal8Bit().constData())); } void QCLuceneIndexReader::close() @@ -155,7 +161,7 @@ void QCLuceneIndexReader::setNorm(qint32 doc, const QString &field, qreal value) { TCHAR *fieldName = QStringToTChar(field); - d->reader->setNorm(int32_t(doc), fieldName, qreal(value)); + d->reader->setNorm(int32_t(doc), fieldName, (float_t)value); delete [] fieldName; } diff -ur qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qindexwriter.cpp qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qindexwriter.cpp --- qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qindexwriter.cpp 2014-04-10 20:37:12.000000000 +0200 +++ qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qindexwriter.cpp 2014-10-26 02:48:27.000000000 +0100 @@ -18,6 +18,8 @@ #include "qindexwriter_p.h" #include "qindexreader_p.h" +#include + #include #include @@ -50,7 +52,12 @@ : d(new QCLuceneIndexWriterPrivate()) , analyzer(analyzer) { - d->writer = new lucene::index::IndexWriter(path, + // The system CLucene cannot create directories recursively, so do it here. + // Ignore failure: If it failed, we will get an error from CLucene anyway. + if (create) + QDir::current().mkpath(path); + + d->writer = new lucene::index::IndexWriter(path.toLocal8Bit().constData(), analyzer.d->analyzer, create, closeDir); } diff -ur qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qsearchable.cpp qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qsearchable.cpp --- qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/fulltextsearch/qsearchable.cpp 2014-04-10 20:37:12.000000000 +0200 +++ qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/fulltextsearch/qsearchable.cpp 2014-10-26 02:48:44.000000000 +0100 @@ -95,7 +95,7 @@ : QCLuceneSearcher() { lucene::search::IndexSearcher *searcher = - new lucene::search::IndexSearcher(path); + new lucene::search::IndexSearcher(path.toLocal8Bit().constData()); reader.d->reader = searcher->getReader(); reader.d->deleteCLuceneIndexReader = false; diff -ur qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/lib.pro qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/lib.pro --- qt-everywhere-opensource-src-4.8.6/tools/assistant/lib/lib.pro 2014-04-10 20:37:12.000000000 +0200 +++ qt-everywhere-opensource-src-4.8.6-system-clucene/tools/assistant/lib/lib.pro 2014-10-26 02:27:55.000000000 +0100 @@ -43,6 +43,7 @@ qhelp_global.cpp # access to clucene +INCLUDEPATH += /usr/include/clucene09 $$[QT_INSTALL_LIBS]/clucene09 $$[QT_INSTALL_LIBS] SOURCES += qhelpsearchindexwriter_clucene.cpp \ qhelpsearchindexreader_clucene.cpp HEADERS += qhelpenginecore.h \