This is an automated email from the ASF dual-hosted git repository. adonisling pushed a commit to branch clucene in repository https://gitbox.apache.org/repos/asf/doris-thirdparty.git
The following commit(s) were added to refs/heads/clucene by this push: new bbfbc15 [fix](clucene) Fix compilation bugs (#30) bbfbc15 is described below commit bbfbc15f299899152e6ebf25b3225aec392b78ca Author: airborne12 <airborn...@gmail.com> AuthorDate: Thu Jan 12 14:40:21 2023 +0800 [fix](clucene) Fix compilation bugs (#30) --- CMakeLists.txt | 8 +- cmake/TurboPFOR.cmake | 2 +- .../CLucene/analysis/jieba/ChineseTokenizer.cpp | 12 +- src/core/CMakeLists.txt | 517 +++++++++++---------- src/core/vp4.h | 355 -------------- src/shared/CMakeLists.txt | 428 +++++++++-------- 6 files changed, 478 insertions(+), 844 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e80332..c40fb41 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -117,11 +117,11 @@ OPTION(ENABLE_COMPILE_TESTS ${ENABLE_COMPILE_TESTS_VALUE}) if (__COMPILER_CLANG) - SET(CXX_FLAGS_ASAN "${CXX_GCC_FLAGS} -O0 -fsanitize=address -DADDRESS_SANITIZER") - SET(CXX_FLAGS_LSAN "${CXX_GCC_FLAGS} -O0 -fsanitize=leak -DLEAK_SANITIZER") + SET(CXX_FLAGS_ASAN "${CXX_GCC_FLAGS} -O0 -g -fsanitize=address -DADDRESS_SANITIZER") + SET(CXX_FLAGS_LSAN "${CXX_GCC_FLAGS} -O0 -g -fsanitize=leak -DLEAK_SANITIZER") else () - SET(CXX_FLAGS_ASAN "${CXX_GCC_FLAGS} -O0 -fsanitize=address -DADDRESS_SANITIZER -static-libasan") - SET(CXX_FLAGS_LSAN "${CXX_GCC_FLAGS} -O0 -fsanitize=leak -DLEAK_SANITIZER -static-liblsan") + SET(CXX_FLAGS_ASAN "${CXX_GCC_FLAGS} -O0 -g -fsanitize=address -DADDRESS_SANITIZER -static-libasan") + SET(CXX_FLAGS_LSAN "${CXX_GCC_FLAGS} -O0 -g -fsanitize=leak -DLEAK_SANITIZER -static-liblsan") endif () # Set compile flags based on the build type. diff --git a/cmake/TurboPFOR.cmake b/cmake/TurboPFOR.cmake index d84daff..b2e0bea 100644 --- a/cmake/TurboPFOR.cmake +++ b/cmake/TurboPFOR.cmake @@ -1,5 +1,5 @@ PROJECT(turbo-pfor) -set(PFOR_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/ext/for) +set(PFOR_SOURCE_DIR ${CMAKE_SOURCE_DIR}/src/ext/for) add_custom_target(build_ic ALL COMMAND make USE_AVX2=${USE_AVX2} libic.a -j 8 diff --git a/src/contribs-lib/CLucene/analysis/jieba/ChineseTokenizer.cpp b/src/contribs-lib/CLucene/analysis/jieba/ChineseTokenizer.cpp index 410c514..35aea7b 100644 --- a/src/contribs-lib/CLucene/analysis/jieba/ChineseTokenizer.cpp +++ b/src/contribs-lib/CLucene/analysis/jieba/ChineseTokenizer.cpp @@ -1,9 +1,7 @@ #include "CLucene/_ApiHeader.h" #include "ChineseTokenizer.h" #include "CLucene/util/CLStreams.h" -#include <filesystem> #include <memory> -namespace fs = std::filesystem; CL_NS_DEF2(analysis,jieba) CL_NS_USE(analysis) @@ -17,11 +15,11 @@ ChineseTokenizer::ChineseTokenizer(lucene::util::Reader *reader) : Tokenizer(rea void ChineseTokenizer::init(const std::string &dictPath) { if(cppjieba == nullptr) { cppjieba = std::make_unique<cppjieba::Jieba>( - dictPath + "/" + "dict/jieba.dict.utf8", - dictPath + "/" + "dict/hmm_model.utf8", - dictPath + "/" + "dict/user.dict.utf8", - dictPath + "/" + "dict/idf.utf8", - dictPath + "/" + "dict/stop_words.utf8"); + dictPath + "/" + "jieba.dict.utf8", + dictPath + "/" + "hmm_model.utf8", + dictPath + "/" + "user.dict.utf8", + dictPath + "/" + "idf.utf8", + dictPath + "/" + "stop_words.utf8"); } } diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index e2a8dab..6a62fc6 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -2,7 +2,7 @@ PROJECT(clucene-core) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" "${clucene_SOURCE_DIR}/cmake" "${clucene-shared_SOURCE_DIR}/cmake") #define command line options -INCLUDE (DefineOptions) +INCLUDE(DefineOptions) DEFINE_OPTIONS(EXTRA_OPTIONS EXTRA_LIBS) ADD_DEFINITIONS(${EXTRA_OPTIONS} -DMAKE_CLUCENE_CORE_LIB) @@ -24,249 +24,248 @@ SOURCE_GROUP("store" ./CLucene/store/*) SOURCE_GROUP("util" ./CLucene/util/*) SET(clucene_core_Files - ./CLucene/StdHeader.cpp - ./CLucene/debug/error.cpp - ./CLucene/util/ThreadLocal.cpp - ./CLucene/util/Reader.cpp - ./CLucene/util/Equators.cpp - ./CLucene/util/FastCharStream.cpp - ./CLucene/util/MD5Digester.cpp - ./CLucene/util/StringIntern.cpp - ./CLucene/util/BitSet.cpp - ./CLucene/util/bkd/bkd_writer.cpp - ./CLucene/util/bkd/bkd_reader.cpp - ./CLucene/util/bkd/index_tree.cpp - ./CLucene/util/bkd/packed_index_tree.cpp - ./CLucene/util/bkd/legacy_index_tree.cpp - ./CLucene/util/bkd/heap_point_writer.cpp - ./CLucene/util/bkd/heap_point_reader.cpp - ./CLucene/util/bkd/point_reader.cpp - ./CLucene/util/bkd/docids_writer.cpp - ./CLucene/util/bkd/bkd_msb_radix_sorter.cpp - ./CLucene/util/croaring/roaring.c - ./CLucene/util/croaring/roaring.h - ./CLucene/util/croaring/roaring.hh - ./CLucene/util/BitUtil.cpp - ./CLucene/util/BytesRef.cpp - ./CLucene/util/BytesRefBuilder.cpp - ./CLucene/util/CodecUtil.cpp - ./CLucene/util/LongBitSet.cpp - ./CLucene/util/IntroSorter.cpp - ./CLucene/util/Sorter.cpp - ./CLucene/util/MSBRadixSorter.cpp - ./CLucene/util/FixedBitSet.cpp - ./CLucene/util/FutureArrays.cpp - ./CLucene/util/NumericUtils.cpp - ./CLucene/util/stringUtil.cpp - ./CLucene/queryParser/FastCharStream.cpp - ./CLucene/queryParser/MultiFieldQueryParser.cpp - ./CLucene/queryParser/QueryParser.cpp - ./CLucene/queryParser/QueryParserTokenManager.cpp - ./CLucene/queryParser/QueryToken.cpp - ./CLucene/queryParser/legacy/Lexer.cpp - ./CLucene/queryParser/legacy/MultiFieldQueryParser.cpp - ./CLucene/queryParser/legacy/QueryParser.cpp - ./CLucene/queryParser/legacy/QueryParserBase.cpp - ./CLucene/queryParser/legacy/QueryToken.cpp - ./CLucene/queryParser/legacy/TokenList.cpp - ./CLucene/analysis/standard/StandardAnalyzer.cpp - ./CLucene/analysis/standard/StandardFilter.cpp - ./CLucene/analysis/standard/StandardTokenizer.cpp - ./CLucene/analysis/Analyzers.cpp - ./CLucene/analysis/AnalysisHeader.cpp - ./CLucene/store/MMapInput.cpp - ./CLucene/store/IndexInput.cpp - ./CLucene/store/ByteArrayDataInput.cpp - ./CLucene/store/Lock.cpp - ./CLucene/store/LockFactory.cpp - ./CLucene/store/IndexOutput.cpp - ./CLucene/store/Directory.cpp - ./CLucene/store/FSDirectory.cpp - ./CLucene/store/RAMDirectory.cpp - ./CLucene/document/Document.cpp - ./CLucene/document/DateField.cpp - ./CLucene/document/DateTools.cpp - ./CLucene/document/Field.cpp - ./CLucene/document/FieldSelector.cpp - ./CLucene/document/NumberTools.cpp - ./CLucene/index/IndexFileNames.cpp - ./CLucene/index/IndexFileNameFilter.cpp - ./CLucene/index/IndexDeletionPolicy.cpp - ./CLucene/index/SegmentMergeInfo.cpp - ./CLucene/index/SegmentInfos.cpp - ./CLucene/index/MergeScheduler.cpp - ./CLucene/index/SegmentTermDocs.cpp - ./CLucene/index/FieldsWriter.cpp - ./CLucene/index/TermInfosWriter.cpp - ./CLucene/index/Term.cpp - ./CLucene/index/Terms.cpp - ./CLucene/index/MergePolicy.cpp - ./CLucene/index/DocumentsWriter.cpp - ./CLucene/index/SDocumentWriter.cpp - ./CLucene/index/SDocumentWriter.h - ./CLucene/index/DocumentsWriterThreadState.cpp - ./CLucene/index/SegmentTermVector.cpp - ./CLucene/index/TermVectorReader.cpp - ./CLucene/index/FieldInfos.cpp - ./CLucene/index/CompoundFile.cpp - ./CLucene/index/SkipListReader.cpp - ./CLucene/index/SkipListWriter.cpp - ./CLucene/index/IndexFileDeleter.cpp - ./CLucene/index/SegmentReader.cpp - ./CLucene/index/DirectoryIndexReader.cpp - ./CLucene/index/TermVectorWriter.cpp - ./CLucene/index/IndexReader.cpp - ./CLucene/index/SegmentTermPositions.cpp - ./CLucene/index/SegmentMerger.cpp - ./CLucene/index/IndexWriter.cpp - ./CLucene/index/MultiReader.cpp - ./CLucene/index/MultiSegmentReader.cpp - ./CLucene/index/Payload.cpp - ./CLucene/index/SegmentTermEnum.cpp - ./CLucene/index/TermInfo.cpp - ./CLucene/index/IndexModifier.cpp - ./CLucene/index/SegmentMergeQueue.cpp - ./CLucene/index/FieldsReader.cpp - ./CLucene/index/TermInfosReader.cpp - ./CLucene/index/MultipleTermPositions.cpp - ./CLucene/search/Compare.cpp - ./CLucene/search/Scorer.cpp - ./CLucene/search/ScorerDocQueue.cpp - ./CLucene/search/PhraseScorer.cpp - ./CLucene/search/SloppyPhraseScorer.cpp - ./CLucene/search/DisjunctionSumScorer.cpp - ./CLucene/search/ConjunctionScorer.cpp - ./CLucene/search/PhraseQuery.cpp - ./CLucene/search/PrefixQuery.cpp - ./CLucene/search/ExactPhraseScorer.cpp - ./CLucene/search/TermScorer.cpp - ./CLucene/search/Similarity.cpp - ./CLucene/search/BooleanScorer.cpp - ./CLucene/search/BooleanScorer2.cpp - ./CLucene/search/HitQueue.cpp - ./CLucene/search/FieldCacheImpl.cpp - ./CLucene/search/ChainedFilter.cpp - ./CLucene/search/RangeFilter.cpp - ./CLucene/search/CachingWrapperFilter.cpp - ./CLucene/search/QueryFilter.cpp - ./CLucene/search/TermQuery.cpp - ./CLucene/search/FuzzyQuery.cpp - ./CLucene/search/SearchHeader.cpp - ./CLucene/search/RangeQuery.cpp - ./CLucene/search/IndexSearcher.cpp - ./CLucene/search/Sort.cpp - ./CLucene/search/PhrasePositions.cpp - ./CLucene/search/FieldDocSortedHitQueue.cpp - ./CLucene/search/WildcardTermEnum.cpp - ./CLucene/search/MultiSearcher.cpp - ./CLucene/search/Hits.cpp - ./CLucene/search/MultiTermQuery.cpp - ./CLucene/search/FilteredTermEnum.cpp - ./CLucene/search/FieldSortedHitQueue.cpp - ./CLucene/search/WildcardQuery.cpp - ./CLucene/search/Explanation.cpp - ./CLucene/search/BooleanQuery.cpp - ./CLucene/search/FieldCache.cpp - ./CLucene/search/DateFilter.cpp - ./CLucene/search/MatchAllDocsQuery.cpp - ./CLucene/search/MultiPhraseQuery.cpp - ./CLucene/search/ConstantScoreQuery.cpp - ./CLucene/search/CachingSpanFilter.cpp - ./CLucene/search/CachingSpanFilter.h - ./CLucene/search/SpanFilter.h - ./CLucene/search/SpanFilterResult.h - ./CLucene/search/SpanQueryFilter.cpp - ./CLucene/search/SpanQueryFilter.h - ./CLucene/search/spans/_EmptySpans.h - ./CLucene/search/spans/_NearSpansOrdered.h - ./CLucene/search/spans/_NearSpansUnordered.h - ./CLucene/search/spans/_TermSpans.h - ./CLucene/search/spans/NearSpansOrdered.cpp - ./CLucene/search/spans/NearSpansUnordered.cpp - ./CLucene/search/spans/SpanFirstQuery.cpp - ./CLucene/search/spans/SpanFirstQuery.h - ./CLucene/search/spans/SpanNearQuery.cpp - ./CLucene/search/spans/SpanNearQuery.h - ./CLucene/search/spans/SpanNotQuery.cpp - ./CLucene/search/spans/SpanNotQuery.h - ./CLucene/search/spans/SpanOrQuery.cpp - ./CLucene/search/spans/SpanOrQuery.h - ./CLucene/search/spans/SpanQuery.h - ./CLucene/search/spans/Spans.h - ./CLucene/search/spans/SpanScorer.cpp - ./CLucene/search/spans/SpanScorer.h - ./CLucene/search/spans/SpanTermQuery.cpp - ./CLucene/search/spans/SpanTermQuery.h - ./CLucene/search/spans/SpanWeight.cpp - ./CLucene/search/spans/SpanWeight.h - ./CLucene/search/spans/TermSpans.cpp -) + ./CLucene/StdHeader.cpp + ./CLucene/debug/error.cpp + ./CLucene/util/ThreadLocal.cpp + ./CLucene/util/Reader.cpp + ./CLucene/util/Equators.cpp + ./CLucene/util/FastCharStream.cpp + ./CLucene/util/MD5Digester.cpp + ./CLucene/util/StringIntern.cpp + ./CLucene/util/BitSet.cpp + ./CLucene/util/bkd/bkd_writer.cpp + ./CLucene/util/bkd/bkd_reader.cpp + ./CLucene/util/bkd/index_tree.cpp + ./CLucene/util/bkd/packed_index_tree.cpp + ./CLucene/util/bkd/legacy_index_tree.cpp + ./CLucene/util/bkd/heap_point_writer.cpp + ./CLucene/util/bkd/heap_point_reader.cpp + ./CLucene/util/bkd/point_reader.cpp + ./CLucene/util/bkd/docids_writer.cpp + ./CLucene/util/bkd/bkd_msb_radix_sorter.cpp + ./CLucene/util/croaring/roaring.c + ./CLucene/util/croaring/roaring.h + ./CLucene/util/croaring/roaring.hh + ./CLucene/util/BitUtil.cpp + ./CLucene/util/BytesRef.cpp + ./CLucene/util/BytesRefBuilder.cpp + ./CLucene/util/CodecUtil.cpp + ./CLucene/util/LongBitSet.cpp + ./CLucene/util/IntroSorter.cpp + ./CLucene/util/Sorter.cpp + ./CLucene/util/MSBRadixSorter.cpp + ./CLucene/util/FixedBitSet.cpp + ./CLucene/util/FutureArrays.cpp + ./CLucene/util/NumericUtils.cpp + ./CLucene/util/stringUtil.cpp + ./CLucene/queryParser/FastCharStream.cpp + ./CLucene/queryParser/MultiFieldQueryParser.cpp + ./CLucene/queryParser/QueryParser.cpp + ./CLucene/queryParser/QueryParserTokenManager.cpp + ./CLucene/queryParser/QueryToken.cpp + ./CLucene/queryParser/legacy/Lexer.cpp + ./CLucene/queryParser/legacy/MultiFieldQueryParser.cpp + ./CLucene/queryParser/legacy/QueryParser.cpp + ./CLucene/queryParser/legacy/QueryParserBase.cpp + ./CLucene/queryParser/legacy/QueryToken.cpp + ./CLucene/queryParser/legacy/TokenList.cpp + ./CLucene/analysis/standard/StandardAnalyzer.cpp + ./CLucene/analysis/standard/StandardFilter.cpp + ./CLucene/analysis/standard/StandardTokenizer.cpp + ./CLucene/analysis/Analyzers.cpp + ./CLucene/analysis/AnalysisHeader.cpp + ./CLucene/store/MMapInput.cpp + ./CLucene/store/IndexInput.cpp + ./CLucene/store/ByteArrayDataInput.cpp + ./CLucene/store/Lock.cpp + ./CLucene/store/LockFactory.cpp + ./CLucene/store/IndexOutput.cpp + ./CLucene/store/Directory.cpp + ./CLucene/store/FSDirectory.cpp + ./CLucene/store/RAMDirectory.cpp + ./CLucene/document/Document.cpp + ./CLucene/document/DateField.cpp + ./CLucene/document/DateTools.cpp + ./CLucene/document/Field.cpp + ./CLucene/document/FieldSelector.cpp + ./CLucene/document/NumberTools.cpp + ./CLucene/index/IndexFileNames.cpp + ./CLucene/index/IndexFileNameFilter.cpp + ./CLucene/index/IndexDeletionPolicy.cpp + ./CLucene/index/SegmentMergeInfo.cpp + ./CLucene/index/SegmentInfos.cpp + ./CLucene/index/MergeScheduler.cpp + ./CLucene/index/SegmentTermDocs.cpp + ./CLucene/index/FieldsWriter.cpp + ./CLucene/index/TermInfosWriter.cpp + ./CLucene/index/Term.cpp + ./CLucene/index/Terms.cpp + ./CLucene/index/MergePolicy.cpp + ./CLucene/index/DocumentsWriter.cpp + ./CLucene/index/SDocumentWriter.cpp + ./CLucene/index/SDocumentWriter.h + ./CLucene/index/DocumentsWriterThreadState.cpp + ./CLucene/index/SegmentTermVector.cpp + ./CLucene/index/TermVectorReader.cpp + ./CLucene/index/FieldInfos.cpp + ./CLucene/index/CompoundFile.cpp + ./CLucene/index/SkipListReader.cpp + ./CLucene/index/SkipListWriter.cpp + ./CLucene/index/IndexFileDeleter.cpp + ./CLucene/index/SegmentReader.cpp + ./CLucene/index/DirectoryIndexReader.cpp + ./CLucene/index/TermVectorWriter.cpp + ./CLucene/index/IndexReader.cpp + ./CLucene/index/SegmentTermPositions.cpp + ./CLucene/index/SegmentMerger.cpp + ./CLucene/index/IndexWriter.cpp + ./CLucene/index/MultiReader.cpp + ./CLucene/index/MultiSegmentReader.cpp + ./CLucene/index/Payload.cpp + ./CLucene/index/SegmentTermEnum.cpp + ./CLucene/index/TermInfo.cpp + ./CLucene/index/IndexModifier.cpp + ./CLucene/index/SegmentMergeQueue.cpp + ./CLucene/index/FieldsReader.cpp + ./CLucene/index/TermInfosReader.cpp + ./CLucene/index/MultipleTermPositions.cpp + ./CLucene/search/Compare.cpp + ./CLucene/search/Scorer.cpp + ./CLucene/search/ScorerDocQueue.cpp + ./CLucene/search/PhraseScorer.cpp + ./CLucene/search/SloppyPhraseScorer.cpp + ./CLucene/search/DisjunctionSumScorer.cpp + ./CLucene/search/ConjunctionScorer.cpp + ./CLucene/search/PhraseQuery.cpp + ./CLucene/search/PrefixQuery.cpp + ./CLucene/search/ExactPhraseScorer.cpp + ./CLucene/search/TermScorer.cpp + ./CLucene/search/Similarity.cpp + ./CLucene/search/BooleanScorer.cpp + ./CLucene/search/BooleanScorer2.cpp + ./CLucene/search/HitQueue.cpp + ./CLucene/search/FieldCacheImpl.cpp + ./CLucene/search/ChainedFilter.cpp + ./CLucene/search/RangeFilter.cpp + ./CLucene/search/CachingWrapperFilter.cpp + ./CLucene/search/QueryFilter.cpp + ./CLucene/search/TermQuery.cpp + ./CLucene/search/FuzzyQuery.cpp + ./CLucene/search/SearchHeader.cpp + ./CLucene/search/RangeQuery.cpp + ./CLucene/search/IndexSearcher.cpp + ./CLucene/search/Sort.cpp + ./CLucene/search/PhrasePositions.cpp + ./CLucene/search/FieldDocSortedHitQueue.cpp + ./CLucene/search/WildcardTermEnum.cpp + ./CLucene/search/MultiSearcher.cpp + ./CLucene/search/Hits.cpp + ./CLucene/search/MultiTermQuery.cpp + ./CLucene/search/FilteredTermEnum.cpp + ./CLucene/search/FieldSortedHitQueue.cpp + ./CLucene/search/WildcardQuery.cpp + ./CLucene/search/Explanation.cpp + ./CLucene/search/BooleanQuery.cpp + ./CLucene/search/FieldCache.cpp + ./CLucene/search/DateFilter.cpp + ./CLucene/search/MatchAllDocsQuery.cpp + ./CLucene/search/MultiPhraseQuery.cpp + ./CLucene/search/ConstantScoreQuery.cpp + ./CLucene/search/CachingSpanFilter.cpp + ./CLucene/search/CachingSpanFilter.h + ./CLucene/search/SpanFilter.h + ./CLucene/search/SpanFilterResult.h + ./CLucene/search/SpanQueryFilter.cpp + ./CLucene/search/SpanQueryFilter.h + ./CLucene/search/spans/_EmptySpans.h + ./CLucene/search/spans/_NearSpansOrdered.h + ./CLucene/search/spans/_NearSpansUnordered.h + ./CLucene/search/spans/_TermSpans.h + ./CLucene/search/spans/NearSpansOrdered.cpp + ./CLucene/search/spans/NearSpansUnordered.cpp + ./CLucene/search/spans/SpanFirstQuery.cpp + ./CLucene/search/spans/SpanFirstQuery.h + ./CLucene/search/spans/SpanNearQuery.cpp + ./CLucene/search/spans/SpanNearQuery.h + ./CLucene/search/spans/SpanNotQuery.cpp + ./CLucene/search/spans/SpanNotQuery.h + ./CLucene/search/spans/SpanOrQuery.cpp + ./CLucene/search/spans/SpanOrQuery.h + ./CLucene/search/spans/SpanQuery.h + ./CLucene/search/spans/Spans.h + ./CLucene/search/spans/SpanScorer.cpp + ./CLucene/search/spans/SpanScorer.h + ./CLucene/search/spans/SpanTermQuery.cpp + ./CLucene/search/spans/SpanTermQuery.h + ./CLucene/search/spans/SpanWeight.cpp + ./CLucene/search/spans/SpanWeight.h + ./CLucene/search/spans/TermSpans.cpp + ) #if USE_SHARED_OBJECT_FILES then we link directly to the object files (means rebuilding them for the core) -IF ( USE_SHARED_OBJECT_FILES ) - GET_SHARED_FILES(clucene_shared_Files) -ENDIF ( USE_SHARED_OBJECT_FILES ) +IF (USE_SHARED_OBJECT_FILES) + GET_SHARED_FILES(clucene_shared_Files) +ENDIF (USE_SHARED_OBJECT_FILES) #find our headers -file(GLOB_RECURSE HEADERS ${clucene-core_SOURCE_DIR}/*.h ${clucene-ext_SOURCE_DIR}/for/vp4.h) +file(GLOB_RECURSE HEADERS ${clucene-core_SOURCE_DIR}/*.h ) #create the libraries -INCLUDE_DIRECTORIES( ${clucene_SOURCE_DIR}/src/core ) -add_library(clucene-core SHARED - ${clucene_core_Files} ${clucene_shared_Files} ${HEADERS} -) - -#set properties on the libraries -SET_TARGET_PROPERTIES(clucene-core PROPERTIES - VERSION ${CLUCENE_VERSION} - SOVERSION ${CLUCENE_SOVERSION} - COMPILE_DEFINITIONS_DEBUG _DEBUG -) - -#link the clucene-core library against the releavent clucene-shared library (if we aren't using the object files) -IF ( NOT USE_SHARED_OBJECT_FILES ) +INCLUDE_DIRECTORIES(${clucene_SOURCE_DIR}/src/core) +INCLUDE_DIRECTORIES(${clucene_SOURCE_DIR}/src/ext/for) +IF (BUILD_SHARED_LIBRARIES) + add_library(clucene-core SHARED + ${clucene_core_Files} ${clucene_shared_Files} ${HEADERS} + ) + #set properties on the libraries + SET_TARGET_PROPERTIES(clucene-core PROPERTIES + VERSION ${CLUCENE_VERSION} + SOVERSION ${CLUCENE_SOVERSION} + COMPILE_DEFINITIONS_DEBUG _DEBUG + ) + #link the clucene-core library against the releavent clucene-shared library (if we aren't using the object files) + IF (NOT USE_SHARED_OBJECT_FILES) TARGET_LINK_LIBRARIES(clucene-core clucene-shared ${EXTRA_LIBS}) - TARGET_LINK_LIBRARIES(clucene-core clucene-shared ic) -ENDIF ( NOT USE_SHARED_OBJECT_FILES ) + ENDIF (NOT USE_SHARED_OBJECT_FILES) +ENDIF (BUILD_SHARED_LIBRARIES) -IF ( BUILD_STATIC_LIBRARIES ) +IF (BUILD_STATIC_LIBRARIES) + add_library(clucene-core-static STATIC + ${clucene_core_Files} ${clucene_shared_Files} ${HEADERS} + ) - add_library(clucene-core-static STATIC - ${clucene_core_Files} ${clucene_shared_Files} ${HEADERS} - ) + SET_TARGET_PROPERTIES(clucene-core-static PROPERTIES + VERSION ${CLUCENE_VERSION} + SOVERSION ${CLUCENE_SOVERSION} + COMPILE_DEFINITIONS_DEBUG _DEBUG + ) - SET_TARGET_PROPERTIES(clucene-core-static PROPERTIES - VERSION ${CLUCENE_VERSION} - SOVERSION ${CLUCENE_SOVERSION} - COMPILE_DEFINITIONS_DEBUG _DEBUG - ) - - #and install library - install(TARGETS clucene-core-static - DESTINATION ${LIB_DESTINATION} - COMPONENT runtime ) -ENDIF ( BUILD_STATIC_LIBRARIES ) + #and install library + install(TARGETS clucene-core-static + DESTINATION ${LIB_DESTINATION} + COMPONENT runtime) +ENDIF (BUILD_STATIC_LIBRARIES) #install public headers. -FOREACH(file ${HEADERS}) - get_filename_component(apath ${file} PATH) - get_filename_component(aname ${file} NAME) - file(RELATIVE_PATH relpath ${CMAKE_SOURCE_DIR}/src/core ${apath}) - IF ( NOT aname MATCHES "^_.*" ) - install(FILES ${file} - DESTINATION include/${relpath} - COMPONENT development) - ENDIF ( NOT aname MATCHES "^_.*" ) -ENDFOREACH(file) +FOREACH (file ${HEADERS}) + get_filename_component(apath ${file} PATH) + get_filename_component(aname ${file} NAME) + file(RELATIVE_PATH relpath ${CMAKE_SOURCE_DIR}/src/core ${apath}) + IF (NOT aname MATCHES "^_.*") + install(FILES ${file} + DESTINATION include/${relpath} + COMPONENT development) + ENDIF (NOT aname MATCHES "^_.*") +ENDFOREACH (file) #install clucene-shared headers. -install(FILES ${clucene-shared_SOURCE_DIR}/CLucene/SharedHeader.h - DESTINATION include/CLucene - COMPONENT development) -install(FILES ${clucene-shared_SOURCE_DIR}/CLucene/LuceneThreads.h - DESTINATION include/CLucene - COMPONENT development ) +install(FILES ${clucene-shared_SOURCE_DIR}/CLucene/SharedHeader.h + DESTINATION include/CLucene + COMPONENT development) +install(FILES ${clucene-shared_SOURCE_DIR}/CLucene/LuceneThreads.h + DESTINATION include/CLucene + COMPONENT development) # code for installing an script to help cmake applications determine # the CLucene version number @@ -280,41 +279,43 @@ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/CLuceneConfig.cmake" " set(CLUCENE_SOVERSION ${CLUCENE_SOVERSION}) ") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/CLuceneConfig.cmake" - DESTINATION ${LIB_DESTINATION}/CLuceneConfig.cmake) + DESTINATION ${LIB_DESTINATION}/CLuceneConfig.cmake) # install pkg-config file -IF(NOT WIN32) +IF (NOT WIN32) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libclucene-core.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libclucene-core.pc @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libclucene-core.pc - DESTINATION ${LIB_DESTINATION}/pkgconfig ) -ENDIF(NOT WIN32) + DESTINATION ${LIB_DESTINATION}/pkgconfig) +ENDIF (NOT WIN32) #install non system-independent -IF ( LUCENE_SYS_INCLUDES ) - install(FILES ${clucene-shared_BINARY_DIR}/CLucene/clucene-config.h - DESTINATION ${LUCENE_SYS_INCLUDES}/CLucene - COMPONENT development) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CLuceneConfig.cmake - DESTINATION ${LUCENE_SYS_INCLUDES}/CLucene - COMPONENT development) -ELSE ( LUCENE_SYS_INCLUDES ) - install(FILES ${clucene-shared_BINARY_DIR}/CLucene/clucene-config.h - DESTINATION include/CLucene - COMPONENT development) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CLuceneConfig.cmake - DESTINATION include/CLucene - COMPONENT development) - install(FILES ${clucene-shared_BINARY_DIR}/CLucene/util/Misc.h - DESTINATION include/CLucene/util - COMPONENT development) - install(FILES ${clucene_SOURCE_DIR}/src/core/CLucene/util/croaring/roaring.hh - DESTINATION include/CLucene/util/croaring - COMPONENT development) -ENDIF ( LUCENE_SYS_INCLUDES ) +IF (LUCENE_SYS_INCLUDES) + install(FILES ${clucene-shared_BINARY_DIR}/CLucene/clucene-config.h + DESTINATION ${LUCENE_SYS_INCLUDES}/CLucene + COMPONENT development) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CLuceneConfig.cmake + DESTINATION ${LUCENE_SYS_INCLUDES}/CLucene + COMPONENT development) +ELSE (LUCENE_SYS_INCLUDES) + install(FILES ${clucene-shared_BINARY_DIR}/CLucene/clucene-config.h + DESTINATION include/CLucene + COMPONENT development) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/CLuceneConfig.cmake + DESTINATION include/CLucene + COMPONENT development) + install(FILES ${clucene-shared_BINARY_DIR}/CLucene/util/Misc.h + DESTINATION include/CLucene/util + COMPONENT development) + install(FILES ${clucene_SOURCE_DIR}/src/core/CLucene/util/croaring/roaring.hh + DESTINATION include/CLucene/util/croaring + COMPONENT development) +ENDIF (LUCENE_SYS_INCLUDES) -#and install library -install(TARGETS clucene-core - DESTINATION ${LIB_DESTINATION} - COMPONENT runtime ) +IF (BUILD_SHARED_LIBRARIES) + #and install library + install(TARGETS clucene-core + DESTINATION ${LIB_DESTINATION} + COMPONENT runtime) +ENDIF (BUILD_SHARED_LIBRARIES) diff --git a/src/core/vp4.h b/src/core/vp4.h deleted file mode 100644 index fae28df..0000000 --- a/src/core/vp4.h +++ /dev/null @@ -1,355 +0,0 @@ -/** - Copyright (C) powturbo 2013-2019 - GPL v2 License - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - - homepage : https://sites.google.com/site/powturbo/ - - github : https://github.com/powturbo - - twitter : https://twitter.com/powturbo - - email : powturbo [_AT_] gmail [_DOT_] com -**/ -// "TurboPFor: Integer Compression" PFor/PForDelta + Direct access -#ifndef VP4_H_ -#define VP4_H_ -#if defined(_MSC_VER) && _MSC_VER < 1600 -#include "vs/stdint.h" -#else -#include <stdint.h> -#endif -#include <stddef.h> - -#ifdef __cplusplus -extern "C" { -#endif -//************************************************ High level API - n unlimited **************************************************** -// Compress integer array with n values to the buffer out. -// Return value = number of bytes written to compressed buffer out -size_t p4nenc8( uint8_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nenc16( uint16_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nenc32( uint32_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nenc64( uint64_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nenc128v16( uint16_t *__restrict in, size_t n, unsigned char *__restrict out); // SIMD (Vertical bitpacking) -size_t p4nenc128v32( uint32_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nenc128v64( uint64_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nenc256w32( uint32_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nenc256v32( uint32_t *__restrict in, size_t n, unsigned char *__restrict out); - - -size_t p4ndenc8( uint8_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4ndenc16( uint16_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4ndenc32( uint32_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4ndenc128v16( uint16_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4ndenc128v32( uint32_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4ndenc256v32( uint32_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4ndenc64( uint64_t *__restrict in, size_t n, unsigned char *__restrict out); - -size_t p4nd1enc8( uint8_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nd1enc16( uint16_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nd1enc32( uint32_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nd1enc128v16(uint16_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nd1enc128v32(uint32_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nd1enc256v32(uint32_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nd1enc64( uint64_t *__restrict in, size_t n, unsigned char *__restrict out); - -size_t p4nzenc8( uint8_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nzenc16( uint16_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nzenc32( uint32_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nzenc128v16( uint16_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nzenc128v32( uint32_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nzenc256v32( uint32_t *__restrict in, size_t n, unsigned char *__restrict out); -size_t p4nzenc64( uint64_t *__restrict in, size_t n, unsigned char *__restrict out); - -// Decompress the compressed n values in input buffer in to the integer array out. -// Return value = number of bytes read from the ompressed buffer in -size_t p4ndec8( unsigned char *__restrict in, size_t n, uint8_t *__restrict out); -size_t p4ndec16( unsigned char *__restrict in, size_t n, uint16_t *__restrict out); -size_t p4ndec32( unsigned char *__restrict in, size_t n, uint32_t *__restrict out); -size_t p4ndec64( unsigned char *__restrict in, size_t n, uint64_t *__restrict out); -size_t p4ndec128v16( unsigned char *__restrict in, size_t n, uint16_t *__restrict out); -size_t p4ndec128v32( unsigned char *__restrict in, size_t n, uint32_t *__restrict out); -size_t p4ndec128v64( unsigned char *__restrict in, size_t n, uint64_t *__restrict out); -size_t p4ndec256v32( unsigned char *__restrict in, size_t n, uint32_t *__restrict out); - -// Delta minimum = 0 -size_t p4nddec8( unsigned char *__restrict in, size_t n, uint8_t *__restrict out); -size_t p4nddec16( unsigned char *__restrict in, size_t n, uint16_t *__restrict out); -size_t p4nddec32( unsigned char *__restrict in, size_t n, uint32_t *__restrict out); -size_t p4nddec128v16( unsigned char *__restrict in, size_t n, uint16_t *__restrict out); -size_t p4nddec128v32( unsigned char *__restrict in, size_t n, uint32_t *__restrict out); -size_t p4nddec256w32( unsigned char *__restrict in, size_t n, uint32_t *__restrict out); -size_t p4nddec256v32( unsigned char *__restrict in, size_t n, uint32_t *__restrict out); -size_t p4nddec64( unsigned char *__restrict in, size_t n, uint64_t *__restrict out); -// Delta minimum = 1 -size_t p4nd1dec8( unsigned char *__restrict in, size_t n, uint8_t *__restrict out); -size_t p4nd1dec16( unsigned char *__restrict in, size_t n, uint16_t *__restrict out); -size_t p4nd1dec32( unsigned char *__restrict in, size_t n, uint32_t *__restrict out); -size_t p4nd1dec128v16(unsigned char *__restrict in, size_t n, uint16_t *__restrict out); -size_t p4nd1dec128v32(unsigned char *__restrict in, size_t n, uint32_t *__restrict out); -size_t p4nd1dec256v32(unsigned char *__restrict in, size_t n, uint32_t *__restrict out); -size_t p4nd1dec64( unsigned char *__restrict in, size_t n, uint64_t *__restrict out); -//Zigzag -size_t p4nzdec8( unsigned char *__restrict in, size_t n, uint8_t *__restrict out); -size_t p4nzdec16( unsigned char *__restrict in, size_t n, uint16_t *__restrict out); -size_t p4nzdec32( unsigned char *__restrict in, size_t n, uint32_t *__restrict out); -size_t p4nzdec128v16( unsigned char *__restrict in, size_t n, uint16_t *__restrict out); -size_t p4nzdec128v32( unsigned char *__restrict in, size_t n, uint32_t *__restrict out); -size_t p4nzdec256v32( unsigned char *__restrict in, size_t n, uint32_t *__restrict out); -size_t p4nzdec64( unsigned char *__restrict in, size_t n, uint64_t *__restrict out); - -//************** Low level API - n limited to 128/256 *************************************** -#define P4D_MAX 256 - -// -------------- TurboPFor: Encode ------------ -//#include <assert.h> -// Low level API: Single block n limited -//compress integer array with n values to the buffer out. Return value = end of compressed buffer out -unsigned char *p4enc8( uint8_t *__restrict in, unsigned n, unsigned char *__restrict out); -unsigned char *p4enc16( uint16_t *__restrict in, unsigned n, unsigned char *__restrict out); -unsigned char *p4enc32( uint32_t *__restrict in, unsigned n, unsigned char *__restrict out); -unsigned char *p4enc128v16( uint16_t *__restrict in, unsigned n, unsigned char *__restrict out); // SSE (Vertical bitpacking) -unsigned char *p4enc128v32( uint32_t *__restrict in, unsigned n, unsigned char *__restrict out); -unsigned char *p4enc128v64( uint64_t *__restrict in, unsigned n, unsigned char *__restrict out); -unsigned char *p4enc256v32( uint32_t *__restrict in, unsigned n, unsigned char *__restrict out); // AVX2 -unsigned char *p4enc64( uint64_t *__restrict in, unsigned n, unsigned char *__restrict out); - -unsigned char *p4enc256w32( uint32_t *__restrict in, unsigned n, unsigned char *__restrict out); - -unsigned char *p4encx8( uint8_t *__restrict in, unsigned n, unsigned char *__restrict out);// Direct access -unsigned char *p4encx16( uint16_t *__restrict in, unsigned n, unsigned char *__restrict out); -unsigned char *p4encx32( uint32_t *__restrict in, unsigned n, unsigned char *__restrict out); -unsigned char *p4encx64( uint64_t *__restrict in, unsigned n, unsigned char *__restrict out); - -unsigned char *p4denc8( uint8_t *__restrict in, unsigned n, unsigned char *__restrict out, uint8_t start); -unsigned char *p4denc16( uint16_t *__restrict in, unsigned n, unsigned char *__restrict out, uint16_t start); -unsigned char *p4denc32( uint32_t *__restrict in, unsigned n, unsigned char *__restrict out, uint32_t start); -unsigned char *p4denc128v16( uint16_t *__restrict in, unsigned n, unsigned char *__restrict out, uint16_t start); -unsigned char *p4denc128v32( uint32_t *__restrict in, unsigned n, unsigned char *__restrict out, uint32_t start); -unsigned char *p4denc256v32( uint32_t *__restrict in, unsigned n, unsigned char *__restrict out, uint32_t start); -unsigned char *p4denc64( uint64_t *__restrict in, unsigned n, unsigned char *__restrict out, uint64_t start); - -unsigned char *p4denc256w32( uint32_t *__restrict in, unsigned n, unsigned char *__restrict out, uint32_t start); - -unsigned char *p4dencx8( uint8_t *__restrict in, unsigned n, unsigned char *__restrict out, uint8_t start); // Direct access -unsigned char *p4dencx16( uint16_t *__restrict in, unsigned n, unsigned char *__restrict out, uint16_t start); -unsigned char *p4dencx32( unsigned *__restrict in, unsigned n, unsigned char *__restrict out, uint32_t start); - -unsigned char *p4d1enc8( uint8_t *__restrict in, unsigned n, unsigned char *__restrict out, uint8_t start); -unsigned char *p4d1enc16( uint16_t *__restrict in, unsigned n, unsigned char *__restrict out, uint16_t start); -unsigned char *p4d1enc32( uint32_t *__restrict in, unsigned n, unsigned char *__restrict out, uint32_t start); -unsigned char *p4d1enc128v16(uint16_t *__restrict in, unsigned n, unsigned char *__restrict out, uint16_t start); // SIMD (Vertical bitpacking) -unsigned char *p4d1enc128v32(uint32_t *__restrict in, unsigned n, unsigned char *__restrict out, uint32_t start); -unsigned char *p4d1enc256v32(uint32_t *__restrict in, unsigned n, unsigned char *__restrict out, uint32_t start); -unsigned char *p4d1enc64( uint64_t *__restrict in, unsigned n, unsigned char *__restrict out, uint64_t start); - -unsigned char *p4d1encx8( uint8_t *__restrict in, unsigned n, unsigned char *__restrict out, uint8_t start); // Direct access -unsigned char *p4d1encx16( uint16_t *__restrict in, unsigned n, unsigned char *__restrict out, uint16_t start); -unsigned char *p4d1encx32( uint32_t *__restrict in, unsigned n, unsigned char *__restrict out, uint32_t start); - -unsigned char *p4zenc8( uint8_t *__restrict in, unsigned n, unsigned char *__restrict out, uint8_t start); -unsigned char *p4zenc16( uint16_t *__restrict in, unsigned n, unsigned char *__restrict out, uint16_t start); -unsigned char *p4zenc32( uint32_t *__restrict in, unsigned n, unsigned char *__restrict out, uint32_t start); -unsigned char *p4zenc128v16( uint16_t *__restrict in, unsigned n, unsigned char *__restrict out, uint16_t start); -unsigned char *p4zenc128v32( uint32_t *__restrict in, unsigned n, unsigned char *__restrict out, uint32_t start); -unsigned char *p4zenc256v32( uint32_t *__restrict in, unsigned n, unsigned char *__restrict out, uint32_t start); -unsigned char *p4zenc64( uint64_t *__restrict in, unsigned n, unsigned char *__restrict out, uint64_t start); - -unsigned char *p4senc16(uint16_t *in, unsigned n, unsigned char *out, uint16_t start); -unsigned char *p4senc32(uint32_t *in, unsigned n, unsigned char *out, uint32_t start); -unsigned char *p4senc64(uint64_t *in, unsigned n, unsigned char *out, uint64_t start); - -unsigned char *p4sdec16(unsigned char *in, unsigned n, uint16_t *out, uint16_t start); -unsigned char *p4sdec32(unsigned char *in, unsigned n, uint32_t *out, uint32_t start); -unsigned char *p4sdec64(unsigned char *in, unsigned n, uint64_t *out, uint64_t start); - -size_t p4nsenc16(uint16_t *in, size_t n, unsigned char *out); -size_t p4nsenc32(uint32_t *in, size_t n, unsigned char *out); -size_t p4nsenc64(uint64_t *in, size_t n, unsigned char *out); - -size_t p4nsdec16(unsigned char *in, size_t n, uint16_t *out); -size_t p4nsdec32(unsigned char *in, size_t n, uint32_t *out); -size_t p4nsdec64(unsigned char *in, size_t n, uint64_t *out); - -// same as p4enc, but with b and bx as parameters. Call after _p4bitsXX -inline unsigned char *_p4enc8( uint8_t *__restrict in, unsigned n, unsigned char *__restrict out, unsigned b, unsigned bx); -inline unsigned char *_p4enc16( uint16_t *__restrict in, unsigned n, unsigned char *__restrict out, unsigned b, unsigned bx); -inline unsigned char *_p4enc32( uint32_t *__restrict in, unsigned n, unsigned char *__restrict out, unsigned b, unsigned bx); -inline unsigned char *_p4enc128v16( uint16_t *__restrict in, unsigned n, unsigned char *__restrict out, unsigned b, unsigned bx); // SIMD (Vertical bitpacking) -inline unsigned char *_p4enc128v32( uint32_t *__restrict in, unsigned n, unsigned char *__restrict out, unsigned b, unsigned bx); // SIMD (Vertical bitpacking) -inline unsigned char *_p4enc128v64( uint64_t *__restrict in, unsigned n, unsigned char *__restrict out, unsigned b, unsigned bx); // SIMD (Vertical bitpacking) -inline unsigned char *_p4enc256v32( uint32_t *__restrict in, unsigned n, unsigned char *__restrict out, unsigned b, unsigned bx); -inline unsigned char *_p4enc64( uint64_t *__restrict in, unsigned n, unsigned char *__restrict out, unsigned b, unsigned bx); -// calculate the best bit sizes b and bx, return b. -unsigned _p4bits8( uint8_t *__restrict in, unsigned n, unsigned *pbx); -unsigned _p4bits16( uint16_t *__restrict in, unsigned n, unsigned *pbx); -unsigned _p4bits32( uint32_t *__restrict in, unsigned n, unsigned *pbx); -unsigned _p4bits64( uint64_t *__restrict in, unsigned n, unsigned *pbx); - -unsigned _p4bitsx8( uint8_t *__restrict in, unsigned n, unsigned *pbx); -unsigned _p4bitsx16( uint16_t *__restrict in, unsigned n, unsigned *pbx); -unsigned _p4bitsx32( uint32_t *__restrict in, unsigned n, unsigned *pbx); -unsigned _p4bitsx64( uint64_t *__restrict in, unsigned n, unsigned *pbx); - -#define P4HVE(_out_, _b_, _bx_,_usize_) do { if(!_bx_) *_out_++ = _b_;else if(_bx_ <= _usize_) *_out_++ = 0x80|_b_, *_out_++ = _bx_; else *_out_++= (_bx_ == _usize_+1?0x40:0xc0)|_b_; } while(0) - -#define P4HVE8( _out_, _b_, _bx_) P4HVE(_out_, _b_, _bx_, 8) -#define P4HVE16(_out_, _b_, _bx_) P4HVE(_out_, _b_, _bx_,16) -#define P4HVE32(_out_, _b_, _bx_) P4HVE(_out_, _b_, _bx_,32) -#define P4HVE64(_out_, _b_, _bx_) do { unsigned _c = _b_==64?64-1:_b_; P4HVE(_out_, _c, _bx_,64); } while(0) - -//---------------------------- TurboPFor: Decode -------------------------------------------------------- -// decompress a previously (with p4enc32) bit packed array. Return value = end of packed buffer in -//-- scalar. (see p4getx32 for direct access) -// b and bx specified (not stored within the compressed stream header) -inline unsigned char *_p4dec8( unsigned char *__restrict in, unsigned n, uint8_t *__restrict out, unsigned b, unsigned bx); -inline unsigned char *_p4dec16( unsigned char *__restrict in, unsigned n, uint16_t *__restrict out, unsigned b, unsigned bx); -inline unsigned char *_p4dec32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, unsigned b, unsigned bx); -inline unsigned char *_p4dec128v16( unsigned char *__restrict in, unsigned n, uint16_t *__restrict out, unsigned b, unsigned bx); // SIMD (Vertical BitPacking) -inline unsigned char *_p4dec128v32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, unsigned b, unsigned bx); -inline unsigned char *_p4dec128v64( unsigned char *__restrict in, unsigned n, uint64_t *__restrict out, unsigned b, unsigned bx); -inline unsigned char *_p4dec64( unsigned char *__restrict in, unsigned n, uint64_t *__restrict out, unsigned b, unsigned bx); - -unsigned char *p4dec8( unsigned char *__restrict in, unsigned n, uint8_t *__restrict out); -unsigned char *p4dec16( unsigned char *__restrict in, unsigned n, uint16_t *__restrict out); -unsigned char *p4dec32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out); -unsigned char *p4dec128v16( unsigned char *__restrict in, unsigned n, uint16_t *__restrict out); // SIMD (Vertical BitPacking) -unsigned char *p4dec128v32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out); -unsigned char *p4dec128v64( unsigned char *__restrict in, unsigned n, uint64_t *__restrict out); -unsigned char *p4dec256v32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out); -unsigned char *p4dec64( unsigned char *__restrict in, unsigned n, uint64_t *__restrict out); -//------ Delta decoding --------------------------- Return value = end of packed input buffer in --------------------------- -//-- Increasing integer lists. out[i] = out[i-1] + in[i] -// b and bx specified -unsigned char *_p4ddec8( unsigned char *__restrict in, unsigned n, uint8_t *__restrict out, uint8_t start, unsigned b, unsigned bx); -unsigned char *_p4ddec16( unsigned char *__restrict in, unsigned n, uint16_t *__restrict out, uint16_t start, unsigned b, unsigned bx); -unsigned char *_p4ddec32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start, unsigned b, unsigned bx); -unsigned char *_p4ddec128v16( unsigned char *__restrict in, unsigned n, uint16_t *__restrict out, uint16_t start, unsigned b, unsigned bx); -unsigned char *_p4ddec128v32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start, unsigned b, unsigned bx); -unsigned char *_p4ddec256v32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start, unsigned b, unsigned bx); -unsigned char *_p4ddec64( unsigned char *__restrict in, unsigned n, uint64_t *__restrict out, uint64_t start, unsigned b, unsigned bx); - -unsigned char *p4ddec8( unsigned char *__restrict in, unsigned n, uint8_t *__restrict out, uint8_t start); -unsigned char *p4ddec16( unsigned char *__restrict in, unsigned n, uint16_t *__restrict out, uint16_t start); -unsigned char *p4ddec32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start); -unsigned char *p4ddec128v16( unsigned char *__restrict in, unsigned n, uint16_t *__restrict out, uint16_t start); // SIMD (Vertical BitPacking) -unsigned char *p4ddec128v32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start); -unsigned char *p4ddec256v32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start); -unsigned char *p4ddec64( unsigned char *__restrict in, unsigned n, uint64_t *__restrict out, uint64_t start); - -//-- Strictly increasing (never remaining constant or decreasing) integer lists. out[i] = out[i-1] + in[i] + 1 -// b and bx specified (see idxcr.c/idxqry.c for an example) -unsigned char *_p4d1dec8( unsigned char *__restrict in, unsigned n, uint8_t *__restrict out, uint8_t start, unsigned b, unsigned bx); -unsigned char *_p4d1dec16( unsigned char *__restrict in, unsigned n, uint16_t *__restrict out, uint16_t start, unsigned b, unsigned bx); -unsigned char *_p4d1dec32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start, unsigned b, unsigned bx); -unsigned char *_p4d1dec128v16(unsigned char *__restrict in, unsigned n, uint16_t *__restrict out, uint16_t start, unsigned b, unsigned bx); // SIMD (Vertical BitPacking) -unsigned char *_p4d1dec128v32(unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start, unsigned b, unsigned bx); -unsigned char *_p4d1dec256v32(unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start, unsigned b, unsigned bx); -unsigned char *_p4d1dec64( unsigned char *__restrict in, unsigned n, uint64_t *__restrict out, uint64_t start, unsigned b, unsigned bx); - -unsigned char *p4d1dec8( unsigned char *__restrict in, unsigned n, uint8_t *__restrict out, uint8_t start); -unsigned char *p4d1dec16( unsigned char *__restrict in, unsigned n, uint16_t *__restrict out, uint16_t start); -unsigned char *p4d1dec32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start); -unsigned char *p4d1dec128v16( unsigned char *__restrict in, unsigned n, uint16_t *__restrict out, uint16_t start); // SIMD (Vertical BitPacking) -unsigned char *p4d1dec128v32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start); -unsigned char *p4d1dec256v32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start); -unsigned char *p4d1dec64( unsigned char *__restrict in, unsigned n, uint64_t *__restrict out, uint64_t start); - -// ZigZag encoding -inline unsigned char *_p4zdec8( unsigned char *__restrict in, unsigned n, uint8_t *__restrict out, uint8_t start, unsigned b, unsigned bx); -inline unsigned char *_p4zdec16( unsigned char *__restrict in, unsigned n, uint16_t *__restrict out, uint16_t start, unsigned b, unsigned bx); -inline unsigned char *_p4zdec32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start, unsigned b, unsigned bx); -inline unsigned char *_p4zdec128v16( unsigned char *__restrict in, unsigned n, uint16_t *__restrict out, uint16_t start, unsigned b, unsigned bx); -inline unsigned char *_p4zdec128v32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start, unsigned b, unsigned bx); -inline unsigned char *_p4zdec256v32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start, unsigned b, unsigned bx); -inline unsigned char *_p4zdec64( unsigned char *__restrict in, unsigned n, uint64_t *__restrict out, uint64_t start, unsigned b, unsigned bx); - -unsigned char *p4zdec8( unsigned char *__restrict in, unsigned n, uint8_t *__restrict out, uint8_t start); -unsigned char *p4zdec16( unsigned char *__restrict in, unsigned n, uint16_t *__restrict out, uint16_t start); -unsigned char *p4zdec32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start); -unsigned char *p4zdec128v16( unsigned char *__restrict in, unsigned n, uint16_t *__restrict out, uint16_t start); // SIMD (Vertical BitPacking) -unsigned char *p4zdec128v32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start); -unsigned char *p4zdec256v32( unsigned char *__restrict in, unsigned n, uint32_t *__restrict out, uint32_t start); -unsigned char *p4zdec64( unsigned char *__restrict in, unsigned n, uint64_t *__restrict out, uint64_t start); - -//---------------- Direct Access functions to compressed TurboPFor array p4encx16/p4encx32 ------------------------------------------------------- - #ifdef TURBOPFOR_DAC -#include "conf.h" -#define P4D_PAD8(_x_) ( (((_x_)+8-1)/8) ) -#define P4D_B(_x_) ((_x_) & 0x7f) -#define P4D_XB(_x_) (((_x_) & 0x80)?((_x_) >> 8):0) -#define P4D_ININC(_in_, _x_) _in_ += 1+((_x_) >> 7) - -static inline unsigned p4bits(unsigned char *__restrict in, int *bx) { unsigned i = ctou16(in); *bx = P4D_XB(i); return P4D_B(i); } - -struct p4 { - unsigned long long *xmap; - unsigned char *ex; - unsigned isx,bx,cum[P4D_MAX/64+1]; - int oval,idx; -}; - -static unsigned long long p4xmap[P4D_MAX/64+1] = { 0 }; - -// prepare direct access usage -static inline void p4ini(struct p4 *p4, unsigned char **pin, unsigned n, unsigned *b) { unsigned char *in = *pin; - unsigned p4i = ctou16(in); - p4->isx = p4i&0x80; - *b = P4D_B(p4i); - p4->bx = P4D_XB(p4i); //printf("p4i=%x,b=%d,bx=%d ", p4->i, *b, p4->bx); //assert(n <= P4D_MAX); - *pin = p4->ex = ++in; - if(p4->isx) { - unsigned num=0,j; - unsigned char *p; - ++in; - p4->xmap = (unsigned long long *)in; - for(j=0; j < n/64; j++) { p4->cum[j] = num; num += popcnt64(ctou64(in+j*8)); } - if(n & 0x3f) num += popcnt64(ctou64(in+j*8) & ((1ull<<(n&0x3f))-1) ); - p4->ex = p = in + (n+7)/8; - *pin = p = p4->ex+(((uint64_t)num*p4->bx+7)/8); - } else p4->xmap = p4xmap; - p4->oval = p4->idx = -1; -} - -//---------- Get a single value with index "idx" from a "p4encx32" packed array -static ALWAYS_INLINE uint8_t p4getx8( struct p4 *p4, unsigned char *in, unsigned idx, unsigned b) { unsigned bi, cl, u = bitgetx8( in, idx, b); - if(p4->xmap[bi=idx>>6] & (1ull<<(cl=idx&63))) u += bitgetx8(p4->ex, p4->cum[bi] + popcnt64(p4->xmap[bi] & ~(~0ull<<cl)), p4->bx) << b; - return u; -} - -static ALWAYS_INLINE uint16_t p4getx16(struct p4 *p4, unsigned char *in, unsigned idx, unsigned b) { unsigned bi, cl, u = bitgetx16(in, idx, b); - if(p4->xmap[bi=idx>>6] & (1ull<<(cl=idx&63))) u += bitgetx16(p4->ex, p4->cum[bi] + popcnt64(p4->xmap[bi] & ~(~0ull<<cl)), p4->bx) << b; - return u; -} -static ALWAYS_INLINE uint32_t p4getx32(struct p4 *p4, unsigned char *in, unsigned idx, unsigned b) { unsigned bi, cl, u = bitgetx32(in, idx, b); - if(p4->xmap[bi=idx>>6] & (1ull<<(cl=idx&63))) u += bitgetx32(p4->ex, p4->cum[bi] + popcnt64(p4->xmap[bi] & ~(~0ull<<cl)), p4->bx) << b; - return u; -} - -// Get the next single value greater of equal to val -static ALWAYS_INLINE uint16_t p4geqx8( struct p4 *p4, unsigned char *in, unsigned b, uint8_t val) { do p4->oval += p4getx8( p4, in, ++p4->idx, b)+1; while(p4->oval < val); return p4->oval; } -static ALWAYS_INLINE uint16_t p4geqx16(struct p4 *p4, unsigned char *in, unsigned b, uint16_t val) { do p4->oval += p4getx16(p4, in, ++p4->idx, b)+1; while(p4->oval < val); return p4->oval; } -static ALWAYS_INLINE uint32_t p4geqx32(struct p4 *p4, unsigned char *in, unsigned b, uint32_t val) { do p4->oval += p4getx32(p4, in, ++p4->idx, b)+1; while(p4->oval < val); return p4->oval; } - -/* DO NOT USE : like p4dec32 but using direct access. This is only a demo showing direct access usage. Use p4dec32 instead for decompressing entire blocks */ -unsigned char *p4decx32( unsigned char *in, unsigned n, uint32_t *out); // unsorted -unsigned char *p4fdecx32( unsigned char *in, unsigned n, uint32_t *out, uint32_t start); // FOR increasing -unsigned char *p4f1decx32( unsigned char *in, unsigned n, uint32_t *out, uint32_t start); // FOR strictly increasing - #endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/shared/CMakeLists.txt b/src/shared/CMakeLists.txt index 2369234..8da2393 100644 --- a/src/shared/CMakeLists.txt +++ b/src/shared/CMakeLists.txt @@ -2,102 +2,91 @@ PROJECT(clucene-shared) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" "${clucene_SOURCE_DIR}/cmake" "${clucene-shared_SOURCE_DIR}/cmake") #define command line options -INCLUDE (DefineOptions) +INCLUDE(DefineOptions) DEFINE_OPTIONS(EXTRA_OPTIONS EXTRA_LIBS) ADD_DEFINITIONS(${EXTRA_OPTIONS} -DMAKE_CLUCENE_SHARED_LIB) # include specific modules set(CMAKE_MODULE_PATH "${clucene-shared_SOURCE_DIR}/cmake") -INCLUDE (CheckIncludeFiles) -INCLUDE (CheckIncludeFileCXX) -INCLUDE (CheckCXXSourceCompiles) -INCLUDE (CheckCXXSourceRuns) -INCLUDE (CheckFunctionExists) +INCLUDE(CheckIncludeFiles) +INCLUDE(CheckIncludeFileCXX) +INCLUDE(CheckCXXSourceCompiles) +INCLUDE(CheckCXXSourceRuns) +INCLUDE(CheckFunctionExists) #local macros -INCLUDE (MacroMustDefine) -INCLUDE (MacroChooseType) -INCLUDE (MacroChooseMisc) -INCLUDE (MacroChooseFunction) -INCLUDE (MacroChooseSymbol) -INCLUDE (MacroCheckGccVisibility) - -INCLUDE (DefineFloat) -INCLUDE (DefineDword) -INCLUDE (DefineLongLongSyntax) -INCLUDE (DefineStaticSyntax) -INCLUDE (DefineMAXPATHValue) - -INCLUDE (CheckFloatByte) -INCLUDE (CheckErrorHandling) -INCLUDE (CheckHashmaps) -INCLUDE (CheckNamespace) -INCLUDE (CheckSnprintf) -INCLUDE (CheckStdCallFunctionExists) +INCLUDE(MacroMustDefine) +INCLUDE(MacroChooseType) +INCLUDE(MacroChooseMisc) +INCLUDE(MacroChooseFunction) +INCLUDE(MacroChooseSymbol) +INCLUDE(MacroCheckGccVisibility) + +INCLUDE(DefineFloat) +INCLUDE(DefineDword) +INCLUDE(DefineLongLongSyntax) +INCLUDE(DefineStaticSyntax) +INCLUDE(DefineMAXPATHValue) + +INCLUDE(CheckFloatByte) +INCLUDE(CheckErrorHandling) +INCLUDE(CheckHashmaps) +INCLUDE(CheckNamespace) +INCLUDE(CheckSnprintf) +INCLUDE(CheckStdCallFunctionExists) find_package(Threads REQUIRED) -INCLUDE (CheckPthread) -INCLUDE (CheckAtomicFunctions) +INCLUDE(CheckPthread) +INCLUDE(CheckAtomicFunctions) if (NOT USE_INTERNAL_ZLIB_LIBRARY) - find_package (ZLIB) + find_package(ZLIB) endif () -IF ( ZLIB_FOUND ) - SET ( EXTRA_LIBS ${EXTRA_LIBS} ${ZLIB_LIBRARY} ) -ELSE ( ZLIB_FOUND ) - MESSAGE( "ZLIB not found, using local: ${clucene-ext_SOURCE_DIR}/zlib" ) - SET(ZLIB_INCLUDE_DIR ${clucene-ext_SOURCE_DIR}/zlib ) +IF (ZLIB_FOUND) + SET(EXTRA_LIBS ${EXTRA_LIBS} ${ZLIB_LIBRARY}) +ELSE (ZLIB_FOUND) + MESSAGE("ZLIB not found, using local: ${clucene-ext_SOURCE_DIR}/zlib") + SET(ZLIB_INCLUDE_DIR ${clucene-ext_SOURCE_DIR}/zlib) SET(ZLIB_LIBRARY ${clucene-ext_BINARY_DIR}) -ENDIF ( ZLIB_FOUND ) -INCLUDE_DIRECTORIES( ${ZLIB_INCLUDE_DIR} ) - -#include(../../cmake/zstd.cmake) -#IF ( ZSTD_LIBRARY ) -# SET ( EXTRA_LIBS ${EXTRA_LIBS} ${ZSTD_LIBRARY} ) -# MESSAGE( "ZSTD found, using : ${ZSTD_LIBRARY} ${ZSTD_INCLUDE_DIR}" ) -#ELSE ( ZSTD_LIBRARY ) -# MESSAGE( "ZSTD not found, using local: ${clucene-ext_SOURCE_DIR}/zstd" ) -# SET(ZSTD_INCLUDE_DIR ${clucene-ext_SOURCE_DIR}/zlib ) -# SET(ZSTD_LIBRARY ${clucene-ext_BINARY_DIR}) -#ENDIF ( ZSTD_LIBRARY ) -#INCLUDE_DIRECTORIES( ${ZSTD_INCLUDE_DIR} ) +ENDIF (ZLIB_FOUND) +INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) ######################################################################## # test for headers ######################################################################## -CHECK_INCLUDE_FILES ("sys/time.h;time.h" _CL_TIME_WITH_SYS_TIME) +CHECK_INCLUDE_FILES("sys/time.h;time.h" _CL_TIME_WITH_SYS_TIME) -CHECK_REQUIRED_HEADERS ( stdlib.h stdarg.h stdio.h stddef.h ctype.h algorithm - functional map vector list set math.h fcntl.h limits.h) - -CHECK_OPTIONAL_HEADERS ( string.h sys/time.h memory.h sys/types.h - stdint.h unistd.h io.h direct.h sys/dir.h sys/ndir.h dirent.h wctype.h fcntl.h - stat.h sys/stat.h stdexcept errno.h fcntl.h windef.h windows.h wchar.h - hash_map hash_set ext/hash_map ext/hash_map tr1/unordered_set tr1/unordered_map - sys/timeb.h tchar.h strings.h stdexcept sys/mman.h winerror.h ) +CHECK_REQUIRED_HEADERS(stdlib.h stdarg.h stdio.h stddef.h ctype.h algorithm + functional map vector list set math.h fcntl.h limits.h) + +CHECK_OPTIONAL_HEADERS(string.h sys/time.h memory.h sys/types.h + stdint.h unistd.h io.h direct.h sys/dir.h sys/ndir.h dirent.h wctype.h fcntl.h + stat.h sys/stat.h stdexcept errno.h fcntl.h windef.h windows.h wchar.h + hash_map hash_set ext/hash_map ext/hash_map tr1/unordered_set tr1/unordered_map + sys/timeb.h tchar.h strings.h stdexcept sys/mman.h winerror.h) ######################################################################## # test for types ######################################################################## #find int_t types -CHOOSE_TYPE(int8_t 1 signed "int8_t;char") -CHOOSE_TYPE(uint8_t 1 unsigned "uint8_t;char") -CHOOSE_TYPE(int16_t 2 signed "int16_t;short") -CHOOSE_TYPE(uint16_t 2 unsigned "uint16_t;short") -CHOOSE_TYPE(int32_t 4 signed "int32_t;int;long") -CHOOSE_TYPE(uint32_t 4 unsigned "uint32_t;int;long") -CHOOSE_TYPE(int64_t 8 signed "int64_t;long long;__int64") -CHOOSE_TYPE(uint64_t 8 unsigned "uint64_t;long long;__int64") - -CHOOSE_TYPE(size_t -1 unsigned "size_t;int" ) +CHOOSE_TYPE(int8_t 1 signed "int8_t;char") +CHOOSE_TYPE(uint8_t 1 unsigned "uint8_t;char") +CHOOSE_TYPE(int16_t 2 signed "int16_t;short") +CHOOSE_TYPE(uint16_t 2 unsigned "uint16_t;short") +CHOOSE_TYPE(int32_t 4 signed "int32_t;int;long") +CHOOSE_TYPE(uint32_t 4 unsigned "uint32_t;int;long") +CHOOSE_TYPE(int64_t 8 signed "int64_t;long long;__int64") +CHOOSE_TYPE(uint64_t 8 unsigned "uint64_t;long long;__int64") + +CHOOSE_TYPE(size_t -1 unsigned "size_t;int") CHOOSE_MISC(TYPE__TIMEB - HAVE_TYPE__TIMEB - "struct _timeb x\;" "/* #undef _timeb */" "_timeb" - "struct timeb x\;" "#define _timeb timeb" "timeb" - ) + HAVE_TYPE__TIMEB + "struct _timeb x\;" "/* #undef _timeb */" "_timeb" + "struct timeb x\;" "#define _timeb timeb" "timeb" + ) #run macro for checking float. (and _FLT_EVAL_METHOD) DEFINE_FLOAT() @@ -108,43 +97,44 @@ DEFINE_DWORD() ######################################################################## -CHECK_REQUIRED_FUNCTIONS( printf strftime wcscpy wcsncpy wcscat wcschr wcsstr wcslen - wcscmp wcsncmp wcscspn ) +CHECK_REQUIRED_FUNCTIONS(printf strftime wcscpy wcsncpy wcscat wcschr wcsstr wcslen + wcscmp wcsncmp wcscspn) #todo: wcstoq is bsd equiv of wcstoll, we can use that... -CHECK_OPTIONAL_FUNCTIONS( wcsupr wcscasecmp wcsicmp wcstoll wprintf lltow +CHECK_OPTIONAL_FUNCTIONS(wcsupr wcscasecmp wcsicmp wcstoll wprintf lltow wcstod wcsdup strupr strlwr lltoa strtoll gettimeofday _vsnwprintf mmap "MapViewOfFile(0,0,0,0,0)" -) + ) #make decisions about which functions to use... -CHOOSE_FUNCTION(fileHandleStat "fstati64;_fstati64;fstat64;fstat;_fstat") -IF ( _CL_HAVE_FUNCTION_FSTATI64 OR _CL_HAVE_FUNCTION__FSTATI64 OR _CL_HAVE_FUNCTION_FSTAT64 ) - SET ( USE_STAT64 1 ) -ENDIF ( _CL_HAVE_FUNCTION_FSTATI64 OR _CL_HAVE_FUNCTION__FSTATI64 OR _CL_HAVE_FUNCTION_FSTAT64 ) - -IF ( USE_STAT64 ) - CHOOSE_FUNCTION(fileStat "stati64;_stati64;stat64;stat;_stat") - CHOOSE_FUNCTION(fileSize "filelengthi64;_filelengthi64;filelength;_filelength" "#define fileSize CL_NS(util)::Misc::filelength") - CHOOSE_FUNCTION(fileSeek "lseeki64;_lseeki64;lseek64;lseek;_lseek") - CHOOSE_MISC(TYPE_CL_STAT_T - HAVE_TYPE_CL_STAT_T - "struct stati64 x\;" "#define cl_stat_t stati64" "stati64" - "struct _stati64 x\;" "#define cl_stat_t _stati64" "_stati64" - "struct stat64 x\;" "#define cl_stat_t stat64" "stat64" - "struct stat x\;" "#define cl_stat_t stat" "stat" - "struct _stat x\;" "#define cl_stat_t _stat" "_stat" - ) -ELSE( USE_STAT64 ) - #borland doesn't have a fstat64, so we have to fallback to non 64 bit everything... - CHOOSE_FUNCTION(fileStat "stat;_stat") - CHOOSE_FUNCTION(fileSize "filelength;_filelength" "#define fileSize CL_NS(util)::Misc::filelength") - CHOOSE_FUNCTION(fileSeek "lseek;_lseek") - CHOOSE_MISC(TYPE_CL_STAT_T - HAVE_TYPE_CL_STAT_T - "struct stat x\;" "#define cl_stat_t stat" "stat" - "struct _stat x\;" "#define cl_stat_t _stat" "_stat" - ) -ENDIF( USE_STAT64 ) +#IF ( _CL_HAVE_FUNCTION_FSTATI64 OR _CL_HAVE_FUNCTION__FSTATI64 OR _CL_HAVE_FUNCTION_FSTAT64 ) +# SET ( USE_STAT64 1 ) +#ENDIF ( _CL_HAVE_FUNCTION_FSTATI64 OR _CL_HAVE_FUNCTION__FSTATI64 OR _CL_HAVE_FUNCTION_FSTAT64 ) + +IF (USE_STAT64) + CHOOSE_FUNCTION(fileHandleStat "fstati64;_fstati64;fstat64;fstat;_fstat") + CHOOSE_FUNCTION(fileStat "stati64;_stati64;stat64;stat;_stat") + CHOOSE_FUNCTION(fileSize "filelengthi64;_filelengthi64;filelength;_filelength" "#define fileSize CL_NS(util)::Misc::filelength") + CHOOSE_FUNCTION(fileSeek "lseeki64;_lseeki64;lseek64;lseek;_lseek") + CHOOSE_MISC(TYPE_CL_STAT_T + HAVE_TYPE_CL_STAT_T + "struct stati64 x\;" "#define cl_stat_t stati64" "stati64" + "struct _stati64 x\;" "#define cl_stat_t _stati64" "_stati64" + "struct stat64 x\;" "#define cl_stat_t stat64" "stat64" + "struct stat x\;" "#define cl_stat_t stat" "stat" + "struct _stat x\;" "#define cl_stat_t _stat" "_stat" + ) +ELSE (USE_STAT64) + #borland doesn't have a fstat64, so we have to fallback to non 64 bit everything... + CHOOSE_FUNCTION(fileHandleStat "fstat;_fstat") + CHOOSE_FUNCTION(fileStat "stat;_stat") + CHOOSE_FUNCTION(fileSize "filelength;_filelength" "#define fileSize CL_NS(util)::Misc::filelength") + CHOOSE_FUNCTION(fileSeek "lseek;_lseek") + CHOOSE_MISC(TYPE_CL_STAT_T + HAVE_TYPE_CL_STAT_T + "struct stat x\;" "#define cl_stat_t stat" "stat" + "struct _stat x\;" "#define cl_stat_t _stat" "_stat" + ) +ENDIF (USE_STAT64) #ftell (and probably soon ftell64) are POSIX standard functions, but tell and #tell64 are not, so we define fileTell in terms of fileSeek. @@ -167,57 +157,57 @@ CHOOSE_FUNCTION(_snwprintf "snwprintf;_snwprintf") ######################################################################## # test for symbols ######################################################################## -CHOOSE_SYMBOL (_O_RANDOM "_O_RANDOM;O_RANDOM") -CHOOSE_SYMBOL (_O_BINARY "_O_BINARY;O_BINARY") -CHOOSE_SYMBOL (_S_IREAD "_S_IREAD;S_IREAD") -CHOOSE_SYMBOL (_S_IWRITE "_S_IWRITE;S_IWRITE") +CHOOSE_SYMBOL(_O_RANDOM "_O_RANDOM;O_RANDOM") +CHOOSE_SYMBOL(_O_BINARY "_O_BINARY;O_BINARY") +CHOOSE_SYMBOL(_S_IREAD "_S_IREAD;S_IREAD") +CHOOSE_SYMBOL(_S_IWRITE "_S_IWRITE;S_IWRITE") #define defaults -IF ( NOT HAVE_SYMBOL__O_RANDOM ) - SET (SYMBOL__O_RANDOM "#define _O_RANDOM 0") -ENDIF ( NOT HAVE_SYMBOL__O_RANDOM ) +IF (NOT HAVE_SYMBOL__O_RANDOM) + SET(SYMBOL__O_RANDOM "#define _O_RANDOM 0") +ENDIF (NOT HAVE_SYMBOL__O_RANDOM) -IF ( NOT HAVE_SYMBOL__O_BINARY ) - SET (SYMBOL__O_BINARY "#define _O_BINARY 0") -ENDIF ( NOT HAVE_SYMBOL__O_BINARY) +IF (NOT HAVE_SYMBOL__O_BINARY) + SET(SYMBOL__O_BINARY "#define _O_BINARY 0") +ENDIF (NOT HAVE_SYMBOL__O_BINARY) -IF ( NOT HAVE_SYMBOL__S_IREAD ) - SET (SYMBOL__S_IREAD "#define _S_IREAD 0333") -ENDIF ( NOT HAVE_SYMBOL__S_IREAD ) +IF (NOT HAVE_SYMBOL__S_IREAD) + SET(SYMBOL__S_IREAD "#define _S_IREAD 0333") +ENDIF (NOT HAVE_SYMBOL__S_IREAD) -IF ( NOT HAVE_SYMBOL__S_IWRITE ) - SET (SYMBOL__S_IWRITE "#define _S_IWRITE 0333") -ENDIF ( NOT HAVE_SYMBOL__S_IWRITE ) +IF (NOT HAVE_SYMBOL__S_IWRITE) + SET(SYMBOL__S_IWRITE "#define _S_IWRITE 0333") +ENDIF (NOT HAVE_SYMBOL__S_IWRITE) #try and figure out the actual value of what _CL_MAX_PATH is -DEFINE_MAXPATH_VALUE (SYMBOL_CL_MAX_PATH) +DEFINE_MAXPATH_VALUE(SYMBOL_CL_MAX_PATH) ######################################################################## # test for tchar replacments ######################################################################## -IF ( ENABLE_ASCII_MODE ) - CHOOSE_TYPE(TCHAR 1 "" "TCHAR;char" SYMBOL_TCHAR ) -ELSE ( ENABLE_ASCII_MODE ) - CHOOSE_TYPE(TCHAR -1 "" "TCHAR;wchar_t;unsigned short" SYMBOL_TCHAR) -ENDIF ( ENABLE_ASCII_MODE ) -IF ( NOT SYMBOL_TCHAR STREQUAL "TCHAR" ) - SET( SYMBOL_TCHAR "#define TCHAR ${SYMBOL_TCHAR}" ) -ELSE ( NOT SYMBOL_TCHAR STREQUAL "TCHAR" ) - SET( SYMBOL_TCHAR "/* #undef TCHAR */" ) -ENDIF ( NOT SYMBOL_TCHAR STREQUAL "TCHAR" ) - -CHOOSE_SYMBOL (_T "_T" SYMBOL__T) -IF ( NOT HAVE_SYMBOL__T ) -IF ( ENABLE_ASCII_MODE ) - SET (SYMBOL__T "#define _T(x) x") -ELSE ( ENABLE_ASCII_MODE ) - SET (SYMBOL__T "#define _T(x) L ## x") -ENDIF ( ENABLE_ASCII_MODE ) -ELSE ( NOT HAVE_SYMBOL__T ) - SET( SYMBOL__T "/* #undef _T */" ) -ENDIF ( NOT HAVE_SYMBOL__T ) +IF (ENABLE_ASCII_MODE) + CHOOSE_TYPE(TCHAR 1 "" "TCHAR;char" SYMBOL_TCHAR) +ELSE (ENABLE_ASCII_MODE) + CHOOSE_TYPE(TCHAR -1 "" "TCHAR;wchar_t;unsigned short" SYMBOL_TCHAR) +ENDIF (ENABLE_ASCII_MODE) +IF (NOT SYMBOL_TCHAR STREQUAL "TCHAR") + SET(SYMBOL_TCHAR "#define TCHAR ${SYMBOL_TCHAR}") +ELSE (NOT SYMBOL_TCHAR STREQUAL "TCHAR") + SET(SYMBOL_TCHAR "/* #undef TCHAR */") +ENDIF (NOT SYMBOL_TCHAR STREQUAL "TCHAR") + +CHOOSE_SYMBOL(_T "_T" SYMBOL__T) +IF (NOT HAVE_SYMBOL__T) + IF (ENABLE_ASCII_MODE) + SET(SYMBOL__T "#define _T(x) x") + ELSE (ENABLE_ASCII_MODE) + SET(SYMBOL__T "#define _T(x) L ## x") + ENDIF (ENABLE_ASCII_MODE) +ELSE (NOT HAVE_SYMBOL__T) + SET(SYMBOL__T "/* #undef _T */") +ENDIF (NOT HAVE_SYMBOL__T) ######################################################################## @@ -225,15 +215,15 @@ ENDIF ( NOT HAVE_SYMBOL__T ) ######################################################################## #check for pthreads -IF ( CMAKE_USE_WIN32_THREADS_INIT ) - SET ( _CL_HAVE_WIN32_THREADS 1 ) -ENDIF ( CMAKE_USE_WIN32_THREADS_INIT ) -IF ( CMAKE_USE_PTHREADS_INIT ) - SET ( _CL_HAVE_PTHREAD 1 ) +IF (CMAKE_USE_WIN32_THREADS_INIT) + SET(_CL_HAVE_WIN32_THREADS 1) +ENDIF (CMAKE_USE_WIN32_THREADS_INIT) +IF (CMAKE_USE_PTHREADS_INIT) + SET(_CL_HAVE_PTHREAD 1) ENDIF (CMAKE_USE_PTHREADS_INIT) -IF ( CMAKE_USE_SPROC_INIT OR CMAKE_HP_PTHREADS_INIT ) - MESSAGE(FATAL_ERROR "Threads library not implemented") -ENDIF( CMAKE_USE_SPROC_INIT OR CMAKE_HP_PTHREADS_INIT ) +IF (CMAKE_USE_SPROC_INIT OR CMAKE_HP_PTHREADS_INIT) + MESSAGE(FATAL_ERROR "Threads library not implemented") +ENDIF (CMAKE_USE_SPROC_INIT OR CMAKE_HP_PTHREADS_INIT) #define if we have pthreads with recursive capabilities CHECK_PTHREAD_RECURSIVE(_CL_HAVE_PTHREAD _CL_HAVE_PTHREAD_MUTEX_RECURSIVE) @@ -244,16 +234,16 @@ CHECK_HAVE_GCC_ATOMIC_FUNCTIONS(_CL_HAVE_GCC_ATOMIC_FUNCTIONS) MACRO_CHECK_GCC_VISIBILITY(_CL_HAVE_GCCVISIBILITYPATCH) #Check that we can handle try/catch -CHECK_HAVE_FUNCTION_TRY_BLOCKS (_CL_HAVE_TRY_BLOCKS) +CHECK_HAVE_FUNCTION_TRY_BLOCKS(_CL_HAVE_TRY_BLOCKS) #check that we support new float byte<->float conversions CHECK_FLOAT_BYTE_WORKS(_CL_HAVE_NO_FLOAT_BYTE, 1) #check how to use hashmaps -CHECK_HASH_MAPS (CL_NS_HASHING_VALUE LUCENE_DISABLE_HASHING) +CHECK_HASH_MAPS(CL_NS_HASHING_VALUE LUCENE_DISABLE_HASHING) #check that we have namespace support -CHECK_NAMESPACE (_CL_HAVE_NAMESPACES) +CHECK_NAMESPACE(_CL_HAVE_NAMESPACES) #check if snprintf functions are buggy CHECK_SNPRINTF() @@ -266,22 +256,22 @@ DEFINE_STATIC_SYNTAX() #test for ansi for scope (needed for msvc6) INCLUDE(TestForANSIForScope) -IF ( CMAKE_ANSI_FOR_SCOPE ) - SET ( CMAKE_ANSI_FOR_SCOPE 1 ) -ELSE ( CMAKE_ANSI_FOR_SCOPE ) - SET ( CMAKE_ANSI_FOR_SCOPE 0 ) -ENDIF ( CMAKE_ANSI_FOR_SCOPE ) +IF (CMAKE_ANSI_FOR_SCOPE) + SET(CMAKE_ANSI_FOR_SCOPE 1) +ELSE (CMAKE_ANSI_FOR_SCOPE) + SET(CMAKE_ANSI_FOR_SCOPE 0) +ENDIF (CMAKE_ANSI_FOR_SCOPE) #check that all these definitions are set, or fail... -MUSTDEFINE_VAR("HAVE_TYPE_INT8_T;HAVE_TYPE_UINT8_T;HAVE_TYPE_INT16_T;HAVE_TYPE_UINT16_T;HAVE_TYPE_UINT16_T;" ) +MUSTDEFINE_VAR("HAVE_TYPE_INT8_T;HAVE_TYPE_UINT8_T;HAVE_TYPE_INT16_T;HAVE_TYPE_UINT16_T;HAVE_TYPE_UINT16_T;") MUSTDEFINE_VAR("HAVE_TYPE_INT32_T;HAVE_TYPE_UINT32_T;HAVE_TYPE_INT64_T;HAVE_TYPE_UINT64_T;HAVE_TYPE_SIZE_T;HAVE_TYPE_CL_STAT_T") MUSTDEFINE_VAR("_CL_HAVE_TRY_BLOCKS") #must have timeb OR GETTIMEOFDAY -IF ( NOT HAVE_TYPE__TIMEB AND NOT _CL_HAVE_FUNCTION_GETTIMEOFDAY ) - MESSAGE( FATAL_ERROR "timeb or gettimeofday must be available." ) -ENDIF ( NOT HAVE_TYPE__TIMEB AND NOT _CL_HAVE_FUNCTION_GETTIMEOFDAY ) +IF (NOT HAVE_TYPE__TIMEB AND NOT _CL_HAVE_FUNCTION_GETTIMEOFDAY) + MESSAGE(FATAL_ERROR "timeb or gettimeofday must be available.") +ENDIF (NOT HAVE_TYPE__TIMEB AND NOT _CL_HAVE_FUNCTION_GETTIMEOFDAY) #now write out our configuration.... CONFIGURE_FILE(${clucene-shared_SOURCE_DIR}/CLucene/clucene-config.h.cmake ${clucene-shared_BINARY_DIR}/CLucene/clucene-config.h) @@ -294,32 +284,32 @@ SOURCE_GROUP("debug" ./CLucene/debug/*) SOURCE_GROUP("util" ./CLucene/util/*) SOURCE_GROUP("zlib" ./zlib/*) -MACRO (GET_SHARED_FILES result) - IF ( "" STREQUAL "${ARGV2}" ) - SET ( rel ${clucene-shared_SOURCE_DIR} ) - ELSE ( "" STREQUAL "${ARGV2}" ) - SET ( rel ${ARGV2} ) - ENDIF ( "" STREQUAL "${ARGV2}" ) - - SET(${result} - ${rel}/CLucene/SharedHeader.cpp - ${rel}/CLucene/config/gunichartables.cpp - ${rel}/CLucene/config/repl_tcslwr.cpp - ${rel}/CLucene/config/repl_tcstoll.cpp - ${rel}/CLucene/config/repl_tcscasecmp.cpp - ${rel}/CLucene/config/repl_tprintf.cpp - ${rel}/CLucene/config/repl_lltot.cpp - ${rel}/CLucene/config/repl_tcstod.cpp - ${rel}/CLucene/config/utf8.cpp - ${rel}/CLucene/config/threads.cpp - ${rel}/CLucene/debug/condition.cpp - ${rel}/CLucene/util/StringBuffer.cpp - ${rel}/CLucene/util/Misc.cpp +MACRO(GET_SHARED_FILES result) + IF ("" STREQUAL "${ARGV2}") + SET(rel ${clucene-shared_SOURCE_DIR}) + ELSE ("" STREQUAL "${ARGV2}") + SET(rel ${ARGV2}) + ENDIF ("" STREQUAL "${ARGV2}") + + SET(${result} + ${rel}/CLucene/SharedHeader.cpp + ${rel}/CLucene/config/gunichartables.cpp + ${rel}/CLucene/config/repl_tcslwr.cpp + ${rel}/CLucene/config/repl_tcstoll.cpp + ${rel}/CLucene/config/repl_tcscasecmp.cpp + ${rel}/CLucene/config/repl_tprintf.cpp + ${rel}/CLucene/config/repl_lltot.cpp + ${rel}/CLucene/config/repl_tcstod.cpp + ${rel}/CLucene/config/utf8.cpp + ${rel}/CLucene/config/threads.cpp + ${rel}/CLucene/debug/condition.cpp + ${rel}/CLucene/util/StringBuffer.cpp + ${rel}/CLucene/util/Misc.cpp ${rel}/CLucene/util/dirent.cpp - ) + ) - IF ( NOT ZLIB_FOUND ) - SET(${result} ${${result}} + IF (NOT ZLIB_FOUND) + SET(${result} ${${result}} ${clucene-ext_SOURCE_DIR}/zlib/adler32.c ${clucene-ext_SOURCE_DIR}/zlib/compress.c ${clucene-ext_SOURCE_DIR}/zlib/crc32.c @@ -330,46 +320,46 @@ MACRO (GET_SHARED_FILES result) ${clucene-ext_SOURCE_DIR}/zlib/inftrees.c ${clucene-ext_SOURCE_DIR}/zlib/trees.c ${clucene-ext_SOURCE_DIR}/zlib/zutil.c - ) - ENDIF ( NOT ZLIB_FOUND ) -ENDMACRO (GET_SHARED_FILES) + ) + ENDIF (NOT ZLIB_FOUND) +ENDMACRO(GET_SHARED_FILES) GET_SHARED_FILES(clucene_shared_Files ".") #find our headers file(GLOB_RECURSE HEADERS ${clucene-shared_SOURCE_DIR}/*.h) +IF (BUILD_SHARED_LIBRARIES) + add_library(clucene-shared SHARED + ${clucene_shared_Files} ${HEADERS} + ) + #set properties on the libraries + SET_TARGET_PROPERTIES(clucene-shared PROPERTIES + VERSION ${CLUCENE_VERSION} + SOVERSION ${CLUCENE_SOVERSION} + COMPILE_DEFINITIONS_DEBUG _DEBUG + ) + TARGET_LINK_LIBRARIES(clucene-shared ${CMAKE_THREAD_LIBS_INIT}) + IF (EXTRA_LIBS) + TARGET_LINK_LIBRARIES(clucene-shared ${EXTRA_LIBS}) + ENDIF (EXTRA_LIBS) + + install(TARGETS clucene-shared + DESTINATION ${LIB_DESTINATION} + COMPONENT development) +ENDIF (BUILD_SHARED_LIBRARIES) + +IF (BUILD_STATIC_LIBRARIES) + add_library(clucene-shared-static STATIC + ${clucene_shared_Files} ${HEADERS} + ) -add_library(clucene-shared SHARED - ${clucene_shared_Files} ${HEADERS} -) - -#set properties on the libraries -SET_TARGET_PROPERTIES(clucene-shared PROPERTIES - VERSION ${CLUCENE_VERSION} - SOVERSION ${CLUCENE_SOVERSION} - COMPILE_DEFINITIONS_DEBUG _DEBUG -) -TARGET_LINK_LIBRARIES(clucene-shared ${CMAKE_THREAD_LIBS_INIT}) -IF ( EXTRA_LIBS ) - TARGET_LINK_LIBRARIES(clucene-shared ${EXTRA_LIBS}) -ENDIF ( EXTRA_LIBS ) - -install(TARGETS clucene-shared - DESTINATION ${LIB_DESTINATION} - COMPONENT development ) - -IF ( BUILD_STATIC_LIBRARIES ) - add_library(clucene-shared-static STATIC - ${clucene_shared_Files} ${HEADERS} - ) - - SET_TARGET_PROPERTIES(clucene-shared-static PROPERTIES - VERSION ${CLUCENE_VERSION} - SOVERSION ${CLUCENE_SOVERSION} - COMPILE_DEFINITIONS_DEBUG _DEBUG - ) + SET_TARGET_PROPERTIES(clucene-shared-static PROPERTIES + VERSION ${CLUCENE_VERSION} + SOVERSION ${CLUCENE_SOVERSION} + COMPILE_DEFINITIONS_DEBUG _DEBUG + ) TARGET_LINK_LIBRARIES(clucene-shared-static ${CMAKE_THREAD_LIBS_INIT}) - install(TARGETS clucene-shared-static - DESTINATION ${LIB_DESTINATION} - COMPONENT runtime ) -ENDIF ( BUILD_STATIC_LIBRARIES ) + install(TARGETS clucene-shared-static + DESTINATION ${LIB_DESTINATION} + COMPONENT runtime) +ENDIF (BUILD_STATIC_LIBRARIES) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org