Files
transmission/daemon/CMakeLists.txt
Yat Ho a89ca4f2c9 build(cmake): support building with (almost) all system 3rd-party libraries (#7554)
* build: overhaul tr_add_external_auto_library

* build: use package-provided CMake config file libevent

* build: use package-provided CMake config file miniupnpc

* build: update libutp find module

* build: make LIBNAME an optional parameter

* build: use package-provided CMake config file libdeflate

* build: update libb64 find module

* build: update libnatpmp find module

* build: update libpsl find module

* build: support system fast_float library

* chore: reformat long brew commands

* build: support system fmt library

* build: support system rapidjson library

* build: support system small library

* build: support system library utf8cpp

* build: support system library WideInteger

* build: support system library gtest

* fix: incorrectly labeled test suites

* build: remove unused parameters from tr_add_external_auto_library

* build: update crc32c cmake script

* fix: dht system library

* fix: add libutp interface target

* code review: move TrGtest.cmake

* code review: move tr_get_fmt_version into Findfmt.cmake

* code review: use option() for gtest

* code review: move find_package(PkgConfig) out of loop

* build: delete FindCrc32c.cmake

Impossible to parse package version from distributed source files.

* code review: Finddht.cmake

* build: delete FindFastFloat.cmake

Impossible to parse package version from distributed source files.

* code review: Findfmt.cmake

* code review: Findlibb64.cmake

* code review: Findlibdeflate.cmake

* code review: Findlibevent.cmake

* code review: Findlibnatpmp.cmake

* code review: Findlibpsl.cmake

* code review: Findlibutp.cmake

* code review: Findlibminiupnpc.cmake

* code review: FindRapidJSON.cmake

* build: delete FindSmall.cmake

Impossible to parse package version from distributed source files.

* build: only accept cmake config package for utf8cpp

Impossible to parse package version from distributed source files.

* build: delete FindWideInteger.cmake

Impossible to parse package version from distributed source files.

* build: add `USE_SYSTEM_DEFAULT`

* ci: drop Fedora 40 and adopt Fedora 43

* ci: try to silence system header warnings

* ci: use `cmake --install`

* Revert "build: only accept cmake config package for utf8cpp"

This reverts commit 2158d631fd.

* build: harden utf8cpp find module

* chore: bump wide-integer

Pick up bf9398f9da and bcc726a30f

* refactor: gtest should be included with angled brackets

Now that gtest is built as a system library, it should be included with angled brackets instead of quotes.

* code review: fixup libutp variables before `find_package_handle_standard_args`

* code review: define `WIDE_INTEGER_HAS_LIMB_TYPE_UINT64` only for targets depending on WideInteger

* chore: bump wide-integer

Pickup 4b2258acac so that wide-integer tests won't run in Transmission project.
2026-01-12 09:04:47 -06:00

62 lines
1.4 KiB
CMake

add_executable(${TR_NAME}-daemon)
target_sources(${TR_NAME}-daemon
PRIVATE
daemon.cc
daemon.h
daemon-posix.cc
daemon-win32.cc)
tr_allow_compile_if(
[=[[WIN32]]=]
daemon-win32.cc
[=[[NOT WIN32]]=]
daemon-posix.cc)
target_compile_definitions(${TR_NAME}-daemon
PRIVATE
$<$<BOOL:${WITH_SYSTEMD}>:WITH_SYSTEMD>)
tr_target_compile_definitions_for_headers(${TR_NAME}-daemon
PRIVATE
sys/signalfd.h)
tr_target_compile_definitions_for_functions(${TR_NAME}-daemon
PRIVATE
daemon
syslog)
target_include_directories(${TR_NAME}-daemon SYSTEM
PRIVATE
$<$<BOOL:${WITH_SYSTEMD}>:${SYSTEMD_INCLUDE_DIRS}>)
target_link_libraries(${TR_NAME}-daemon
PRIVATE
${TR_NAME}
libevent::core
fmt::fmt-header-only
$<$<BOOL:${WITH_SYSTEMD}>:${SYSTEMD_LIBRARIES}>)
tr_win32_app_info(${TR_NAME}-daemon
"Transmission Daemon"
"${TR_NAME}-daemon"
"${TR_NAME}-daemon.exe")
install(
TARGETS ${TR_NAME}-daemon
DESTINATION ${CMAKE_INSTALL_BINDIR})
if(INSTALL_DOC)
install(
FILES ${TR_NAME}-daemon.1
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
endif()
if (WITH_SYSTEMD)
configure_file("${TR_NAME}-daemon.service.in" "${TR_NAME}-daemon.service" @ONLY)
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/${TR_NAME}-daemon.service"
DESTINATION lib/systemd/system)
endif()