39 lines
1.5 KiB
CMake
39 lines
1.5 KiB
CMake
# plumb — plan9 plumbing client (9P2000 over the namespace socket).
|
|
#
|
|
# plumb_lib carries the pure codec + resolver and is unit tested without any
|
|
# GUI/9P I/O. The 9P client (ninep) and the Plumber facade add Qt Network and
|
|
# a reader thread; they talk to a live plumber and so are exercised by a live
|
|
# integration test guarded on $NAMESPACE being present.
|
|
find_package(Qt6 ${QT_MIN_VERSION} COMPONENTS Core Network REQUIRED)
|
|
|
|
add_library(plumb_lib STATIC
|
|
plumbmsg.cpp
|
|
plumbmsg.h
|
|
plumbresolve.cpp
|
|
plumbresolve.h
|
|
ninep.cpp
|
|
ninep.h
|
|
plumber.cpp
|
|
plumber.h
|
|
)
|
|
set_target_properties(plumb_lib PROPERTIES AUTOMOC ON)
|
|
target_link_libraries(plumb_lib PUBLIC Qt6::Core Qt6::Network)
|
|
target_include_directories(plumb_lib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
find_package(Qt6 ${QT_MIN_VERSION} COMPONENTS Test)
|
|
if(Qt6Test_FOUND)
|
|
add_executable(test_plumbmsg test_plumbmsg.cpp)
|
|
target_link_libraries(test_plumbmsg PRIVATE plumb_lib Qt6::Test)
|
|
add_test(NAME plumbmsg COMMAND test_plumbmsg)
|
|
|
|
add_executable(test_plumbresolve test_plumbresolve.cpp)
|
|
target_link_libraries(test_plumbresolve PRIVATE plumb_lib Qt6::Test)
|
|
add_test(NAME plumbresolve COMMAND test_plumbresolve)
|
|
|
|
# Live round-trip against a running plumber. Skips itself (passing) when no
|
|
# plumb socket is reachable, so it is safe in headless/CI environments.
|
|
add_executable(test_plumb_live test_plumb_live.cpp)
|
|
target_link_libraries(test_plumb_live PRIVATE plumb_lib Qt6::Test)
|
|
add_test(NAME plumb_live COMMAND test_plumb_live)
|
|
endif()
|