build: support building with system sigslot (#8371)

This commit is contained in:
Yat Ho
2026-02-05 12:46:16 +08:00
committed by GitHub
parent 18e9fc954f
commit 39803eb0f0
3 changed files with 17 additions and 3 deletions

View File

@@ -166,6 +166,7 @@ jobs:
-DUSE_SYSTEM_DEFAULT=ON \
-DUSE_SYSTEM_CRC32C=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_SIGSLOT=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Ubuntu`
@@ -217,6 +218,7 @@ jobs:
-DRUN_CLANG_TIDY=OFF \
-DUSE_SYSTEM_DEFAULT=ON \
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Homebrew` \
-DUSE_SYSTEM_SIGSLOT=OFF `# Not packaged in Homebrew` \
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Homebrew` \
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Homebrew` \
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Homebrew`
@@ -264,6 +266,7 @@ jobs:
-DUSE_SYSTEM_DEFAULT=ON \
-DUSE_SYSTEM_CRC32C=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_SIGSLOT=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Ubuntu`
@@ -408,6 +411,7 @@ jobs:
-DRUN_CLANG_TIDY=OFF \
-DUSE_SYSTEM_DEFAULT=ON \
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Homebrew` \
-DUSE_SYSTEM_SIGSLOT=OFF `# Not packaged in Homebrew` \
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Homebrew` \
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Homebrew` \
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Homebrew`
@@ -500,6 +504,7 @@ jobs:
-DUSE_SYSTEM_DEFAULT=ON \
-DUSE_SYSTEM_B64=OFF `# Not packaged in Alpine` \
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Alpine` \
-DUSE_SYSTEM_SIGSLOT=OFF `# Not packaged in Alpine` \
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Alpine` \
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Alpine` \
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Alpine`
@@ -779,6 +784,7 @@ jobs:
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Debian 11` \
-DUSE_SYSTEM_FAST_FLOAT=OFF `# Not packaged in Debian 11` \
-DUSE_SYSTEM_FMT=OFF `# Debian 11 package too old` \
-DUSE_SYSTEM_SIGSLOT=OFF `# Not packaged in Debian 11` \
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Debian 11` \
-DUSE_SYSTEM_UTF8CPP=OFF `# Debian 11 package too old` \
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Debian 11` \
@@ -860,6 +866,7 @@ jobs:
-DUSE_SYSTEM_DEFAULT=ON \
-DUSE_SYSTEM_CRC32C=OFF `# Not packaged in Debian` \
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Debian` \
-DUSE_SYSTEM_SIGSLOT=OFF `# Not packaged in Debian` \
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Debian` \
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Debian` \
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Debian`
@@ -939,6 +946,7 @@ jobs:
-DRUN_CLANG_TIDY=OFF \
-DUSE_SYSTEM_DEFAULT=ON \
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Fedora` \
-DUSE_SYSTEM_SIGSLOT=OFF `# Not packaged in Fedora` \
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Fedora` \
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Fedora` \
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Fedora`
@@ -1021,6 +1029,7 @@ jobs:
-DUSE_SYSTEM_DEFAULT=ON \
-DUSE_SYSTEM_CRC32C=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_SIGSLOT=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Ubuntu`
@@ -1136,6 +1145,7 @@ jobs:
-DUSE_SYSTEM_DEFAULT=ON \
-DUSE_SYSTEM_CRC32C=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_SIGSLOT=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Ubuntu`

View File

@@ -60,6 +60,7 @@ set(MINIUPNPC_MINIMUM 2.2.1)
set(NPM_MINIMUM 10.2.3) # Node.js 20.10 (eslint-plugin-unicorn)
set(PSL_MINIMUM 0.21.0)
set(QT_MINIMUM 5.15)
set(SIGSLOT_MINIMUM 1.2.3)
set(SMALL_MINIMUM 0.2.2)
# utf8cpp v4's version file is configured with `COMPATIBILITY SameMajorVersion`
# and does not support version range.
@@ -89,6 +90,7 @@ tr_auto_option(USE_SYSTEM_FAST_FLOAT "Use system fast_float library" ${USE_SYSTE
tr_auto_option(USE_SYSTEM_FMT "Use system fmt library" ${USE_SYSTEM_DEFAULT})
tr_auto_option(USE_SYSTEM_MINIUPNPC "Use system miniupnpc library" ${USE_SYSTEM_DEFAULT})
tr_auto_option(USE_SYSTEM_NATPMP "Use system natpmp library" ${USE_SYSTEM_DEFAULT})
tr_auto_option(USE_SYSTEM_SIGSLOT "Use system sigslot library" ${USE_SYSTEM_DEFAULT})
tr_auto_option(USE_SYSTEM_SMALL "Use system small library" ${USE_SYSTEM_DEFAULT})
tr_auto_option(USE_SYSTEM_UTF8CPP "Use system uft8cpp library" ${USE_SYSTEM_DEFAULT})
tr_auto_option(USE_SYSTEM_UTP "Use system utp library" ${USE_SYSTEM_DEFAULT})
@@ -622,6 +624,10 @@ tr_add_external_auto_library(FMT fmt
-DFMT_INSTALL=OFF
-DFMT_SYSTEM_HEADERS=ON)
tr_add_external_auto_library(SIGSLOT PalSigslot
SUBPROJECT
SOURCE_DIR sigslot)
tr_add_external_auto_library(SMALL small
SUBPROJECT
CMAKE_ARGS

View File

@@ -12,8 +12,6 @@ add_compile_options(
# equivalent of XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES for this directory
$<$<AND:$<BOOL:${APPLE}>,$<OR:$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:Clang>>,$<OR:$<COMPILE_LANGUAGE:C>,$<COMPILE_LANGUAGE:CXX>>>:-fobjc-arc>)
add_subdirectory(${CMAKE_SOURCE_DIR}/third-party/sigslot ${CMAKE_BINARY_DIR}/third-party/sigslot)
add_library(${TR_NAME} STATIC)
set(IS_APPLE_CLANG FALSE)
@@ -287,7 +285,7 @@ target_link_libraries(${TR_NAME}
PUBLIC
transmission::crypto_impl
fmt::fmt-header-only
sigslot
Pal::Sigslot
transmission::small
libevent::core
libevent::extra)