blob: cff07ad29f09a1c354e1e0b9c9e109f87541aed3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# lib9p/CMakeLists.txt - A 9P protocol and server library
#
# Copyright (C) 2024-2025 Luke T. Shumaker <lukeshu@lukeshu.com>
# SPDX-License-Identifier: AGPL-3.0-or-later
add_library(lib9p_core INTERFACE)
target_include_directories(lib9p_core PUBLIC INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/core_include)
target_sources(lib9p_core INTERFACE
core.c
core_generated.c
)
target_link_libraries(lib9p_core INTERFACE
libfmt
libhw_generic
libmisc
)
add_library(lib9p_srv INTERFACE)
target_include_directories(lib9p_srv PUBLIC INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/srv_include)
target_sources(lib9p_srv INTERFACE
srv.c
)
target_link_libraries(lib9p_srv INTERFACE
lib9p_core
libcr_ipc
)
if (ENABLE_TESTS)
add_subdirectory(tests/test_server)
function(add_lib9p_executable arg_testname)
add_executable("${arg_testname}" "tests/${arg_testname}.c")
target_link_libraries("${arg_testname}" lib9p_core)
target_include_directories("${arg_testname}" PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/tests
${CMAKE_CURRENT_SOURCE_DIR}/tests/client_config
)
endfunction()
function(add_lib9p_test arg_testscript)
get_filename_component(tmp_basename "${arg_testscript}" "NAME")
add_test(
NAME "lib9p/${tmp_basename}"
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tests/runtest" "${arg_testscript}" "${CMAKE_CURRENT_SOURCE_DIR}/tests/${tmp_basename}.explog"
)
endfunction()
add_lib9p_test("${CMAKE_CURRENT_SOURCE_DIR}/tests/testclient-p9p")
add_lib9p_executable("testclient-sess")
add_lib9p_test("./testclient-sess")
set(cfg_matrix
"CONFIG_9P_SRV_DEBUG;[0;1]"
"CONFIG_9P_ENABLE_9P2000;[0;1]"
"CONFIG_9P_ENABLE_9P2000_u;[0;1]"
"CONFIG_9P_ENABLE_9P2000_e;[0;1]"
"CONFIG_9P_ENABLE_9P2000_L;[0;1]"
"CONFIG_9P_ENABLE_9P2000_p9p;[0;1]"
)
function(add_compile_test n defs)
add_executable("test_compile${n}" "tests/test_compile.c")
target_link_libraries("test_compile${n}" lib9p_srv)
target_include_directories("test_compile${n}" PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_compile_config)
target_compile_definitions("test_compile${n}" PUBLIC "${defs}")
# Don't bother running it (don't bother calling add_test())
endfunction()
apply_matrix(add_compile_test "${cfg_matrix}")
endif()
|