Skip to content

Commit 47defc9

Browse files
authored
Merge pull request #22 from array2d/feat/install-cli
install: CLI 装到 <prefix>/bin
2 parents 1b79f6e + b7d4390 commit 47defc9

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

‎CMakeLists.txt‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,22 @@ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION ${CMAKE_INSTA
3838

3939
configure_file(kvspace.pc.in ${CMAKE_CURRENT_BINARY_DIR}/kvspace.pc @ONLY)
4040
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kvspace.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
41+
42+
# ── CLI(cli/ 独立 Cargo 项目)──────────────────────────────────────
43+
# 走本仓 dispatch 前端的 C ABI,故须在 kvspace 目标之后构建;
44+
# 安装到 <prefix>/bin(prefix 默认 /usr → /usr/bin,与 kvlang 的 CLI 一致)。
45+
find_program(CARGO_EXECUTABLE cargo)
46+
if(CARGO_EXECUTABLE)
47+
set(KVSPACE_CLI_BIN "${CMAKE_CURRENT_SOURCE_DIR}/cli/target/release/kvspace")
48+
add_custom_target(kvspace-cli ALL
49+
COMMAND ${CMAKE_COMMAND} -E env
50+
"RUSTFLAGS=-L native=$<TARGET_FILE_DIR:kvspace>"
51+
"${CARGO_EXECUTABLE}" build --release
52+
--manifest-path "${CMAKE_CURRENT_SOURCE_DIR}/cli/Cargo.toml"
53+
BYPRODUCTS "${KVSPACE_CLI_BIN}"
54+
DEPENDS kvspace
55+
COMMENT "构建 kvspace CLI(cli/)")
56+
install(PROGRAMS "${KVSPACE_CLI_BIN}" DESTINATION ${CMAKE_INSTALL_BINDIR})
57+
else()
58+
message(STATUS "未找到 cargo,跳过 kvspace CLI(cli/)")
59+
endif()

0 commit comments

Comments
 (0)