Commit Graph

205 Commits

Author SHA1 Message Date
Cœur c63c66c737
fix: Sparkle Version Comparator (#5263)
* 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
2024-03-17 16:23:39 -05:00
Cœur a72a93764e
deps: update miniupnp to 2.3.4 (miniupnpc 2.2.6) (#6459)
* 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>
2024-03-15 18:19:51 -05:00
Dzmitry Neviadomski 8e35e526c6
chore: fix warnings when compiling macOS client with either Xcode or CMake (#6676)
* 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>
2024-03-15 00:16:26 -05:00
Geoffrey Bonneville 7030b53e2e
android patches for ndk (#6024)
* 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>
2024-01-21 15:27:24 +00:00
Yat Ho cf077bbba0
chore: bump libutp (#6251) 2023-11-14 13:24:18 -06:00
Mike Gelfand 1c421d6d23
Minor CMake maintainability improvements (#6186)
* 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.
2023-10-30 20:44:34 +03:00
Yat Ho b7c5aca6ad
feat: update `TR_VCS_REVISION` when git HEAD changes (#6100) 2023-10-30 02:03:40 -04:00
Yat Ho 2130eb941a
refactor: drop jsonsl in favour of RapidJSON (#6138) 2023-10-21 14:00:12 -05:00
Yat Ho a20d79a933
chore: bump minimum openssl version to 1.1.0 (#6047) 2023-09-29 23:09:10 -05:00
Mike Gelfand 586cff9506
Switch to list view for torrents list (GTK 4) (#5858)
* 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.
2023-08-06 04:26:29 +01:00
Charles Kerr 432fc9bafc
refactor: add libsmall dependency (#5649)
* refactor: add small dependency

* refactor: use small in variant.cc

* refactor: use small in cache.h
2023-06-20 22:50:36 -05:00
Cœur 6156d90917
build: use RECOMMENDED_MACOSX_DEPLOYMENT_TARGET (#5282) 2023-04-14 15:02:52 -05:00
Cœur 97352a60ad
build: cmake Xcode recommended build settings (#4931) 2023-04-14 09:57:49 -05:00
Charles Kerr 487f5d9676
chore: bump version to 4.1.0-dev (#5392) 2023-04-14 08:59:50 -05:00
Charles Kerr 6b0e49bbb2 chore: bump version to 4.0.3 2023-04-13 21:21:36 -05:00
Charles Kerr 47e141563a
fixup: address 5258 code review (#5295) 2023-03-27 11:04:10 -05:00
Charles Kerr 9fc0e4ff61
fix: disable-deprecated by default for end users (#5289)
deprecations can be turned on manually and are auto-enabled in CI
2023-03-24 13:34:30 -05:00
Charles Kerr 8dccc290d7 chore: bump version to 4.0.2-dev 2023-03-16 02:51:22 -05:00
Charles Kerr 2a57b17031 chore: bump version to 4.0.2 2023-03-15 15:58:20 -05:00
Charles Kerr 487cc27e11 chore: bump version to 4.0.1-dev 2023-02-22 17:02:19 -06:00
Charles Kerr e1c6e1be43 chore: bump version to 4.0.1 2023-02-22 16:41:35 -06:00
Thomas Weißschuh 8f8bcf720a
ci: add option to disable installation of web assets (#4906)
Fixes #4864
2023-02-22 06:25:50 -06:00
fghzxm e2b6dc48b1
build: set /utf-8 flag when using MSVC (#4975)
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
2023-02-22 06:00:07 -06:00
abubaca4 3c9d997f47
downgrade libdeflate to 1.7 (#4970)
transmission work with libdeflate 1.7 that delivered with debian 11
2023-02-20 21:33:50 -06:00
Thomas Klausner 62a60b4ea4
fix: link libquota on NetBSD to fix FTBFS (#4863) 2023-02-13 12:04:14 -06:00
Thomas Weißschuh 05dded12a0
build: install rebuilt web if available (#4865) 2023-02-13 10:52:53 -06:00
Charles Kerr 2a74efa24a
build: disable clang-tidy by default (#4824)
workaround for https://github.com/llvm/llvm-project/issues/59492

Fixes #4821.
2023-02-11 09:28:52 -06:00
Mike Gelfand b8e7b15804
Speed up Appveyor builds with ccache (#4823) 2023-02-11 13:56:08 +00:00
Mike Gelfand 39acf93f1a
Always build bundled libb64 and libutp libraries as static (#4810) 2023-02-11 00:08:55 +00:00
Mike Gelfand 44546674d9
Include libb64 and libutp as subprojects (#4762)
* Include libb64 and libutp as subprojects

* Build 3rd-party subprojects before CodeQL analysis
2023-02-09 19:12:25 +00:00
Charles Kerr 7a686a53f3
build: renamed ENABLE_WEB build option for clarity (#4760) 2023-02-08 17:47:07 -06:00
Charles Kerr 6576a2a1db chore: bump version to 4.0.0-dev 2023-02-07 20:07:33 -06:00
Charles Kerr 280ace12f8
chore: bump version to 4.0.0 (#4730) 2023-02-07 17:37:08 -06:00
Charles Kerr 23bb8fa32e
fix: detect NPM version for ENABLE_WEB in cmake (#4669) 2023-01-25 22:17:24 -06:00
Charles Kerr 5fe95ad5b0
fix: out-of-tree build (#4641)
- 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
2023-01-23 15:59:41 -06:00
Charles Kerr 75876e92e0
build: revert the minimum libdeflate version to 1.10 (#4607) 2023-01-17 12:45:08 -06:00
Charles Kerr 854e01e893
build: bump libdeflate snapshot to 1.17 (#4596)
* 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>
2023-01-15 09:55:16 -06:00
Charles Kerr 8b1290c895
build: remove explicit iconv dependency in libtransmission (#4565) 2023-01-08 22:21:31 -06:00
Charles Kerr cc4cbff049
refactor: misc-use-anonymous-namespace pt. 2 (#4538) 2023-01-04 22:16:22 -06:00
Charles Kerr 4f88f0afba chore: bump version to 4.0.0-beta.3-dev 2023-01-04 18:47:49 -06:00
Charles Kerr fcff89a21a
chore: 4.0.0-beta.3 (#4536)
* chore: bump version to 4.0.0-beta.3

* docs: add 4.0.0-beta.3 release notes
2023-01-04 17:22:13 -06:00
Charles Kerr 106bcbbe7b
fix: clang-tidy-15 warnings (#4525) 2023-01-03 14:10:12 -06:00
Mike Gelfand 57e6b06921
Modernize CMake code (ongoing refactoring) (#4515)
* 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
2023-01-02 16:23:51 +00:00
Charles Kerr 47ebb3f63a
refactor: remove obsolete lightweight build option (#4509) 2023-01-01 16:24:12 -06:00
Mike Gelfand bc380511db
Modernize CMake code (ongoing refactoring) (#4507)
* 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
2023-01-01 19:49:48 +00:00
Mike Gelfand f7edcfcb2a
Drop obsolete CyaSSL and PolarSSL crypto backends (#4495)
* Drop support for CyaSSL (keep WolfSSL)

* Drop support for PolarSSL (keep MbedTLS)
2022-12-29 22:38:04 +00:00
Gary Elshaw 84566d42f0
Update qt cmakelists to include support for building svg (#4437) 2022-12-27 17:18:51 +00:00
Mike Gelfand 128cf34123
Move jsonsl and wildmat to third-party (#4402)
* 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
2022-12-18 19:19:07 +00:00
Mike Gelfand e694c3e3a0
Use C++ (not C) warning flags for GTK client (#4395)
Use the opportunity to reduce duplication.
2022-12-18 01:02:03 +00:00
Mike Gelfand 67c4e4081c
Add `ENABLE_WERROR` option for use on CI (#4381)
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.
2022-12-16 22:38:30 +00:00