1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2024-12-23 08:13:27 +00:00
transmission/tests/libtransmission/CMakeLists.txt
Mike Gelfand 1c421d6d23
Minor CMake maintainability improvements (#6186)
* Prefer `PROJECT_{SOURCE,BINARY}_DIR` to `CMAKE_` ones

* Extend use of 3rd-party dir vars to reduce duplication

* Fix typo in submodule repo name

* Remove `CURL::libcurl` target fallback

The target is always available since CMake 3.12, which is our current
minimum version.
2023-10-30 20:44:34 +03:00

115 lines
2.8 KiB
CMake

include(GoogleTest)
add_executable(libtransmission-test)
target_sources(libtransmission-test
PRIVATE
announce-list-test.cc
announcer-test.cc
announcer-udp-test.cc
benc-test.cc
bitfield-test.cc
block-info-test.cc
blocklist-test.cc
buffer-test.cc
clients-test.cc
completion-test.cc
copy-test.cc
crypto-test-ref.h
crypto-test.cc
error-test.cc
dht-test.cc
file-piece-map-test.cc
file-test.cc
getopt-test.cc
global-ip-cache-test.cc
handshake-test.cc
history-test.cc
json-test.cc
lpd-test.cc
magnet-metainfo-test.cc
makemeta-test.cc
move-test.cc
net-test.cc
open-files-test.cc
peer-mgr-active-requests-test.cc
peer-mgr-wishlist-test.cc
peer-msgs-test.cc
platform-test.cc
quark-test.cc
remove-test.cc
rename-test.cc
rpc-test.cc
session-test.cc
session-alt-speeds-test.cc
settings-test.cc
strbuf-test.cc
subprocess-test-script.cmd
subprocess-test.cc
test-fixtures.h
timer-test.cc
torrent-files-test.cc
torrent-magnet-test.cc
torrent-metainfo-test.cc
torrents-test.cc
tr-peer-info-test.cc
utils-test.cc
variant-test.cc
watchdir-test.cc
web-utils-test.cc)
set_property(
TARGET libtransmission-test
PROPERTY FOLDER "tests")
target_compile_definitions(libtransmission-test
PRIVATE
-DLIBTRANSMISSION_TEST_ASSETS_DIR="${CMAKE_CURRENT_SOURCE_DIR}/assets"
__TRANSMISSION__)
target_compile_options(libtransmission-test
PRIVATE $<$<OR:$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:Clang>>:-Wno-sign-compare>) # patches welcomed
target_link_libraries(libtransmission-test
PRIVATE
${TR_NAME}
gtestall
dht::dht
fmt::fmt-header-only
libevent::event
WideInteger::WideInteger)
if(NOT CMAKE_CROSSCOMPILING OR CMAKE_CROSSCOMPILING_EMULATOR)
gtest_discover_tests(libtransmission-test
TEST_PREFIX "LT.")
else()
add_test(
NAME libtransmission-test
COMMAND libtransmission-test)
endif()
add_custom_command(
TARGET libtransmission-test
PRE_BUILD
COMMAND
${CMAKE_COMMAND}
-E copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/subprocess-test-script.cmd
$<TARGET_FILE_DIR:libtransmission-test>/subprocess-test.cmd)
add_executable(subprocess-test)
target_sources(subprocess-test
PRIVATE
subprocess-test-program.cc)
set_property(
TARGET subprocess-test
PROPERTY FOLDER "tests")
target_link_libraries(subprocess-test
PRIVATE
${TR_NAME})
add_dependencies(libtransmission-test
subprocess-test)