74 lines
2.5 KiB
CMake
74 lines
2.5 KiB
CMake
function(download_simple_sentencepiece)
|
|
include(FetchContent)
|
|
|
|
set(simple-sentencepiece_URL "https://github.com/pkufool/simple-sentencepiece/archive/refs/tags/v0.7.tar.gz")
|
|
set(simple-sentencepiece_URL2 "https://hf-mirror.com/csukuangfj/sherpa-onnx-cmake-deps/resolve/main/simple-sentencepiece-0.7.tar.gz")
|
|
set(simple-sentencepiece_HASH "SHA256=1748a822060a35baa9f6609f84efc8eb54dc0e74b9ece3d82367b7119fdc75af")
|
|
|
|
# If you don't have access to the Internet,
|
|
# please pre-download simple-sentencepiece
|
|
set(possible_file_locations
|
|
$ENV{HOME}/Downloads/simple-sentencepiece-0.7.tar.gz
|
|
${CMAKE_SOURCE_DIR}/simple-sentencepiece-0.7.tar.gz
|
|
${CMAKE_BINARY_DIR}/simple-sentencepiece-0.7.tar.gz
|
|
/tmp/simple-sentencepiece-0.7.tar.gz
|
|
/star-fj/fangjun/download/github/simple-sentencepiece-0.7.tar.gz
|
|
)
|
|
|
|
foreach(f IN LISTS possible_file_locations)
|
|
if(EXISTS ${f})
|
|
set(simple-sentencepiece_URL "${f}")
|
|
file(TO_CMAKE_PATH "${simple-sentencepiece_URL}" simple-sentencepiece_URL)
|
|
message(STATUS "Found local downloaded simple-sentencepiece: ${simple-sentencepiece_URL}")
|
|
set(simple-sentencepiece_URL2)
|
|
break()
|
|
endif()
|
|
endforeach()
|
|
|
|
set(SBPE_ENABLE_TESTS OFF CACHE BOOL "" FORCE)
|
|
set(SBPE_BUILD_PYTHON OFF CACHE BOOL "" FORCE)
|
|
|
|
FetchContent_Declare(simple-sentencepiece
|
|
URL
|
|
${simple-sentencepiece_URL}
|
|
${simple-sentencepiece_URL2}
|
|
URL_HASH
|
|
${simple-sentencepiece_HASH}
|
|
)
|
|
|
|
FetchContent_GetProperties(simple-sentencepiece)
|
|
if(NOT simple-sentencepiece_POPULATED)
|
|
message(STATUS "Downloading simple-sentencepiece ${simple-sentencepiece_URL}")
|
|
FetchContent_Populate(simple-sentencepiece)
|
|
endif()
|
|
message(STATUS "simple-sentencepiece is downloaded to ${simple-sentencepiece_SOURCE_DIR}")
|
|
|
|
if(BUILD_SHARED_LIBS)
|
|
set(_build_shared_libs_bak ${BUILD_SHARED_LIBS})
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
endif()
|
|
|
|
add_subdirectory(${simple-sentencepiece_SOURCE_DIR} ${simple-sentencepiece_BINARY_DIR} EXCLUDE_FROM_ALL)
|
|
|
|
if(_build_shared_libs_bak)
|
|
set_target_properties(ssentencepiece_core
|
|
PROPERTIES
|
|
POSITION_INDEPENDENT_CODE ON
|
|
C_VISIBILITY_PRESET hidden
|
|
CXX_VISIBILITY_PRESET hidden
|
|
)
|
|
set(BUILD_SHARED_LIBS ON)
|
|
endif()
|
|
|
|
target_include_directories(ssentencepiece_core
|
|
PUBLIC
|
|
${simple-sentencepiece_SOURCE_DIR}/
|
|
)
|
|
|
|
if(NOT BUILD_SHARED_LIBS)
|
|
install(TARGETS ssentencepiece_core DESTINATION lib)
|
|
endif()
|
|
endfunction()
|
|
|
|
download_simple_sentencepiece()
|