* 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.
* fix: hicpp-use-auto,modernize-use-auto
* refactor: make Prefs::getKey() a static method
refactor: make Prefs::isCore() a static method
refactor: make Prefs::type() a static method
* refactor: Application takes a Prefs& arg, not a std::unique_ptr<Prefs> arg
* fix: bugprone-exception-escape
save settings by calling prefs.save() from main()
* refactor: load settings by calling prefs.load() from main()
* refactor: use preferred declaration order in Prefs
* fixup! fix: bugprone-exception-escape
* refactor: add Prefs::current_values()
* refactor: clean up namespace use in Prefs.cc
* feat: add QString, QDateTime serializers
* test: add scaffolding for testing Qt code
test: add tests for Prefs
* refactor: remove unused #includes
* build: add clang-tidy rules to tests/qt/
* refactor: clean up the new test code a little
* chore: add missing copyright statement
* ci: ensure Qt6Test is installed
build: check for QTest when ENABLE_TESTS + ENABLE_QT are ON
* fixup! feat: add QString, QDateTime serializers
* fix: Wswitch warning
* build: do not disable tests in release/windows/build-qt5.psl, build-qt6.psl
* ci: set QT_QPA_PLATFORM for running new Qt tests
* test: build cleanly in Qt 5.15
* fixup! fixup! feat: add QString, QDateTime serializers
fix QDateTime serializer on macOS
* fixup! ci: set QT_QPA_PLATFORM for running new Qt tests
install xcb-util-cursor on alpine
* refactor: add libtransmission-app
* refactor: add libtransmission-app/display-modes.h
* refactor: use app::SortMode, app:ShowMode in Qt client
* feat: add to_variant(), to_value() in serializer
* refactor: use app::SortMode in GTK client
* refactor: use app::ShowMode in GTK client
* refactor: make naming consistent with libtransmission-app
* Generate imported targets for MbedTLS
This change allows to use MbedTLS 3.6 config module without significant
code alteration which simplifies integration with future versions of
MbedTLS.
Signed-off-by: Azamat H. Hackimov <azamat.hackimov@gmail.com>
* Update MBEDTLS_MINIMUM to 2.7
Code expects API from MbedTLS 2.x or later.
Signed-off-by: Azamat H. Hackimov <azamat.hackimov@gmail.com>
---------
Signed-off-by: Azamat H. Hackimov <azamat.hackimov@gmail.com>
* chore: update minor versions
* chore: bump to `style-loader@4`
major version change
* refactor: combine `#mainwin-toolbar:nth-last-child(2)` rule
* refactor: cleanup scss definitions
Notes: `.single-file` is no longer used in code
* chore: bump `esbuild-sass-plugin@3` `esbuild@0.25`
* chore: uninstall unused `stylelint-config-standard`
In fact, it was never used since added to `package.json`.
* chore: bump `stylelint@16` `stylelint-config-sass-guidelines@12`
* chore: bump `eslint@9` `eslint-plugin-sonarjs@1` `eslint-plugin-unicorn@61`
* chore: enable prettier for whole `transmission-web` package
* chore: bump `@primer/stylelint-config@13`
* chore: update minor versions
* build: remove lint config files from CMake dependency
* chore: bump minor versions
* chore: bump `eslint-plugin-sonarjs@3`
* ci: use `actions/setup-node@v4` to install Node.js
So that there's no risk of the OS package manager's Node.js version being too low.
Except in Alpine, which does not work with `actions/setup-node@v4`. Ref: https://github.com/actions/setup-node/issues/387
* chore: replace `lodash.isEqual` with `fast-deep-equal`
* chore: bump minor versions
* chore: re-generate package-lock.json
* chore: fix lint errors
* fix: operator== should return bool in tr_strbuf
Fixes build error with C++20/C++23
error: return type 'auto' of selected 'operator==' function for rewritten '!=' comparison is not 'bool'
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: explicitly specify Blocklist::size() return type as size_t
Fixes building with C++20/C++23
error: no matching function for call to 'size'
function 'size' with deduced return type cannot be used before it is defined
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: wrap runtime format strings with fmt::runtime in library, daemon and cli
fmt::format_string ctor is consteval with C++20
See https://github.com/fmtlib/fmt/issues/2438
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: wrap runtime format strings with fmt::runtime for GTK client
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: allow to override C and CXX standard via cmdline or env
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: add job to check if transmission compiles with C++23
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* Address code review by mikedld
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix new found fmt build errors
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* Address code review by tearfur
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: make tr_net_init_mgr singleton buildable with C++23
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
---------
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* ci: bump debian image from 11 to 12
debian 11 has npm 7.5.2, which is lower than our minimum required version 8.0.307.
* build: find `npm.cmd` on Windows
* chore: trigger CI
* Revert "chore: trigger CI"
This reverts commit adc8f4ec981c94c4eab3c1499ea0c555f554a1d2.
* Revert "ci: bump debian image from 11 to 12"
This reverts commit 4730d350b3789ec8ab750ff57e713a59c3389831.
* ci: use `actions/setup-node` in debian 11
* ci: don't test `REBUILD_WEB` if only `libtransmission` changed
* ci: don't test `REBUILD_WEB` if only `third-party` changed