foundationdb/cmake/AddFdbServerLinkTest.cmake

21 lines
1.2 KiB
CMake

function(add_fdbserver_link_test target_name)
set(link_libs ${ARGN})
list(GET link_libs 0 primary_lib)
list(REMOVE_AT link_libs 0)
file(RELATIVE_PATH link_test_src "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_SOURCE_DIR}/fdbclient/LinkTest.cpp")
add_flow_target(LINK_TEST NAME ${target_name} SRCS ${link_test_src})
target_link_libraries(${target_name} PRIVATE "$<LINK_LIBRARY:WHOLE_ARCHIVE,${primary_lib}>" ${link_libs} rapidxml)
endfunction()
function(add_fdbserver_unit_test target_name source_subdir)
set(link_libs ${ARGN})
list(GET link_libs 0 primary_lib)
list(REMOVE_AT link_libs 0)
file(RELATIVE_PATH unit_test_src "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_SOURCE_DIR}/fdbserver/FDBServerUnitTestMain.cpp")
add_flow_target(EXECUTABLE NAME ${target_name} SRCS ${unit_test_src})
set_target_properties(${target_name} PROPERTIES EXCLUDE_FROM_ALL TRUE)
target_compile_definitions(${target_name} PRIVATE FDBSERVER_UNIT_TEST_SUITE=\"${source_subdir}\")
target_include_directories(${target_name} PRIVATE ${CMAKE_SOURCE_DIR}/fdbserver/include)
target_link_libraries(${target_name} PRIVATE "$<LINK_LIBRARY:WHOLE_ARCHIVE,${primary_lib}>" ${link_libs} rapidxml)
endfunction()