summaryrefslogtreecommitdiff
path: root/lib9p/CMakeLists.txt
blob: 949b6d625723b46bc8686986a892ec32622a8d93 (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
# 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 INTERFACE)
target_include_directories(lib9p PUBLIC INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/include)
target_sources(lib9p INTERFACE
	9p.generated.c
	9p.c
	tables.c
	srv.c
)
target_link_libraries(lib9p INTERFACE
	libcr_ipc
	libfmt
	libhw_generic
	libmisc
)

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)
		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")

	add_lib_test(lib9p test_compile)
	target_include_directories(test_compile PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_compile_config)
endif()