* 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
* Add CI configuration for clang-tidy on Windows
* Fix issues reported by clang-tidy on Windows
* Workaround clang-tidy defects on Windows
* Fix C-style casts (which clang-tidy didn't report)
* ci: bump `clang-tidy` from 14 to 18
`clang-tidy-14` has been crashing when being run on `peer-mgr.cc` since 96de1706af.
According to https://github.com/llvm/llvm-project/issues/95631, upgrading to `clang-tidy-18` fixes this.
* chore: workaround clang-tidy false positives
* fix: limit nolint comment scope
* code review: try avoiding false positive without nolint
* support macos-14 universal builds
* Apply suggestions from code review
Co-authored-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* add the arch to the job's name
* revert support macos-14 universal builds
---------
Co-authored-by: Dzmitry Neviadomski <nevack.d@gmail.com>
Version 3.14 was recently released with security fixes, and GitHub
runners have been updated to use it. Don't hardcode the version in
Program Files directory name to support any 3.x. Since 3.x support will
be dropped within a year, need to plan migration to 5.x when it's
released (4.x isn't suitable because of missing heat replacement).
* Support building Qt using CMake 3.28+
CMake 3.28 dropped support for deriving installation prefix(es) based on
PATH environment variable on Windows. Since all the other built packages
already pass necessary prefix path(s) explicitly via CMAKE_PREFIX_PATH
and it works for them, do the same for Qt 6 as well. Building Qt 5 isn't
affected as it doesn't use CMake.
* Fix environment variable name in `windows` build job
Using wrong name resulted in empty `CMAKE_PREFIX_PATH` CMake setting
value, which showed the effects of CMake 3.28 changes yet again.
* android patches for ndk
* Update libtransmission/file-capacity.cc
Co-authored-by: Mike Gelfand <mikedld@users.noreply.github.com>
* TrMacros: Move common & android vars
* Build android in CI
* Use vcpkg packages for curl & openssl
* Update CI for android
* Fix ndkVersion used with gradle
* Restore actions triggers events
* CMakeLists: Remove cond where curl is not found
* Use vcpkg tag instead of commit hash
Co-authored-by: Mike Gelfand <mikedld@users.noreply.github.com>
* TrMacros.cmake: clean unused variables & add vcpkg cond
* Remove quotes around VcpkgAndroid inclusion
Co-authored-by: Mike Gelfand <mikedld@users.noreply.github.com>
* actions: split steps to install vcpkg packages
* Build for android arm64
* actions: add make-android condition
* Revert "Use vcpkg tag instead of commit hash"
This reverts commit 65819026b1.
* build.gradle: use cmake version 3.22.1
* actions: use vcpkg 2024.01.12
* actions: Add ninja-build dependency
---------
Co-authored-by: Mike Gelfand <mikedld@users.noreply.github.com>
* chore: prefer calc() over sass math module
* chore: remove unused mixins
* refactor: use css variables for symbolic color names
* refactor: use range syntax for media queries
* refactor: use css variables for symbolic dimensions, units
* refactor: use css variables for symbolic url names
* refactor: use css variables for mime icon urls
* fixup! refactor: use css variables for symbolic dimensions, units
* refactor: replace mime-icon mixin with css variables
* ci: run apt-update before apt-install
* Add compat operator* for RefPtr
* Rename `*_tree_view_*` button handling helpers to `*_item_view_*`
* Move torrent item colors to CSS
* Switch to list view for torrents list (GTK 4)
* Bump Fedora image to 39 (current rawhide) for GTK 4.11
Enable deprecations as there're lots of them in 4.11 and I'm not keen on
fixing them all right now. Disable warnings as errors due to
-Warray-bounds issue somewhere in libfmt.
This is not an error, but a warning when building/running tests
with CMake/GoogleTest.
Use `sysctl -n hw.logicalcpu` to get parallelization number.
See: https://github.com/memkind/memkind/issues/33#issuecomment-540614162
No changes affecting users, so no `Notes:` here.
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fixup! perf: use small::max_size_vector in tr_torrentGetMetadataPiece() (#5768)
* enable tests for alpine CI
---------
Co-authored-by: tearfur <46261767+tearfur@users.noreply.github.com>
* Support in-source builds
Don't copy third-party directories into themselves (actually, don't copy
them at all) by switching from `URL` to `SOURCE_DIR`. Separate build,
source, and install directories for third-party libraries.
* Trigger builds on changes to cmake/
That directory contains TrMacros.cmake which influences build logic in
other places.