* fix: Sparkle Version Comparator
* Code review: Reducing CFBundleVersion to three components and avoiding versionComparatorForUpdater
* adding +99 when it's a non-beta release
* code review: set CFBUNDLE_VERSION and unset components
* re-adding support for ignoring beta
* refactor: add miniupnp 2.3.0 as a submodule
* refactor: remove miniupnpc submodule
* deps: specify the 2.3.0 branch
* build: point to miniupnp monorepo subdirectory miniupnpc
* Fix building miniupnp from Xcode
* fixed miniupnp updateminiupnpcstrings.sh usage
* updating to miniupnpc 2.2.6
* fix build for Windows
* code review: removing the header move
---------
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* chore: fix CGFloat comparison warnings in macOS code.
There are 2 cases:
1. Speed comparisons.
The lowest significant value displayed in UI is 0.1 bytes per sec.
See [NSString stringForSpeed] and [NSString stringForSpeedCompact].
2. Ratio limit comparison.
The lowest significant value displayed in UI is 0.01 (no unit).
This is based on maximumFractionDigits=2 set in related XIB file.
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* chore: fix warning about shadowed variable
CGFloat const difference was used twice in the same scope
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* chore: fix unused block parameter warnings
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* chore: disable GCC_WARN_64_TO_32_BIT_CONVERSION for libtransmission
This warnings are not reported with CMake build.
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* chore: disable CLANG_WARN_STRICT_PROTOTYPES for dht
This is third party target, warning is not enabled with CMake build.
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* chore: disable '-Wexit-time-destructors' warning with CMake.
There are two cases when this is reported in libtransmission:
1. `log_state` in anonymous namespace in `log.cc`.
2. static inline `dh_pool_mutex` in `tr_handshake` in `handshake.h`.
I don't see how this may be improved or how this affects correctness,
so don't nag about that.
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
---------
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* 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>
* Prefer `PROJECT_{SOURCE,BINARY}_DIR` to `CMAKE_` ones
* Extend use of 3rd-party dir vars to reduce duplication
* Fix typo in submodule repo name
* Remove `CURL::libcurl` target fallback
The target is always available since CMake 3.12, which is our current
minimum version.
* 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.
MSVC by default decodes source files in the current Windows code page if
they don't have a Unicode BOM, and also encodes strings and chars into
the current code page before storing them into the compiled binary. Our
files are always encoded in UTF-8, and our code always assumes runtime
strings are encoded in UTF-8, so we should pass the `/utf-8` flag to
MSVC.
Microsoft Docs:
https://learn.microsoft.com/en-us/cpp/build/reference/utf-8-set-source-and-executable-character-sets-to-utf-8
- in cmake, add transmission-web build target
- in cmake, test for `npm` if we're building transmission-web
- add npm to CI install deps; build transmission-web as needed
* build: bump libdeflate snapshot to 1.17
* Link to static libdeflate
Disable shared library and gzip program (both unused)
* Use platform-specific libdeflate library name
Co-authored-by: Mike Gelfand <mikedld@users.noreply.github.com>
* 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
* Reformat CMake code
* Bump minimum CMake version to 3.12
* Add target sources separately via `target_source()`
* Make `tr_win32_app_info()` add target sources on its own
* Don't use `include_directories()`
* Don't use `add_definitions()`
* Limit use of `add_compile_options()`
* Move VDKQueue target declaration to a subdirectory
* Add `tr_disable_source_files_compile()` helper
* Add `tr_target_glib_resources()` helper
* Add `tr_gettext_msgfmt()` helper
* Enable AUTOUIC for Qt client
* Enable AUTORCC for Qt client
* Remove AUTO{MOC,RCC,UIC} source group overrides
* Add `tr_target_idl_files()` helper
* Move source group setup to `tr_qt_add_translation()`
* Add `tr_target_xib_files()` helper
* Prefer `target_sources()` to intermediate variables
* Use explicit visibility versions of `target_*()` commands
* Prefer genexes to conditions in `target_*()` commands
* Add `tr_allow_compile_if()` helper
* Leave only top-level `project()`, remove the rest
* Minor fixups
* Fixup Mac QL plugin install
* Fixup IDE target folders and source groups
* Move jsonsl to third-party
This treats it as proper 3rd-party code to which our warning and style
settings don't extend.
* Move wildmat to third-party
This treats it as proper 3rd-party code to which our warning and style
settings don't extend.
* Fixup Xcode project to match new project structure
Defaults to `OFF`. Downstream packagers are advised against enabling it
as we can't guarantee it working on every possible configuration.
Added the actual compile flag in the GTK client subdirectory and not
the top-level CMakeLists.txt file due to other subprojects not being
ready.
Fixed the only GTK client warning reported by Clang on Mac.