Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
0860ea4
feat: 将UbDiag源码作为新增submodule添加至extern路径,保持架构与所有submodule统一
Jun 12, 2026
97fb8ac
feat: 新增UbDiag mock,用户未装UbDiag时自动回落空操作mock,避免硬依赖导致编译阻断
Jun 12, 2026
e192e68
docs: 新增Mooncake集成UbDiag说明文档,覆盖四种集成场景与速查表
Jun 12, 2026
af0244e
fix: 修复FindUbDiag.cmake两个bug并通过Ubuntu22.04三层验证,pre-commit格式化合规
Jun 12, 2026
c336c76
adapt: 测试机路径调整为独立工作目录, 调整端口避免冲突进程
Jun 13, 2026
f5264c9
build: aarch64 编译日志
Jun 13, 2026
95d127a
log:client 启动日志
Jun 14, 2026
2437074
log: cmake_ub.log 输出
Jun 14, 2026
1fa31f0
log: client 启动日志
Jun 14, 2026
3fbcb1a
log: client 重启后日志
Jun 14, 2026
3a3f59a
log: master 状态与日志
Jun 14, 2026
bbc6747
fix: USE_UB define 从全局改为 transfer_engine target 级,避免 mooncake-store/m…
Jun 14, 2026
a73120a
Merge branch 'supercache_dev_withscript' of https://github.com/qinyuf…
Jun 14, 2026
9b57c69
chore: 更新 ubdiag submodule 到 master 最新 (9a03cd3),同步 DestroyShm 修复
Jun 15, 2026
5b6693a
feat: 补强 write.sh/read.sh summary + 新增 verify_3layers.sh 一键三层全验
Jun 15, 2026
31d73fd
chore: 更新extern/ubdiag子模块,包含probeDone_快速路径修复
Jun 15, 2026
32a141e
chore: 更新extern/ubdiag子模块,包含probeDone_快速路径修复
Jun 15, 2026
1f305dc
修复:移除 common.cmake 中全局 USE_UB 宏定义,改为仅在 transfer_engine target 级别定义,避免…
Jun 16, 2026
9539a38
修复:run_mooncake_store_master.sh 去重default_kv_lease_ttl并添加global_file_…
Jun 16, 2026
4e51dd8
修复:FindUbDiag.cmake L2限制仅搜系统标准路径避免误匹配用户目录;verify_3layers.sh L2简化为使用系统…
Jun 16, 2026
f8c742e
修复:FindUbDiag.cmake L2限制仅搜系统标准路径避免误匹配用户目录和注册表
Jun 16, 2026
4a27f18
更新ubdiag子模块分支指向fix/shm-probe-fastpath以包含probeDone_补全
Jun 16, 2026
3fe6c1d
更新ubdiag子模块分支指向fix/shm-probe-fastpath以包含probeDone_补全
Jun 16, 2026
f483cfe
修复:FindUbDiag.cmake L2改用NO_DEFAULT_PATH+显式PATHS防止递归搜索_BAK目录
Jun 17, 2026
514d0a2
修复:FindUbDiag.cmake L2改用NO_DEFAULT_PATH+显式PATHS防止递归搜索BAK目录;verify脚本L2…
Jun 17, 2026
dd23f1f
修复:common.cmake添加-Wno-error=maybe-uninitialized避免GCC12误杀yalantinglibs
Jun 17, 2026
d8ab127
修复:common.cmake添加-Wno-error=maybe-uninitialized避免GCC12误杀yalantinglibs
Jun 17, 2026
77fa215
修复:verify脚本make改用-j106避免308核时OOM崩溃
Jun 17, 2026
ef7ac5e
修复:verify脚本层间添加drop_caches释放pagecache防止L1/L2benchmark后L2/L3编译OOM
Jun 17, 2026
24ddd1b
重构:L2恢复ubdiag源码编译作为缓冲步骤自然释放pagecache,去掉所有drop_caches hack
Jun 17, 2026
fcc8690
修复:config.cpp删除static init阶段的InitGoogleLogging防止double init崩溃,master/…
Jun 17, 2026
50e19d4
修复:config.cpp删除static init阶段的InitGoogleLogging防止double init崩溃,master/…
Jun 17, 2026
9b9987d
修复:master脚本global_file_segment_size从INT64_MAX改为1GB避免溢出,verify脚本加segme…
Jun 17, 2026
3e648e7
fix(script): 适配测试环境 ubcore 设备、修复 L2 buffer 编译与 L3 mock 误匹配
Jun 21, 2026
2b6bc35
docs: 补充UbDiag PerfPoint集成使用场景与约束说明
Jun 22, 2026
10ddac8
Merge remote-tracking branch 'origin/supercache_dev_extern&mock' into…
Jun 22, 2026
0c2c63f
fix(cmake): FindUbDiag.cmake Layer1 和 Layer3 分支加 else 显式互斥,避免跨作用域 ali…
Jun 22, 2026
d2bfaa3
chore: 清理中间日志和测试脚本,仅保留三层分发源代码
qinyufei63 Jun 23, 2026
286d1db
更新 UbDiag 子模块到 CSV 导出版本
qinyufei63 Jul 7, 2026
3f5599b
支持 L2 系统 UbDiag CLI 打包
qinyufei63 Jul 7, 2026
7ad11d5
补齐 L1 UbDiag CLI 同步构建
qinyufei63 Jul 7, 2026
3531dc3
打包 Mooncake RPM 内置 UbDiag 运行态
qinyufei63 Jul 7, 2026
9efcc4c
打开 UbDiag P99 与 PerfLog 能力
qinyufei63 Jul 7, 2026
ff2f72d
fix(ubdiag): 为 ubdiag_logger 目标添加包含目录
yyyuanhao426-hash Jul 14, 2026
7535540
feat(p2p-store): 支持通过MOONCAKE_UBDIAG_ACTIVE_LAYER指定UbDiag链接方式
yyyuanhao426-hash Jul 14, 2026
6f6c9ad
chore(ubdiag): 更新 submodule 指针
yyyuanhao426-hash Jul 15, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,7 @@
path = extern/yalantinglibs
url = https://github.com/alibaba/yalantinglibs.git
branch = v0.5.7
[submodule "extern/ubdiag"]
path = extern/ubdiag
url = https://atomgit.com/liusiyu60/ubdiag
branch = fix/shm-probe-fastpath
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -350,6 +350,23 @@ make -j
```


<h2 id="ubdiag">📊 UbDiag PerfPoint 集成</h2>

Mooncake 通过 UbDiag SDK 支持 PerfPoint 性能打点,编译期自动通过三层分发(submodule / 系统包 / header-only mock)解析。使用前需先安装 ubdiag。

**使用场景**:

| 场景 | 操作 | 结果 |
|---|---|---|
| 需要打点 | `ubdiag start` → 启动 Mooncake | SHM 已存在,PerfPoint 正常打点 |
| 不需要打点 | 直接启动 Mooncake | SDK 探测一次 SHM 不存在,后续全跳过,程序正常跑 |
| 不需要打点但中途又想打点 | 重启 Mooncake(或程序内调 `Shutdown()` → `Init()`) | probeDone 标记归零,重新探测 SHM |

> **注意**:Mooncake 启动后再执行 `ubdiag start`,已经在跑的 Mooncake 进程**不会自动感知**。必须重启进程,或在程序内调用 `PerfManager::Instance().Shutdown()` 后再 `Init(config)`。`ubdiag restart` 操作的是 SHM,不影响进程内部已缓存的探测结果。

详见 [UbDiag 文档](https://atomgit.com/liusiyu60/ubdiag)。


<h2 id="milestones"> 🛣️ Incoming Milestones</h2>

- [x] First release of Mooncake and integrate with latest vLLM
Expand Down
1 change: 1 addition & 0 deletions extern/ubdiag
Submodule ubdiag added at 7deea5
239 changes: 239 additions & 0 deletions mooncake-common/FindUbDiag.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,239 @@
# FindUbDiag.cmake Resolves UbDiag::ubdiag_lib with a three-layer fallback: 1.
# Submodule (extern/ubdiag) — add_subdirectory if present 2. System package —
# find_package(UbDiag QUIET) 3. Mock header — mooncake-common/ubdiag-mock/
# (no-op PerfPoint)
#
# Usage: include(${CMAKE_SOURCE_DIR}/mooncake-common/FindUbDiag.cmake)
# target_link_libraries(your_target PRIVATE UbDiag::ubdiag_lib)

if(TARGET UbDiag::ubdiag_lib)
return()
endif()

option(MOONCAKE_UBDIAG_BUILD_CLI
"Enable UbDiag CLI integration for vendored or system UbDiag" ON)
option(MOONCAKE_UBDIAG_L1_SHARED
"Build vendored UbDiag as libubdiag.so so Mooncake and the CLI use one SDK" ON)
option(MOONCAKE_UBDIAG_ENABLE_PERCENTILE
"Enable vendored UbDiag P99/P999/P9999 percentile calculation for Mooncake PerfPoint" ON)
option(MOONCAKE_UBDIAG_ENABLE_PERFLOG
"Enable vendored UbDiag PerfLog timestamp logging for Mooncake PerfPoint" ON)
option(MOONCAKE_UBDIAG_PERFPOINT_ONLY
"Disable vendored UbDiag OB/MemPoint/CachePoint extensions; keep Mooncake PerfPoint/P99/PerfLog/CSV" ON)
option(MOONCAKE_UBDIAG_DISABLE_SYSTEM
"Skip Layer 2 system-package lookup, used only for forced mock verification" OFF)

function(_mooncake_ubdiag_write_rpm_manifest layer cli_path library_path config_path)
set(_manifest "${CMAKE_BINARY_DIR}/mooncake_ubdiag_rpm.env")
file(WRITE "${_manifest}" "MOONCAKE_UBDIAG_LAYER=${layer}\n")
file(APPEND "${_manifest}" "MOONCAKE_UBDIAG_CLI_PATH=${cli_path}\n")
file(APPEND "${_manifest}" "MOONCAKE_UBDIAG_LIBRARY_PATH=${library_path}\n")
file(APPEND "${_manifest}" "MOONCAKE_UBDIAG_CONFIG_PATH=${config_path}\n")
set(MOONCAKE_UBDIAG_RPM_MANIFEST "${_manifest}"
CACHE FILEPATH "UbDiag RPM packaging manifest generated by Mooncake" FORCE)
set(MOONCAKE_UBDIAG_ACTIVE_LAYER "${layer}"
CACHE STRING "Active UbDiag integration layer: submodule, system, or mock" FORCE)
endfunction()

function(_mooncake_ubdiag_get_imported_location target out_var)
set(_location_props IMPORTED_LOCATION IMPORTED_LOCATION_NOCONFIG)
get_target_property(_configs ${target} IMPORTED_CONFIGURATIONS)
if(NOT _configs OR _configs MATCHES "-NOTFOUND$")
set(_configs)
endif()
foreach(_config IN LISTS _configs)
string(TOUPPER "${_config}" _config_upper)
list(APPEND _location_props "IMPORTED_LOCATION_${_config_upper}")
endforeach()
list(APPEND _location_props
IMPORTED_LOCATION_RELEASE
IMPORTED_LOCATION_RELWITHDEBINFO
IMPORTED_LOCATION_MINSIZEREL
IMPORTED_LOCATION_DEBUG)

foreach(_prop IN LISTS _location_props)
get_target_property(_location ${target} ${_prop})
if(_location AND NOT _location MATCHES "-NOTFOUND$")
set(${out_var} "${_location}" PARENT_SCOPE)
return()
endif()
endforeach()

set(${out_var} "" PARENT_SCOPE)
endfunction()

# Layer 1: Submodule (same pattern as extern/pybind11). UbDiag's generic
# BUILD_TESTS / BUILD_EXAMPLES default to ON and collide with Mooncake option
# names, so temporarily narrow them only while adding the submodule.
if(EXISTS "${CMAKE_SOURCE_DIR}/extern/ubdiag/CMakeLists.txt")
set(_MOONCAKE_UBDIAG_SAVED_BUILD_EXAMPLES "${BUILD_EXAMPLES}")
set(_MOONCAKE_UBDIAG_HAD_BUILD_EXAMPLES_CACHE FALSE)
if(DEFINED CACHE{BUILD_EXAMPLES})
set(_MOONCAKE_UBDIAG_HAD_BUILD_EXAMPLES_CACHE TRUE)
get_property(_MOONCAKE_UBDIAG_BUILD_EXAMPLES_HELP CACHE BUILD_EXAMPLES PROPERTY HELPSTRING)
endif()
set(_MOONCAKE_UBDIAG_SAVED_BUILD_TESTS "${BUILD_TESTS}")
set(_MOONCAKE_UBDIAG_HAD_BUILD_TESTS_CACHE FALSE)
if(DEFINED CACHE{BUILD_TESTS})
set(_MOONCAKE_UBDIAG_HAD_BUILD_TESTS_CACHE TRUE)
get_property(_MOONCAKE_UBDIAG_BUILD_TESTS_HELP CACHE BUILD_TESTS PROPERTY HELPSTRING)
endif()
set(BUILD_EXAMPLES OFF)
set(BUILD_EXAMPLES OFF CACHE BOOL "Disable UbDiag examples when vendored by Mooncake" FORCE)
set(BUILD_TESTS OFF)
set(BUILD_TESTS OFF CACHE BOOL "Disable UbDiag tests when vendored by Mooncake" FORCE)
if(MOONCAKE_UBDIAG_L1_SHARED)
set(UBDIAG_BUILD_SHARED ON CACHE BOOL "Build vendored UbDiag as a shared library" FORCE)
endif()
if(MOONCAKE_UBDIAG_ENABLE_PERCENTILE)
set(ENABLE_PERCENTILE ON CACHE BOOL "Enable vendored UbDiag percentile calculation" FORCE)
endif()
if(MOONCAKE_UBDIAG_ENABLE_PERFLOG)
set(ENABLE_PERFLOG ON CACHE BOOL "Enable vendored UbDiag PerfLog support" FORCE)
endif()
if(MOONCAKE_UBDIAG_PERFPOINT_ONLY)
set(ENABLE_OB_MEMORY OFF CACHE BOOL "Disable vendored UbDiag eBPF memory observation" FORCE)
set(ENABLE_OB_CACHE OFF CACHE BOOL "Disable vendored UbDiag cache observation" FORCE)
set(ENABLE_MEMPOINT OFF CACHE BOOL "Disable vendored UbDiag MemPoint observation" FORCE)
set(UBDIAG_ENABLE_CACHEPOINT OFF CACHE BOOL "Disable vendored UbDiag CachePoint observation" FORCE)
endif()

add_subdirectory(${CMAKE_SOURCE_DIR}/extern/ubdiag
${CMAKE_BINARY_DIR}/extern/ubdiag_build EXCLUDE_FROM_ALL)

if(_MOONCAKE_UBDIAG_HAD_BUILD_EXAMPLES_CACHE)
set(BUILD_EXAMPLES "${_MOONCAKE_UBDIAG_SAVED_BUILD_EXAMPLES}"
CACHE BOOL "${_MOONCAKE_UBDIAG_BUILD_EXAMPLES_HELP}" FORCE)
else()
unset(BUILD_EXAMPLES CACHE)
endif()
set(BUILD_EXAMPLES "${_MOONCAKE_UBDIAG_SAVED_BUILD_EXAMPLES}")
if(_MOONCAKE_UBDIAG_HAD_BUILD_TESTS_CACHE)
set(BUILD_TESTS "${_MOONCAKE_UBDIAG_SAVED_BUILD_TESTS}"
CACHE BOOL "${_MOONCAKE_UBDIAG_BUILD_TESTS_HELP}" FORCE)
else()
unset(BUILD_TESTS CACHE)
endif()
set(BUILD_TESTS "${_MOONCAKE_UBDIAG_SAVED_BUILD_TESTS}")

if(TARGET ubdiag_lib)
set(_MOONCAKE_UBDIAG_SOURCE_DIR "${CMAKE_SOURCE_DIR}/extern/ubdiag")
# ubdiag's CMake uses CMAKE_SOURCE_DIR instead of CMAKE_CURRENT_SOURCE_DIR
# for its include paths. When consumed via add_subdirectory from Mooncake,
# CMAKE_SOURCE_DIR points to Mooncake's root, not ubdiag's. Fix it here.
target_include_directories(ubdiag_lib PUBLIC
$<BUILD_INTERFACE:${_MOONCAKE_UBDIAG_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>)

foreach(_MOONCAKE_UBDIAG_LIB_TARGET
ubdiag_logger ubdiag_manager_lib ubdiag_runtime_lib ubdiag_bpf_loader)
if(TARGET ${_MOONCAKE_UBDIAG_LIB_TARGET})
target_include_directories(${_MOONCAKE_UBDIAG_LIB_TARGET} PUBLIC
$<BUILD_INTERFACE:${_MOONCAKE_UBDIAG_SOURCE_DIR}/include>
$<BUILD_INTERFACE:${_MOONCAKE_UBDIAG_SOURCE_DIR}/src>)
endif()
endforeach()

if(TARGET ubdiag)
target_include_directories(ubdiag PRIVATE
${_MOONCAKE_UBDIAG_SOURCE_DIR}/include
${_MOONCAKE_UBDIAG_SOURCE_DIR}/src
${_MOONCAKE_UBDIAG_SOURCE_DIR}/src/cli)
if(MOONCAKE_UBDIAG_BUILD_CLI AND NOT TARGET mooncake_ubdiag_cli)
add_custom_target(mooncake_ubdiag_cli ALL DEPENDS ubdiag)
endif()
elseif(MOONCAKE_UBDIAG_BUILD_CLI)
message(WARNING "UbDiag: extern/ubdiag does not define the ubdiag CLI target")
endif()

add_library(UbDiag::ubdiag_lib ALIAS ubdiag_lib)
_mooncake_ubdiag_write_rpm_manifest(
"submodule"
"${CMAKE_BINARY_DIR}/extern/ubdiag_build/src/cli/ubdiag"
"${CMAKE_BINARY_DIR}/extern/ubdiag_build/src/sdk/libubdiag.so"
"${CMAKE_SOURCE_DIR}/extern/ubdiag/config/ubdiag.conf.example")
message(STATUS "UbDiag: using submodule (extern/ubdiag, CLI=${MOONCAKE_UBDIAG_BUILD_CLI})")
return()
endif()
endif()

# Layer 2: System package — only search standard system library paths
# Using NO_DEFAULT_PATH + explicit PATHS to prevent cmake from recursively
# searching CMAKE_SYSTEM_PREFIX_PATH subdirectories (e.g., UbDiag_bak, build artifacts)
if(NOT MOONCAKE_UBDIAG_DISABLE_SYSTEM)
find_package(UbDiag QUIET
NO_DEFAULT_PATH
PATHS
/usr/lib64/cmake
/usr/local/lib64/cmake
/usr/lib/cmake
/usr/local/lib/cmake)
if(TARGET UbDiag::ubdiag_lib)
_mooncake_ubdiag_get_imported_location(UbDiag::ubdiag_lib _MOONCAKE_UBDIAG_SYSTEM_LIBRARY)

set(_MOONCAKE_UBDIAG_CLI_HINTS)
set(_MOONCAKE_UBDIAG_CONFIG_HINTS)
if(_MOONCAKE_UBDIAG_SYSTEM_LIBRARY)
get_filename_component(_MOONCAKE_UBDIAG_SYSTEM_LIB_DIR
"${_MOONCAKE_UBDIAG_SYSTEM_LIBRARY}" DIRECTORY)
get_filename_component(_MOONCAKE_UBDIAG_SYSTEM_PREFIX
"${_MOONCAKE_UBDIAG_SYSTEM_LIB_DIR}/.." ABSOLUTE)
list(APPEND _MOONCAKE_UBDIAG_CLI_HINTS
"${_MOONCAKE_UBDIAG_SYSTEM_PREFIX}/bin")
list(APPEND _MOONCAKE_UBDIAG_CONFIG_HINTS
"${_MOONCAKE_UBDIAG_SYSTEM_PREFIX}/etc/ubdiag")
endif()

find_program(MOONCAKE_UBDIAG_SYSTEM_CLI
NAMES ubdiag
HINTS ${_MOONCAKE_UBDIAG_CLI_HINTS}
PATHS /usr/bin /usr/local/bin
NO_DEFAULT_PATH)
if(MOONCAKE_UBDIAG_SYSTEM_CLI
AND NOT MOONCAKE_UBDIAG_SYSTEM_CLI MATCHES "-NOTFOUND$")
set(_MOONCAKE_UBDIAG_SYSTEM_CLI "${MOONCAKE_UBDIAG_SYSTEM_CLI}")
if(MOONCAKE_UBDIAG_BUILD_CLI AND NOT TARGET UbDiag::ubdiag_cli)
add_executable(UbDiag::ubdiag_cli IMPORTED GLOBAL)
set_target_properties(UbDiag::ubdiag_cli PROPERTIES
IMPORTED_LOCATION "${_MOONCAKE_UBDIAG_SYSTEM_CLI}")
endif()
if(MOONCAKE_UBDIAG_BUILD_CLI AND NOT TARGET mooncake_ubdiag_cli)
add_custom_target(mooncake_ubdiag_cli ALL
DEPENDS "${_MOONCAKE_UBDIAG_SYSTEM_CLI}")
endif()
else()
set(_MOONCAKE_UBDIAG_SYSTEM_CLI "")
if(MOONCAKE_UBDIAG_BUILD_CLI)
message(WARNING "UbDiag: system package found, but ubdiag CLI was not found under standard system paths")
endif()
endif()

find_file(MOONCAKE_UBDIAG_SYSTEM_CONFIG
NAMES ubdiag.conf
HINTS ${_MOONCAKE_UBDIAG_CONFIG_HINTS}
PATHS /etc/ubdiag /usr/local/etc/ubdiag
NO_DEFAULT_PATH)
if(MOONCAKE_UBDIAG_SYSTEM_CONFIG
AND NOT MOONCAKE_UBDIAG_SYSTEM_CONFIG MATCHES "-NOTFOUND$")
set(_MOONCAKE_UBDIAG_SYSTEM_CONFIG "${MOONCAKE_UBDIAG_SYSTEM_CONFIG}")
else()
set(_MOONCAKE_UBDIAG_SYSTEM_CONFIG "")
endif()

_mooncake_ubdiag_write_rpm_manifest(
"system"
"${_MOONCAKE_UBDIAG_SYSTEM_CLI}"
"${_MOONCAKE_UBDIAG_SYSTEM_LIBRARY}"
"${_MOONCAKE_UBDIAG_SYSTEM_CONFIG}")
message(STATUS "UbDiag: using system package (CLI=${_MOONCAKE_UBDIAG_SYSTEM_CLI})")
return()
endif()
endif()

# Layer 3: Mock fallback (no-op PerfPoint, guarantees compilation)
add_library(ubdiag_mock INTERFACE)
target_include_directories(
ubdiag_mock INTERFACE ${CMAKE_SOURCE_DIR}/mooncake-common/ubdiag-mock)
add_library(UbDiag::ubdiag_lib ALIAS ubdiag_mock)
_mooncake_ubdiag_write_rpm_manifest("mock" "" "" "")
message(STATUS "UbDiag: using mock (no-op PerfPoint)")
3 changes: 1 addition & 2 deletions mooncake-common/common.cmake
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_STANDARD 20)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wextra -Wno-unused-parameter -fPIC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -Wextra -Wno-unused-parameter -Wno-error=maybe-uninitialized -fPIC")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall -Wextra -Wno-unused-parameter -fPIC")

if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
Expand Down Expand Up @@ -80,7 +80,6 @@ option(USE_EFA "option for using AWS EFA transport" OFF)
option(USE_UB "option for using UB protocol transport" OFF)

if (USE_UB)
add_compile_definitions(USE_UB)
message(STATUS "ub transport is enabled")
include(${CMAKE_CURRENT_LIST_DIR}/FindUrma.cmake)
endif()
Expand Down
Loading
Loading