mirror of
https://github.com/transmission/transmission.git
synced 2026-02-15 07:26:49 +00:00
build: support building with system wide-integer (#8209)
This commit is contained in:
30
.github/workflows/actions.yml
vendored
30
.github/workflows/actions.yml
vendored
@@ -167,7 +167,8 @@ jobs:
|
|||||||
-DUSE_SYSTEM_CRC32C=OFF `# Not packaged in Ubuntu` \
|
-DUSE_SYSTEM_CRC32C=OFF `# Not packaged in Ubuntu` \
|
||||||
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Ubuntu` \
|
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Ubuntu` \
|
||||||
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Ubuntu` \
|
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Ubuntu` \
|
||||||
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Ubuntu`
|
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Ubuntu` \
|
||||||
|
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Ubuntu`
|
||||||
- name: Make
|
- name: Make
|
||||||
run: cmake --build obj --config Debug --target libtransmission-test transmission-show
|
run: cmake --build obj --config Debug --target libtransmission-test transmission-show
|
||||||
- name: Test with sanitizers
|
- name: Test with sanitizers
|
||||||
@@ -217,7 +218,8 @@ jobs:
|
|||||||
-DUSE_SYSTEM_DEFAULT=ON \
|
-DUSE_SYSTEM_DEFAULT=ON \
|
||||||
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Homebrew` \
|
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Homebrew` \
|
||||||
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Homebrew` \
|
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Homebrew` \
|
||||||
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Homebrew`
|
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Homebrew` \
|
||||||
|
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Homebrew`
|
||||||
- name: Make
|
- name: Make
|
||||||
run: cmake --build obj --config Debug --target libtransmission-test transmission-show
|
run: cmake --build obj --config Debug --target libtransmission-test transmission-show
|
||||||
- name: Test with sanitizers
|
- name: Test with sanitizers
|
||||||
@@ -263,7 +265,8 @@ jobs:
|
|||||||
-DUSE_SYSTEM_CRC32C=OFF `# Not packaged in Ubuntu` \
|
-DUSE_SYSTEM_CRC32C=OFF `# Not packaged in Ubuntu` \
|
||||||
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Ubuntu` \
|
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Ubuntu` \
|
||||||
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Ubuntu` \
|
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Ubuntu` \
|
||||||
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Ubuntu`
|
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Ubuntu` \
|
||||||
|
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Ubuntu`
|
||||||
- name: Make (Core)
|
- name: Make (Core)
|
||||||
run: cmake --build obj --config Debug --target transmission 2>&1 | tee makelog
|
run: cmake --build obj --config Debug --target transmission 2>&1 | tee makelog
|
||||||
- name: Make (Tests)
|
- name: Make (Tests)
|
||||||
@@ -406,7 +409,8 @@ jobs:
|
|||||||
-DUSE_SYSTEM_DEFAULT=ON \
|
-DUSE_SYSTEM_DEFAULT=ON \
|
||||||
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Homebrew` \
|
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Homebrew` \
|
||||||
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Homebrew` \
|
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Homebrew` \
|
||||||
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Homebrew`
|
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Homebrew` \
|
||||||
|
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Homebrew`
|
||||||
- name: Make
|
- name: Make
|
||||||
run: cmake --build obj --config RelWithDebInfo
|
run: cmake --build obj --config RelWithDebInfo
|
||||||
- name: Test
|
- name: Test
|
||||||
@@ -495,7 +499,8 @@ jobs:
|
|||||||
-DUSE_SYSTEM_B64=OFF `# Not packaged in Alpine` \
|
-DUSE_SYSTEM_B64=OFF `# Not packaged in Alpine` \
|
||||||
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Alpine` \
|
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Alpine` \
|
||||||
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Alpine` \
|
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Alpine` \
|
||||||
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Alpine`
|
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Alpine` \
|
||||||
|
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Alpine`
|
||||||
- name: Make
|
- name: Make
|
||||||
run: cmake --build obj --config RelWithDebInfo
|
run: cmake --build obj --config RelWithDebInfo
|
||||||
- name: Test
|
- name: Test
|
||||||
@@ -771,7 +776,8 @@ jobs:
|
|||||||
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Debian 11` \
|
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Debian 11` \
|
||||||
-DUSE_SYSTEM_FMT=OFF `# Debian 11 package too old` \
|
-DUSE_SYSTEM_FMT=OFF `# Debian 11 package too old` \
|
||||||
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Debian 11` \
|
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Debian 11` \
|
||||||
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Debian 11`
|
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Debian 11` \
|
||||||
|
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Debian 11`
|
||||||
- name: Build
|
- name: Build
|
||||||
run: cmake --build obj --config RelWithDebInfo
|
run: cmake --build obj --config RelWithDebInfo
|
||||||
- name: Test
|
- name: Test
|
||||||
@@ -849,7 +855,8 @@ jobs:
|
|||||||
-DUSE_SYSTEM_CRC32C=OFF `# Not packaged in Debian` \
|
-DUSE_SYSTEM_CRC32C=OFF `# Not packaged in Debian` \
|
||||||
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Debian` \
|
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Debian` \
|
||||||
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Debian` \
|
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Debian` \
|
||||||
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Debian`
|
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Debian` \
|
||||||
|
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Debian`
|
||||||
- name: Build
|
- name: Build
|
||||||
run: cmake --build obj --config RelWithDebInfo
|
run: cmake --build obj --config RelWithDebInfo
|
||||||
- name: Test
|
- name: Test
|
||||||
@@ -927,7 +934,8 @@ jobs:
|
|||||||
-DUSE_SYSTEM_DEFAULT=ON \
|
-DUSE_SYSTEM_DEFAULT=ON \
|
||||||
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Fedora` \
|
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Fedora` \
|
||||||
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Fedora` \
|
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Fedora` \
|
||||||
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Fedora`
|
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Fedora` \
|
||||||
|
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Fedora`
|
||||||
- name: Build
|
- name: Build
|
||||||
run: cmake --build obj --config RelWithDebInfo
|
run: cmake --build obj --config RelWithDebInfo
|
||||||
- name: Test
|
- name: Test
|
||||||
@@ -1001,7 +1009,8 @@ jobs:
|
|||||||
-DUSE_SYSTEM_CRC32C=OFF `# Not packaged in Ubuntu` \
|
-DUSE_SYSTEM_CRC32C=OFF `# Not packaged in Ubuntu` \
|
||||||
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Ubuntu` \
|
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Ubuntu` \
|
||||||
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Ubuntu` \
|
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Ubuntu` \
|
||||||
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Ubuntu`
|
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Ubuntu` \
|
||||||
|
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Ubuntu`
|
||||||
- name: Make
|
- name: Make
|
||||||
run: cmake --build obj --config RelWithDebInfo
|
run: cmake --build obj --config RelWithDebInfo
|
||||||
- name: Test
|
- name: Test
|
||||||
@@ -1115,6 +1124,7 @@ jobs:
|
|||||||
-DUSE_SYSTEM_CRC32C=OFF `# Not packaged in Ubuntu` \
|
-DUSE_SYSTEM_CRC32C=OFF `# Not packaged in Ubuntu` \
|
||||||
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Ubuntu` \
|
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Ubuntu` \
|
||||||
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Ubuntu` \
|
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Ubuntu` \
|
||||||
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Ubuntu`
|
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Ubuntu` \
|
||||||
|
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Ubuntu`
|
||||||
- name: Make
|
- name: Make
|
||||||
run: cmake --build obj --config RelWithDebInfo -- "-k 0"
|
run: cmake --build obj --config RelWithDebInfo -- "-k 0"
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ tr_auto_option(USE_SYSTEM_MINIUPNPC "Use system miniupnpc library" ${USE_SYSTEM_
|
|||||||
tr_auto_option(USE_SYSTEM_NATPMP "Use system natpmp library" ${USE_SYSTEM_DEFAULT})
|
tr_auto_option(USE_SYSTEM_NATPMP "Use system natpmp library" ${USE_SYSTEM_DEFAULT})
|
||||||
tr_auto_option(USE_SYSTEM_SMALL "Use system small library" ${USE_SYSTEM_DEFAULT})
|
tr_auto_option(USE_SYSTEM_SMALL "Use system small library" ${USE_SYSTEM_DEFAULT})
|
||||||
tr_auto_option(USE_SYSTEM_UTP "Use system utp library" ${USE_SYSTEM_DEFAULT})
|
tr_auto_option(USE_SYSTEM_UTP "Use system utp library" ${USE_SYSTEM_DEFAULT})
|
||||||
|
tr_auto_option(USE_SYSTEM_WIDE_INTEGER "Use system WideInteger library" ${USE_SYSTEM_DEFAULT})
|
||||||
tr_auto_option(USE_SYSTEM_B64 "Use system b64 library" ${USE_SYSTEM_DEFAULT})
|
tr_auto_option(USE_SYSTEM_B64 "Use system b64 library" ${USE_SYSTEM_DEFAULT})
|
||||||
tr_auto_option(USE_SYSTEM_PSL "Use system psl library" ${USE_SYSTEM_DEFAULT})
|
tr_auto_option(USE_SYSTEM_PSL "Use system psl library" ${USE_SYSTEM_DEFAULT})
|
||||||
tr_auto_option(USE_SYSTEM_CRC32C "Use system crc32c library" ${USE_SYSTEM_DEFAULT})
|
tr_auto_option(USE_SYSTEM_CRC32C "Use system crc32c library" ${USE_SYSTEM_DEFAULT})
|
||||||
@@ -251,7 +252,6 @@ set(SOURCE_ICONS_DIR "${PROJECT_SOURCE_DIR}/icons")
|
|||||||
find_package(FastFloat)
|
find_package(FastFloat)
|
||||||
find_package(RapidJSON)
|
find_package(RapidJSON)
|
||||||
find_package(UtfCpp)
|
find_package(UtfCpp)
|
||||||
find_package(WideInteger)
|
|
||||||
|
|
||||||
find_package(Threads)
|
find_package(Threads)
|
||||||
find_package(PkgConfig QUIET)
|
find_package(PkgConfig QUIET)
|
||||||
@@ -610,6 +610,25 @@ target_compile_definitions(transmission::small
|
|||||||
INTERFACE
|
INTERFACE
|
||||||
SMALL_DISABLE_EXCEPTIONS=1)
|
SMALL_DISABLE_EXCEPTIONS=1)
|
||||||
|
|
||||||
|
tr_add_external_auto_library(WIDE_INTEGER WideInteger
|
||||||
|
SUBPROJECT
|
||||||
|
SOURCE_DIR wide-integer)
|
||||||
|
add_library(transmission::WideInteger INTERFACE IMPORTED)
|
||||||
|
target_link_libraries(transmission::WideInteger
|
||||||
|
INTERFACE
|
||||||
|
WideInteger::WideInteger)
|
||||||
|
include(CheckCXXSourceCompiles)
|
||||||
|
check_cxx_source_compiles(
|
||||||
|
"int main()
|
||||||
|
{
|
||||||
|
unsigned __int128 u;
|
||||||
|
signed __int128 i;
|
||||||
|
return 0;
|
||||||
|
}" TR_HAVE_INT128)
|
||||||
|
target_compile_definitions(transmission::WideInteger
|
||||||
|
INTERFACE
|
||||||
|
$<$<BOOL:${TR_HAVE_INT128}>:WIDE_INTEGER_HAS_LIMB_TYPE_UINT64>)
|
||||||
|
|
||||||
set(TR_WEB_ASSETS ${PROJECT_SOURCE_DIR}/web/public_html)
|
set(TR_WEB_ASSETS ${PROJECT_SOURCE_DIR}/web/public_html)
|
||||||
if(REBUILD_WEB)
|
if(REBUILD_WEB)
|
||||||
tr_get_required_flag(REBUILD_WEB NPM_IS_REQUIRED)
|
tr_get_required_flag(REBUILD_WEB NPM_IS_REQUIRED)
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
add_library(WideInteger::WideInteger INTERFACE IMPORTED)
|
|
||||||
|
|
||||||
target_include_directories(WideInteger::WideInteger
|
|
||||||
INTERFACE
|
|
||||||
${TR_THIRD_PARTY_SOURCE_DIR}/wide-integer)
|
|
||||||
|
|
||||||
set(_INT128_TEST_FILE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckInt128.c)
|
|
||||||
file(WRITE ${_INT128_TEST_FILE}
|
|
||||||
"int main()
|
|
||||||
{
|
|
||||||
unsigned __int128 u;
|
|
||||||
signed __int128 i;
|
|
||||||
return 0;
|
|
||||||
}")
|
|
||||||
try_compile(_HAVE_INT128
|
|
||||||
${CMAKE_BINARY_DIR}
|
|
||||||
${_INT128_TEST_FILE})
|
|
||||||
target_compile_definitions(WideInteger::WideInteger
|
|
||||||
INTERFACE
|
|
||||||
$<$<BOOL:${_HAVE_INT128}>:WIDE_INTEGER_HAS_LIMB_TYPE_UINT64>
|
|
||||||
)
|
|
||||||
@@ -287,7 +287,7 @@ target_link_libraries(${TR_NAME}
|
|||||||
RapidJSON
|
RapidJSON
|
||||||
utf8::cpp
|
utf8::cpp
|
||||||
wildmat
|
wildmat
|
||||||
WideInteger::WideInteger
|
transmission::WideInteger
|
||||||
Crc32c::crc32c
|
Crc32c::crc32c
|
||||||
$<$<BOOL:${WIN32}>:crypt32>
|
$<$<BOOL:${WIN32}>:crypt32>
|
||||||
$<$<BOOL:${WIN32}>:shlwapi>
|
$<$<BOOL:${WIN32}>:shlwapi>
|
||||||
|
|||||||
Reference in New Issue
Block a user