Files
mars-nwe/tests/salvage/CMakeLists.txt

86 lines
3.0 KiB
CMake

# Optional NetWare salvage/deleted-entry smoke-test helpers.
#
# The first helper is a layout contract test for the upcoming recycle-backed
# nwsalvage backend. It has no ncpfs dependency and does not require a running
# mars_nwe server.
set(SALVAGE_LAYOUT_SMOKE_SCRIPT
${CMAKE_CURRENT_BINARY_DIR}/salvage_layout_smoke.sh
)
add_custom_command(
OUTPUT ${SALVAGE_LAYOUT_SMOKE_SCRIPT}
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/salvage_layout_smoke.sh
${SALVAGE_LAYOUT_SMOKE_SCRIPT}
COMMAND ${CMAKE_COMMAND} -E env chmod +x ${SALVAGE_LAYOUT_SMOKE_SCRIPT}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/salvage_layout_smoke.sh
COMMENT "Copying salvage layout smoke helper"
VERBATIM
)
add_custom_target(salvage_layout_smoke ALL
DEPENDS ${SALVAGE_LAYOUT_SMOKE_SCRIPT}
)
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_CLEAN_FILES
${SALVAGE_LAYOUT_SMOKE_SCRIPT}
)
set(SALVAGE_SMOKE_SUITE_SCRIPT
${CMAKE_CURRENT_BINARY_DIR}/salvage_smoke_suite.sh
)
add_custom_command(
OUTPUT ${SALVAGE_SMOKE_SUITE_SCRIPT}
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/salvage_smoke_suite.sh
${SALVAGE_SMOKE_SUITE_SCRIPT}
COMMAND ${CMAKE_COMMAND} -E env chmod +x ${SALVAGE_SMOKE_SUITE_SCRIPT}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/salvage_smoke_suite.sh
COMMENT "Copying salvage NCP smoke suite"
VERBATIM
)
add_custom_target(salvage_smoke_suite ALL
DEPENDS ${SALVAGE_SMOKE_SUITE_SCRIPT}
)
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_CLEAN_FILES
${SALVAGE_SMOKE_SUITE_SCRIPT}
)
find_path(SALVAGE_NCPFS_INCLUDE_DIR
NAMES ncp/nwcalls.h ncp/ncplib.h
)
find_library(SALVAGE_NCPFS_LIBRARY
NAMES ncp
)
if(SALVAGE_NCPFS_INCLUDE_DIR AND SALVAGE_NCPFS_LIBRARY)
add_executable(ncp_delete_smoke ncp_delete_smoke.c)
target_include_directories(ncp_delete_smoke PRIVATE ${SALVAGE_NCPFS_INCLUDE_DIR})
target_link_libraries(ncp_delete_smoke ${SALVAGE_NCPFS_LIBRARY})
add_executable(ncp_read_smoke ncp_read_smoke.c)
target_include_directories(ncp_read_smoke PRIVATE ${SALVAGE_NCPFS_INCLUDE_DIR})
target_link_libraries(ncp_read_smoke ${SALVAGE_NCPFS_LIBRARY})
add_executable(ncp_salvage_scan_smoke ncp_salvage_scan_smoke.c)
target_include_directories(ncp_salvage_scan_smoke PRIVATE ${SALVAGE_NCPFS_INCLUDE_DIR})
target_link_libraries(ncp_salvage_scan_smoke ${SALVAGE_NCPFS_LIBRARY})
add_executable(ncp_salvage_recover_smoke ncp_salvage_recover_smoke.c)
target_include_directories(ncp_salvage_recover_smoke PRIVATE ${SALVAGE_NCPFS_INCLUDE_DIR})
target_link_libraries(ncp_salvage_recover_smoke ${SALVAGE_NCPFS_LIBRARY})
add_executable(ncp_salvage_purge_smoke ncp_salvage_purge_smoke.c)
target_include_directories(ncp_salvage_purge_smoke PRIVATE ${SALVAGE_NCPFS_INCLUDE_DIR})
target_link_libraries(ncp_salvage_purge_smoke ${SALVAGE_NCPFS_LIBRARY})
else()
message(STATUS
"Skipping salvage NCP smoke helpers: ncpfs/libncp headers or library not found"
)
endif()