Commit graph

180 commits

Author SHA1 Message Date
fanquake
b335710782
depends: patch around non-determinism in qt 2023-12-21 09:37:33 +00:00
fanquake
b0c290340c
Revert "build: Patch Qt to handle minimum macOS version properly"
This reverts commit 05aca09381.
2023-12-21 09:37:33 +00:00
MarcoFalke
fa67f096bd
build: Require C++20 compiler 2023-12-07 11:05:33 +01:00
Hennadii Stepanov
05aca09381
build: Patch Qt to handle minimum macOS version properly
This change is required to switch to macOS 14 SDK (Xcode 15).
2023-11-10 23:25:13 +00:00
fanquake
664c87354f
depends: drop -O1 workaround from arm64 apple Qt build 2023-11-02 15:59:46 +00:00
Hennadii Stepanov
8047bb6fea
build: Update qt package up to 5.15.11 2023-11-01 15:20:20 +00:00
fanquake
f0cebbdb2a
qt: enable -ltcg for windows HOST
Patch around multiple definition issues in Qt.

Co-authored-by: Cory Fields <cory-nospam-@coryfields.com>
2023-10-05 10:26:34 +01:00
Hennadii Stepanov
6988a2f097
build: Update qt package up to 5.15.10 2023-10-04 14:00:57 +01:00
fanquake
848eec0936
depends: fix unusable memory_resource in macos qt build
See https://codereview.qt-project.org/c/qt/qtbase/+/482392.
2023-10-03 13:31:19 +01:00
Hennadii Stepanov
79ef528511
build, macos: Fix qt package build with new Xcode 15 linker 2023-09-27 12:19:57 +01:00
Hennadii Stepanov
25e8fe70c6
build, qt: Fix handling of CXX=clang++ when building qt package 2023-03-23 14:38:02 +00:00
Hennadii Stepanov
affbf58a1e
build: Move environment variables into $(package)_config_env 2022-12-07 16:51:48 +00:00
Hennadii Stepanov
55e468f149
build: Add -no-mimetype-database option to qt package in depends
We do not use the `QMimeDatabase` class, and this change gets rid of
perl dependency.
Available since Qt 5.13.0.
2022-09-10 10:54:33 +02:00
Hennadii Stepanov
59f2cc23e0
build, qt: Use mkspecs/bitcoin-linux-g++ for all Linux hosts 2022-08-13 14:08:42 +01:00
Hennadii Stepanov
a2e733b946
doc: Remove no longer needed comments
Co-authored-by: fanquake <fanquake@gmail.com>
2022-08-13 14:08:04 +01:00
fanquake
08bd338277
build: optimise arm64 darwin qt build using -O1
Building at higher optimisation levels causes reproducibility issues
when building on different architectures.
2022-08-12 16:38:29 +01:00
fanquake
fd0e8df67c
qt: use patch over sed for guix CROSS_LIBRARY_PATH change 2022-07-30 16:03:46 +01:00
Hennadii Stepanov
ecb617fefe
build: Bump Qt to 5.15.5 in depends 2022-07-30 15:44:20 +01:00
fanquake
3009180751
depends: always use correct ar for win qt
If we don't set this explicitly, then qt will still use it's default
windows ar, when building with LTO (when we want it to use gcc-ar).

So set `QMAKE_LIB` which is used for win32, and defaults to `ar -rc`.
This way we always get the correct ar.

Issue can be seen building in Guix with LTO. i.e:
```bash
x86_64-w64-mingw32-ar: .obj/release/hb-blob.o: plugin needed to handle lto object
```
2022-07-26 09:38:42 +01:00
fanquake
c32fa85909
depends: modify FastFixedDtoa optimisation flags
This fixes a non-determinism issue in the asm produced for
this function when cross-compiling on x86_64 and aarch64 for
the arm-linux-gnueabihf HOST.

Related to #21194.
2022-07-19 12:12:26 +01:00
Hennadii Stepanov
3442865360
build: Use Link Time Optimization for Qt code on Linux
See: https://www.qt.io/blog/2019/01/02/qt-applications-lto
2022-07-15 23:58:45 +01:00
Hennadii Stepanov
71d33bf33f
build, qt: Fix QMAKE_CXXFLAGS expression for mingw32 host 2022-06-20 13:39:40 +02:00
Pavol Rusnak
7f6042849c
build, qt: use one patch per line in depends/packages/qt.mk 2022-04-01 17:02:46 +02:00
Hennadii Stepanov
826cbc470f
build, qt: drop fix_no_printer.patch
The removed patch is not required since switching Qt version from
5.12.11 to 5.15.2.
2022-04-01 16:56:41 +02:00
Pavol Rusnak
ef20add4c9
build, qt: bump Qt5 version to 5.15.3
Qt 5.15.3 release is a patch release made on the top of Qt 5.15.2. As a patch
release, Qt 5.15.3 does not add any new functionality but provides bug fixes
and other improvements.

https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/5.15.3/release-note.md

* dropped patches:
  - patches/qt/dont_use_avx_android_x86_64.patch
  - patches/qt/fix_bigsur_style.patch
* adjusted patches:
  - patches/qt/fix_android_jni_static.patch
  - patches/qt/fix_limits_header.patch
  - patches/qt/use_android_ndk23.patch

Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
2022-04-01 16:54:38 +02:00
fanquake
a24ef27cfe
build: patch around qt duplicate symbol issue
This is currently causing the same failure in two different PRs:
```bash
duplicate symbol 'lcQpaFonts()' in:
    /tmp/cirrus-ci-build/depends/x86_64-apple-darwin/lib/libQt5ThemeSupport.a(qgenericunixthemes.o)
    /tmp/cirrus-ci-build/depends/x86_64-apple-darwin/lib/libQt5FontDatabaseSupport.a(qfontengine_coretext.o)
ld: 1 duplicate symbol for architecture x86_64
```

```bash
x86_64-apple-darwin-ld: error: duplicate symbol: __Z10lcQpaFontsv
>>> defined in /tmp/cirrus-ci-build/depends/x86_64-apple-darwin/lib/libQt5ThemeSupport.a(qgenericunixthemes.o)
>>> defined in /tmp/cirrus-ci-build/depends/x86_64-apple-darwin/lib/libQt5FontDatabaseSupport.a(qfontengine_coretext.o)
```

Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
2022-03-31 21:23:38 +01:00
fanquake
75ae39eeec
build: add a default build tar in depends
This is so we can override it later for BSDs.
2022-02-10 12:33:02 +00:00
Hennadii Stepanov
01d1845a80
build, qt: Specify QMAKE_CXX explicitly
This change allows to drop the `update-alternatives` step if the
`g++-mingw-w64-x86-64` package has been installed.
2022-02-02 19:28:36 +02:00
Hennadii Stepanov
29e1794ba5
build, qt: No need to set inapplicable QPA backend for Android 2022-01-03 14:45:39 +02:00
fanquake
de28c348a0
Merge bitcoin/bitcoin#22814: build: Add ability to build qt in depends with -stdlib=libc++
33796a964a build: Add ability to build qt in depends with -stdlib=libc++ (Hennadii Stepanov)

Pull request description:

  This PR makes possible to build the `qt` package in depends against `libc++` for x86_64 platform.

  Fixes #22344.

  Required for #22815.

  Also this PR [fixes](https://github.com/bitcoin/bitcoin/pull/23060#discussion_r716077050) the `[no wallet] [bionic]` task on CI:
  - on master (a8bbd4cc81), https://api.cirrus-ci.com/v1/task/5558609250615296/logs/ci.log:
  ```
  Options used to compile and link:
    external signer = yes
    multiprocess    = no
    with libs       = yes
    with wallet     = no
    with gui / qt   = no
  ```
  - this PR, https://api.cirrus-ci.com/v1/task/5502605561430016/logs/ci.log:
  ```
  Options used to compile and link:
    external signer = yes
    multiprocess    = no
    with libs       = yes
    with wallet     = no
    with gui / qt   = yes
  ```

ACKs for top commit:
  fanquake:
    ACK 33796a964a - While this sort of string matching is fragile, I think the risk of this causing any actual issues is low.

Tree-SHA512: 586dde2e9864cec7a49aeb4f2b77fb8c4ae96bd10b51f9c6de0cfe8512ad61db15bb7f8d1b0eb6a5a66fd2deee52ac52218f01eb6be107ac12f1a956190de54b
2021-12-30 11:36:30 +08:00
Hennadii Stepanov
11736dbe3d
build, qt: Hardcode last modified timestamp in Qt RCC
This change allows the already built qt package to be reused even with
the SOURCE_DATE_EPOCH variable set, e.g., for Guix builds.
2021-12-25 23:00:37 +02:00
W. J. van der Laan
fee16b15fa
Merge bitcoin/bitcoin#23744: build, qt: Drop support for i686-linux-android host
66a20a54a2 build, qt: Drop support for `i686-linux-android` host (Hennadii Stepanov)

Pull request description:

  There are no reasons to keep support for `i686-linux-android` host, which is actually broken in master (50c502f54a), and this fact has been unnoticed for months :)

  https://github.com/bitcoin/bitcoin/pull/23675#issuecomment-986206434:
  > I'm surprised `i686-linux-android` ABI is still supported. I would love to drop it...

  https://github.com/bitcoin/bitcoin/pull/23675#issuecomment-991340132
  > What is `i686-linux-android`? 32-bit x86 android? is that really a thing?

ACKs for top commit:
  prusnak:
    utACK 66a20a54a2

Tree-SHA512: 211f794de2fc569f0ade2a4da805b8bfd4ce2ab0930c5d427acc4f5d015fcdc4911f02fc64f6401197f7641aed79944a9594be80c817547be3269cdd721cf79b
2021-12-15 21:56:01 +01:00
Hennadii Stepanov
3b8f4e347b
build, qt: Drop unused CROSS_COMPILE variable for Android builds
Since Qt 5.14.0 the CROSS_COMPILE variable always being overridden by
the Qt build system internally.

See upstream commit: c28b881c98fadcd3415370fad2525b558f6b03e4
2021-12-12 18:08:43 +02:00
Hennadii Stepanov
66a20a54a2
build, qt: Drop support for i686-linux-android host 2021-12-11 08:15:25 +02:00
fanquake
0d101050ef
Merge bitcoin/bitcoin#23678: build: Fix build for Android x86_64
ac9e4bc1e2 build: Fix build for Android x86_64 (Hennadii Stepanov)

Pull request description:

  bitcoin/bitcoin#23489 [introduced](https://github.com/bitcoin/bitcoin/pull/23489#issuecomment-985457915) a regression making build for `HOST=x86_64-linux-android` broken due to the [QTBUG-86785](https://bugreports.qt.io/browse/QTBUG-86785).

  This PR fixes this regression.

ACKs for top commit:
  fanquake:
    ACK ac9e4bc1e2

Tree-SHA512: c841a56d745c4b4a75e1bc4d89752de153aa6328752a8fd7df614363ed046a291a9eb58605d82fcba21f3c8b0f0bf47786ed0a63c29f81f5d4ad9c0b12304100
2021-12-08 09:29:39 +08:00
Hennadii Stepanov
ac9e4bc1e2
build: Fix build for Android x86_64 2021-12-05 15:41:08 +02:00
Hennadii Stepanov
78a6bc6919
build, qt: Use Android NDK r23 LTS 2021-12-05 03:00:02 +02:00
Hennadii Stepanov
1732eaba4f
build, qt: Fix regression in rendering on macOS Big Sur 2021-12-03 14:07:12 +08:00
fanquake
c870027cc2
build: qt 5.15.2 2021-12-03 14:07:12 +08:00
fanquake
904ba2aa40
build: add libxcb_util_wm 0.4.1
Required for xcb_icccm.
2021-12-03 14:07:12 +08:00
fanquake
0e2ca89a78
build: add libxcb_util_image 0.4.0 2021-12-03 14:07:11 +08:00
fanquake
36af9b6c94
build: add libxcb_util_keysyms 0.4.0 2021-12-03 14:07:11 +08:00
fanquake
b3cfbf5af2
build: add libxcb_util_render 0.3.9 2021-12-03 14:07:11 +08:00
fanquake
e545b56dc5
build: add libxcb_util 0.4.0 2021-12-03 14:07:11 +08:00
Hennadii Stepanov
855bd75503
build, qt: Ditch no_sdk_version_check.patch 2021-11-28 20:56:54 +02:00
Hennadii Stepanov
f6e2781675
build, qt, macOS: Don't pass -device-option when building natively 2021-11-25 09:35:24 +02:00
Hennadii Stepanov
667f0689ca
build, qt, macOS: Don't hard-code x86_64 as the arch when using qmake
This change fixes qt build on M1 Apple Silicon
2021-11-25 09:35:17 +02:00
Kittywhiskers Van Gogh
8196b0a2bc build: patch qt to explicitly define previously implicit header include
macOS Monterey has refactored some includes such that implicitly defined headers were no longer exposed and that in turns breaks building Qt on macOS 12.

Additional Resources:
 - https://bugreports.qt.io/browse/QTBUG-97855
 - https://codereview.qt-project.org/c/qt/qtbase/+/378706
 - https://code.qt.io/cgit/qt/qtbase.git/commit/src/plugins/platforms/cocoa?id=dece6f5840463ae2ddf927d65eb1b3680e34a547
2021-11-24 14:03:12 +05:30
Hennadii Stepanov
acb9400ab6
build: Drop non-existent share/pkgconfig directory 2021-10-18 14:43:13 +03:00
Hennadii Stepanov
33796a964a
build: Add ability to build qt in depends with -stdlib=libc++ 2021-09-28 09:13:19 +03:00