This is an automated email from the ASF dual-hosted git repository.
philo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-gluten.git
The following commit(s) were added to refs/heads/main by this push:
new b2ff2f552 [GLUTEN-7049][VL] Install lib stemmer through vcpkg (#7050)
b2ff2f552 is described below
commit b2ff2f55218707f01cdb014c03ed5079806f8537
Author: PHILO-HE <[email protected]>
AuthorDate: Thu Aug 29 08:56:29 2024 +0800
[GLUTEN-7049][VL] Install lib stemmer through vcpkg (#7050)
---
cpp/velox/CMakeLists.txt | 19 +++++++++++++++----
dev/vcpkg/ports/libstemmer/CMakeLists.txt | 22 ++++++++++++++++++++++
dev/vcpkg/ports/libstemmer/portfile.cmake | 24 ++++++++++++++++++++++++
dev/vcpkg/ports/libstemmer/vcpkg.json | 12 ++++++++++++
dev/vcpkg/vcpkg.json | 3 ++-
5 files changed, 75 insertions(+), 5 deletions(-)
diff --git a/cpp/velox/CMakeLists.txt b/cpp/velox/CMakeLists.txt
index 202863b2a..1d7e8548a 100644
--- a/cpp/velox/CMakeLists.txt
+++ b/cpp/velox/CMakeLists.txt
@@ -299,12 +299,22 @@ target_link_libraries(velox PUBLIC Folly::folly)
find_re2()
target_link_libraries(velox PUBLIC ${RE2_LIBRARY})
-import_library(external::stemmer
-
${VELOX_BUILD_PATH}/_deps/libstemmer/src/libstemmer/libstemmer.a)
-target_link_libraries(velox PUBLIC external::stemmer)
-
set(CMAKE_FIND_LIBRARY_SUFFIXES_BCK ${CMAKE_FIND_LIBRARY_SUFFIXES})
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+
+find_library(STEMMER_LIB NAMES libstemmer.a)
+if(STEMMER_LIB)
+ message(STATUS "Found stemmer: ${STEMMER_LIB}")
+ add_library(external::stemmer STATIC IMPORTED)
+ set_target_properties(external::stemmer PROPERTIES IMPORTED_LOCATION
+ ${STEMMER_LIB})
+else()
+ import_library(
+ external::stemmer
+ ${VELOX_BUILD_PATH}/_deps/libstemmer/src/libstemmer/libstemmer.a)
+endif()
+target_link_libraries(velox PUBLIC external::stemmer)
+
find_package(simdjson CONFIG)
if(simdjson_FOUND AND TARGET simdjson::simdjson)
target_link_libraries(velox PUBLIC simdjson::simdjson)
@@ -313,6 +323,7 @@ else()
${VELOX_BUILD_PATH}/_deps/simdjson-build/libsimdjson.a)
target_link_libraries(velox PUBLIC external::simdjson)
endif()
+
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_BCK})
if(BUILD_TESTS)
diff --git a/dev/vcpkg/ports/libstemmer/CMakeLists.txt
b/dev/vcpkg/ports/libstemmer/CMakeLists.txt
new file mode 100644
index 000000000..787bb26ec
--- /dev/null
+++ b/dev/vcpkg/ports/libstemmer/CMakeLists.txt
@@ -0,0 +1,22 @@
+cmake_minimum_required(VERSION 3.8.0)
+
+project(libstemmer)
+
+file(GLOB SNOWBALL_SOURCES
+ src_c/*.c
+ runtime/api.c
+ runtime/utilities.c
+ libstemmer/libstemmer.c
+)
+
+add_library(stemmer ${SNOWBALL_SOURCES})
+
+install(
+ TARGETS stemmer
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES include/libstemmer.h DESTINATION include)
+endif()
diff --git a/dev/vcpkg/ports/libstemmer/portfile.cmake
b/dev/vcpkg/ports/libstemmer/portfile.cmake
new file mode 100644
index 000000000..253027ad7
--- /dev/null
+++ b/dev/vcpkg/ports/libstemmer/portfile.cmake
@@ -0,0 +1,24 @@
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+string(SUBSTRING "${VERSION}" 5 -1 VERSION)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://snowballstem.org/dist/libstemmer_c-${VERSION}.tar.gz"
+ FILENAME "libstemmer_c-${VERSION}.tar.gz"
+ SHA512
a61a06a046a6a5e9ada12310653c71afb27b5833fa9e21992ba4bdf615255de991352186a8736d0156ed754248a0ffb7b7712e8d5ea16f75174d1c8ddd37ba4a
+)
+
+vcpkg_extract_source_archive(
+ SOURCE_PATH
+ ARCHIVE "${ARCHIVE}"
+)
+
+file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION
"${SOURCE_PATH}")
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON
+)
+
+vcpkg_cmake_install()
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
diff --git a/dev/vcpkg/ports/libstemmer/vcpkg.json
b/dev/vcpkg/ports/libstemmer/vcpkg.json
new file mode 100644
index 000000000..03e8275d0
--- /dev/null
+++ b/dev/vcpkg/ports/libstemmer/vcpkg.json
@@ -0,0 +1,12 @@
+{
+ "name": "libstemmer",
+ "version": "2021.2.2.0",
+ "description": "Snowball is a small string processing language designed for
creating stemming algorithms for use in Information Retrieval",
+ "homepage": "https://snowballstem.org/",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ }
+ ]
+}
diff --git a/dev/vcpkg/vcpkg.json b/dev/vcpkg/vcpkg.json
index 6eec2190d..618293ff6 100644
--- a/dev/vcpkg/vcpkg.json
+++ b/dev/vcpkg/vcpkg.json
@@ -52,7 +52,8 @@
"benchmark",
"jemalloc",
"icu",
- "thrift"
+ "thrift",
+ "libstemmer"
]
},
"velox-s3": {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]