aboutsummaryrefslogtreecommitdiffstats
path: root/changelogs/changes-1.16.0.md
blob: 23628b9049607f5cc19a8b2565254ea790544b1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# General

* A new freedesktop module helps UNIX application developers to follow the
  freedesktop.org guidelines.
* The Android module now allows resourcesDir, sourcesDir and assetsDir to be
  specified as relative paths.
* A new ConanfileProbe allows better and more flexible integration of Qbs and
  the Conan package manager.
* A new hostArchitecture property has been added to the qbs module.


# Language

* List properties in modules are now merged according to inter-module
  dependencies. This is important when flags like cpp.staticLibraries are
  contributed by multiple modules with dependencies between each other.
  (QBS-1517).
* Dependency matching of multiplexed products is now less strict and does not
  require all multiplex properties to match. For instance, if product A is
  multiplexed over qbs.architecture and qbs.buildVariant while product B is only
  multiplexed over one of these axes, then Qbs no longer fails (QBS-1515).


# C/C++ Support

* The Renesas RL78 architecture is now supported in GCC and IAR and the
  toolchains are auto-detected by qbs-setup-toolchains.
* The Renesas RX as well as the RH850, V850, 78K are now supported in IAR and
  the toolchains are auto-detected by qbs-setup-toolchains.
* The MPLAB X32 GCC-based toolchain is now auto-detected on Windows.
* Multiple occurrences of static libraries on the linker command line are now
  pruned and the last instance always wins when using GCC or LLVM-based
  toolchains. This avoids problems with excessively long linker command lines
  (QBS-1273).
* Clang-cl and MSVC toolchains use the compiler frontend instead of the linker
  when linking. The old behavior can be restored by setting cpp.linkerMode to
  "manual". This allows to use sanitizers with clang-cl by passing
  "-fsanitise=xxx" via cpp.driverFlags (QBS-1522).
* The clang-cl toolchain now uses "link.exe" as the default linker.
  "lld-link.exe" can be explicitly selected by setting cpp.linkerVariant to
  "lld" (QBS-1522).
* The MSVC, clang-cl and MinGW toolchains are now automatically detected if the
  profile does not set an explicit installation location, for instance because
  no profile was given.
* Installation of separate debug information can now be enabled and configured
  by simply setting the installDebugInformation and debugInformationInstallDir
  properties in the Application and Library convenience items. This works for
  toolchains based upon GCC, MSVC or clang-cl.
* Xcode version 11.4 is now supported on macOS.


# Qt Support

* Qbs now supports Qt 5.14 for Android which comes as a multi-architecture
  package. The qbs-setup-android tool has been updated accordingly (QBS-1497).
* JSON metatype files generated by moc (Qt >= 5.15) are supported by setting
  Qt.core.generateMetaTypesFile and Qt.core.metaTypesInstallDir (QBS-1531).
* Pure debug builds of Qt (>= 5.14) with MinGW are now properly supported. They
  don't have the 'd' suffix (QTBUG-80792).
* The QML type declaration mechanism introduced in Qt 5.15 is now supported by
  the Qt.qml module (QBS-1531).
* Generated qmltypes files are now named according to the product's targetName
  property (QTBUG-82710).


# Documentation

* The how-to chapter has been extended with sections about debugging Qbs files
  and about building separate debug information in C++ projects.
* The item and module reference documentation has been improved for the
  cpp.libraryPaths, cpp.dynamicLibraries (QBS-1516), qbs.toolchainType and
  qbs.toolchain properties as well as the Export item and the Library
  convenience item.
* Documentation for various path probes has been added (QBS-1187).
* The README was extended and a CONTRIBUTING file has been added which provides
  useful information for potential contributors. This is important for people
  looking at our github mirror.


# Infrastructure

* The Debian Docker image has been removed.
* We are now using ccache and clcache in our CI pipelines to shrink the build
  time.
* Clang-tidy is now used to identify potential problems in the code base and a
  lot of action was taken upon a lot of findings.
* A Docker image for testing Qbs with Android and Qt has been added.


# Important Bug Fixes

* Fix nullpointer access and heap-use-after-free error (QBS-1485).
* Select the right instance when Depends.profiles is used on a dependency with
  an aggregator product (QBS-1513).
* Fix crash when specifying a non-existing profile in Depends.profiles
  (QBS-1514).
* Try harder to detect GCC toolchains in qbs-setup-toolchains (QBS-1524).
* Code signing for Core Foundation Bundles on macOS has been fixed.
* Automatic artifact scanning now prefers artifacts from product dependencies if
  multiple candidates are found. This improves dependency tracking in complex
  projects (QBS-1532).
* The grpcIncludePath property in the probufcpp module has been fixed
  (QBS-1542).
* Qbs does no longer crash when accessing a property of a non-existent module in
  "IDE mode".


# Contributors

* Alberto Mardegan
* Björn Schäpers
* BogDan Vatra
* Christian Kandeler
* Christian Stenger
* Denis Shienkov
* Ivan Komissarov
* Jochen Ulrich
* Joerg Bornemann
* Leon Buckel
* Marius Sincovici
* Maximilian Goldstein
* Mitch Curtis
* Oliver Wolff
* Orgad Shaneh
* Raphaël Cotty
* Richard Weickelt