@@ -124,6 +124,30 @@ else()
124124 endif ()
125125endif ()
126126
127+ if (DEFINED ENV{PAIMON_LIMONP_URL})
128+ set (LIMONP_SOURCE_URL "$ENV{PAIMON_LIMONP_URL} " )
129+ else ()
130+ if (EXISTS "${THIRDPARTY_DIR} /${PAIMON_LIMONP_PKG_NAME} " )
131+ set_urls (LIMONP_SOURCE_URL "${THIRDPARTY_DIR} /${PAIMON_LIMONP_PKG_NAME} " )
132+ else ()
133+ set_urls (LIMONP_SOURCE_URL
134+ "${THIRDPARTY_MIRROR_URL} https://github.com/yanyiwu/limonp/archive/refs/tags/${PAIMON_LIMONP_PKG_NAME} "
135+ )
136+ endif ()
137+ endif ()
138+
139+ if (DEFINED ENV{PAIMON_JIEBA_URL})
140+ set (JIEBA_SOURCE_URL "$ENV{PAIMON_JIEBA_URL} " )
141+ else ()
142+ if (EXISTS "${THIRDPARTY_DIR} /${PAIMON_JIEBA_PKG_NAME} " )
143+ set_urls (JIEBA_SOURCE_URL "${THIRDPARTY_DIR} /${PAIMON_JIEBA_PKG_NAME} " )
144+ else ()
145+ set_urls (JIEBA_SOURCE_URL
146+ "${THIRDPARTY_MIRROR_URL} https://github.com/yanyiwu/cppjieba/archive/refs/tags/${PAIMON_JIEBA_PKG_NAME} "
147+ )
148+ endif ()
149+ endif ()
150+
127151if (DEFINED ENV{PAIMON_GLOG_URL})
128152 set (GLOG_SOURCE_URL "$ENV{PAIMON_GLOG_URL} " )
129153else ()
@@ -289,6 +313,10 @@ set(EP_COMMON_CMAKE_ARGS
289313
290314macro (build_lucene )
291315 message (STATUS "Building lucene from source" )
316+
317+ get_target_property (LUCENE_ZLIB_INCLUDE_DIR zlib INTERFACE_INCLUDE_DIRECTORIES )
318+ get_filename_component (LUCENE_ZLIB_ROOT "${LUCENE_ZLIB_INCLUDE_DIR} " DIRECTORY )
319+
292320 set (LUCENE_PREFIX "${CMAKE_CURRENT_BINARY_DIR} /lucene_ep-install" )
293321 set (LUCENE_CMAKE_ARGS
294322 ${EP_COMMON_CMAKE_ARGS}
@@ -302,6 +330,9 @@ macro(build_lucene)
302330 "-DBOOST_ROOT=${BOOST_INSTALL} "
303331 "-DBoost_CHRONO_FOUND=TRUE"
304332 "-DBoost_THREAD_FOUND=TRUE"
333+ "-DZLIB_INCLUDE_DIRS=${ZLIB_INCLUDE_DIR} "
334+ "-DZLIB_LIBRARY_RELEASE=${ZLIB_LIBRARIES} "
335+ "-DZLIB_ROOT=${LUCENE_ZLIB_ROOT} "
305336 "-DCMAKE_INSTALL_PREFIX=${LUCENE_PREFIX} " )
306337
307338 set (LUCENE_LIB "${LUCENE_PREFIX} /lib/liblucene++.a" )
@@ -311,7 +342,8 @@ macro(build_lucene)
311342 URL_HASH "SHA256=${PAIMON_LUCENE_BUILD_SHA256_CHECKSUM} "
312343 CMAKE_ARGS ${LUCENE_CMAKE_ARGS}
313344 BUILD_BYPRODUCTS ${LUCENE_LIB}
314- DEPENDS boost_date_time
345+ DEPENDS zlib
346+ boost_date_time
315347 boost_filesystem
316348 boost_regex
317349 boost_thread
@@ -331,7 +363,8 @@ macro(build_lucene)
331363 "${LUCENE_INCLUDE_DIR} " )
332364
333365 target_link_libraries (lucene
334- INTERFACE boost_date_time
366+ INTERFACE zlib
367+ boost_date_time
335368 boost_filesystem
336369 boost_regex
337370 boost_thread
@@ -345,6 +378,13 @@ macro(build_lucene)
345378endmacro ()
346379
347380macro (build_jieba )
381+ message (STATUS "Building limonp from source" )
382+ set (LIMONP_PREFIX "${CMAKE_CURRENT_BINARY_DIR} /limonp_ep-prefix" )
383+ externalproject_add (limonp_ep
384+ URL ${LIMONP_SOURCE_URL}
385+ URL_HASH "SHA256=${PAIMON_LIMONP_BUILD_SHA256_CHECKSUM} "
386+ INSTALL_COMMAND "" )
387+
348388 message (STATUS "Building jieba from source" )
349389 set (JIEBA_PREFIX "${CMAKE_CURRENT_BINARY_DIR} /jieba_ep-prefix" )
350390 set (JIEBA_INSTALL "${CMAKE_CURRENT_BINARY_DIR} /jieba_ep-install" )
@@ -360,24 +400,22 @@ macro(build_jieba)
360400 set (PATCH_FILE "${CMAKE_CURRENT_LIST_DIR} /jieba.diff" )
361401 externalproject_add (jieba_ep
362402 ${EP_COMMON_OPTIONS}
363- GIT_REPOSITORY https://github.com/yanyiwu/cppjieba.git
364- GIT_TAG ${PAIMON_JIEBA_BUILD_VERSION}
365- GIT_SHALLOW FALSE
366- GIT_PROGRESS TRUE
367- GIT_SUBMODULES_RECURSE TRUE
403+ URL ${JIEBA_SOURCE_URL}
404+ URL_HASH "SHA256=${PAIMON_JIEBA_BUILD_SHA256_CHECKSUM} "
368405 CMAKE_ARGS ${JIEBA_CMAKE_ARGS}
369406 LOG_PATCH ON
370407 PATCH_COMMAND ${CMAKE_COMMAND} -E chdir <SOURCE_DIR > bash -c
371408 "[ -f .patched ] && echo '<SOURCE_DIR> patch already applied, ignore...' || patch -s -N -p1 -i '${PATCH_FILE} ' && touch .patched"
372409 INSTALL_COMMAND bash -c
373- "cp -r ${JIEBA_PREFIX} /src/jieba_ep/include/* ${JIEBA_INSTALL} /include/ && cp -r ${JIEBA_PREFIX} /src/jieba_ep/dict/* ${JIEBA_INSTALL} /dict/ && cp -r ${JIEBA_PREFIX } /src/jieba_ep/deps/limonp /include/* ${JIEBA_INSTALL} /include/"
410+ "cp -r ${JIEBA_PREFIX} /src/jieba_ep/include/* ${JIEBA_INSTALL} /include/ && cp -r ${JIEBA_PREFIX} /src/jieba_ep/dict/* ${JIEBA_INSTALL} /dict/ && cp -r ${LIMONP_PREFIX } /src/limonp_ep /include/* ${JIEBA_INSTALL} /include/"
374411 )
375412
376413 # The include directory must exist before it is referenced by a target.
377414 include_directories (SYSTEM ${JIEBA_INCLUDE_DIR} ${JIEBA_DICT_DIR} )
378415 add_library (jieba INTERFACE IMPORTED )
379416 target_include_directories (jieba SYSTEM
380417 INTERFACE "${JIEBA_INCLUDE_DIR} ${JIEBA_DICT_DIR} " )
418+ add_dependencies (jieba_ep limonp_ep )
381419 add_dependencies (jieba jieba_ep )
382420endmacro ()
383421
@@ -468,11 +506,8 @@ macro(build_boost)
468506 ${BOOST_LIBRARY_DIR} /libboost_iostreams.a)
469507
470508 externalproject_add (boost_ep
471- GIT_REPOSITORY https://github.com/boostorg/boost.git
472- GIT_TAG boost-${PAIMON_BOOST_BUILD_VERSION}
473- GIT_SHALLOW FALSE
474- GIT_PROGRESS TRUE
475- GIT_SUBMODULES_RECURSE TRUE
509+ URL "${THIRDPARTY_DIR} /boost/${PAIMON_BOOST_PKG_NAME} "
510+ URL_HASH "SHA256=${PAIMON_BOOST_BUILD_SHA256_CHECKSUM} "
476511 CONFIGURE_COMMAND ${BOOST_PREFIX} /src/boost_ep/bootstrap.sh
477512 --with-libraries=date_time,filesystem,iostreams,regex,system ,thread,chrono,atomic
478513 BUILD_IN_SOURCE TRUE
0 commit comments