* Revert "build(cmake): support building with (almost) all system 3rd-party libraries (#7554)"
This reverts commit a89ca4f2c9.
* fixup! refactor: use a map of getters, setters for `session_get` and `session_set` properties (#8024)
fix: capture-by-reference error in session_accessors()
* fix: 'Qt depends on a UTF-8 locale' CI warning
* fix: 'qt.qpa.xcb: could not connect to display' CI error
* 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.
* test: add TransmissionTest fixture that calls tr_lib_init()
* refactor: use std::call_once() in tr_lib_init()
* test: ensure quarks are sorted in RpcTest::sessionGet
* refactor: use ::libtransmission::test::TransmissionTest
prefer this over ::testing::Test to ensure tr_lib_init() is called once
* build: clang-tidy headers when building libtransmission
* chore: revert `= default` workaround
It was introduced in 6909ec0bad to fix build issues with macOS 10.14. We
no longer support that version.
* fix: clang-tidy warnings for libtransmission
* build: clang-tidy headers when building tests
* fix: clang-tidy warnings for tests
* build: clang-tidy headers when building qt
* code review: don't manually edit mime-types.h
* code review: unify variable naming for static private members
* test: new `tr_variant` API in `json-test.cc`
* test: new `tr_variant` API in `variant-test.cc`
* chore: housekeeping
* test: new `tr_variant` API in `dht-test.cc`
* fix: use `reinterpret_cast` in `tr_variant::make_raw()`
* fix: add missing `typename` in `tr_variant::make_raw()`
* test: new `tr_variant` API in `settings-test.cc`
* test: new `tr_variant` API in `move-test.cc`
* test: new `tr_variant` API in `rpc-test.cc`
* test: new `tr_variant` API in `makemeta-test.cc`
* test: new `tr_variant` API in `session-test.cc`
* refactor: remove the tr_error** idiom
* fix: tr_error::message() is only constexpr in c++20 and up
* chore: silence a couple of g++-12 Wshadow warnings
* Use imported CMake target for CURL
* Use imported CMake target for fmtlib
* Use imported CMake target for WideInteger
* Use imported CMake target for FastFloat
* Use imported CMake target for UtfCpp
* Use imported CMake target for Threads
* Use imported CMake target for Iconv
* Use imported CMake target for crypto backend
* Use imported CMake target for GTK
* Use imported CMake target for Qt
* Use imported CMake target for deflate
* Use imported CMake target for libevent
* Use imported CMake target for natpmp
* Use imported CMake target for miniupnpc
* Use imported CMake target for dht
* Use imported CMake target for psl
* Use imported CMake target for libutp
* Use imported CMake target for libb64
* Use include directories from libtransmission target
* refactor: use std::string in tr_watchdir_inotify_on_event()
* refactor: add template tr_variantFromBuf() variant
if it has .data() and .size() it is good
* test: fuzz test tr_torrent_metainfo.parseBenc()
* fix: better error-checking in benc string parsing
* fix: return benc failure if the parse stack is unbalanced
* fix: stack range error when logging json parse errors
* test: fuzz test tr_variantFromBuf()
* refactor: add SAX-like benc parser
This is the first part of a series of PRs whose end goal is to avoid
the overhead of tr_variant when parsing bencoded data, e.g. when
parsing .torrent files on startup or when parsing announce/scrape
tracker responses.
This PR introduces a SAX-like benc parser, reimplements variant-benc
to use the SAX benc parser (so that we don't have two benc parsers),
and updates the benc + variant tests.
* refactor: use std::string_view to parse benc
* refactor: simplify private parsing API in variant.cc
* chore: remove unneeded includes
* refactor: merge tr_variantFromBenc and tr_variantFromBencFull
* refactor: keep torrent hash in std::array<char,20>
This replaces the hashString QString allocation with a compile-time
array that's included in sizeof the Torrent struct that owns it.