| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
Qt6ToolsToolsTargets.cmake provides a Qt6::qdoc target, so there is
no need to guess qdoc path based on qmake path. It is the same file
where Qt6::qhelpgenerator is defined, which we use here too.
This fixes build on Debian where we moved Qt6::qmake into a different
path to help with cross-building, leaving Qt6::qdoc where it was.
Change-Id: I9e66ffafc8aeb18edc1fe2b27608caa4ee90c3f7
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sample warning:
Building CXX object src\shared\qbs\src\shared\json\CMakeFiles\qbsjson.dir\json.cpp.obj
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include\ostream(378): warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include\ostream(371): note: while compiling class template member function 'std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(unsigned __int64)'
F:\Projects\qt-creator\qt-creator\src\shared\qbs\src\shared\json\json.cpp(4142): note: see reference to function template instantiation 'std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(unsigned __int64)' being compiled
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include\ostream(671): note: see reference to class template instantiation 'std::basic_ostream<char,std::char_traits<char>>' being compiled
Change-Id: I404cdeb5e447fe880998aaec4c576c0ed6dd3507
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Newer clang versions seem to expose serious bugs in QtScript, whose
complexity makes it difficult to track them down.
We therefore switch to the more light-weight QuickJS, which offers all
the features we need (most notably property access interception), as
well as good performance.
To save some porting effort, we removed the long-deprecated loadFile()
and loadExtension() functions.
During the porting procedure, we noticed and fixed thread safety issues
in artifact access from JS commands.
We consider this change important enough to bump the major version, so
the next release will be 2.0.
Detailed benchmarking data is below. In summary, we see a modest speed-
up at the cost of a similarly modest increase in memory consumption
(with the exception of project resolving on macOS, which has become a
bit slower). Importantly, the increase does not rise with project size,
as the comparison of qbs vs Qt Creator shows.
Output of qbs_benchmarker on Linux with qbs as test project:
========== Performance data for Resolving ==========
Old instruction count: 12870602895
New instruction count: 11923459780
Relative change: -8 %
Old peak memory usage: 61775848 Bytes
New peak memory usage: 67583424 Bytes
Relative change: +9 %
========== Performance data for Rule Execution ==========
Old instruction count: 4074062223
New instruction count: 3887473574
Relative change: -5 %
Old peak memory usage: 35123704 Bytes
New peak memory usage: 38398392 Bytes
Relative change: +9 %
========== Performance data for Null Build ==========
Old instruction count: 1104417596
New instruction count: 1011033948
Relative change: -9 %
Old peak memory usage: 24461824 Bytes
New peak memory usage: 25325920 Bytes
Relative change: +3 %
Output of qbs_benchmarker on Linux with Qt Creator as test project:
========== Performance data for Resolving ==========
Old instruction count: 67166450352
New instruction count: 60772791018
Relative change: -10 %
Old peak memory usage: 327011616 Bytes
New peak memory usage: 343724176 Bytes
Relative change: +5 %
========== Performance data for Rule Execution ==========
Old instruction count: 71684351183
New instruction count: 67051936965
Relative change: -7 %
Old peak memory usage: 374913688 Bytes
New peak memory usage: 387790992 Bytes
Relative change: +3 %
========== Performance data for Null Build ==========
Old instruction count: 8383156078
New instruction count: 7930705668
Relative change: -6 %
Old peak memory usage: 180468360 Bytes
New peak memory usage: 182490384 Bytes
Relative change: +1 %
Real-world data building Qt Creator (using qbs --log-time, several runs,
removing outliers):
macOS:
Resolving: 43s -> 47s
Rule execution: 17s -> 14s
Windows:
Resolving: 18s -> 16s
Rule execution: 22s -> 17s
Fixes: QBS-913
Fixes: QBS-1103
Fixes: QBS-1126
Fixes: QBS-1227
Fixes: QBS-1684
Change-Id: Ie5088155026e85bbd1e303f1c67addb15810a3cb
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
|
|
|
|
|
| |
Change-Id: I2d64beeb48370cd51c87c7dff835451f89ae04c4
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
| |
Required for MacPorts.
Change-Id: I0ed3e6ddb0414669fccc8102e228631040b1fbb7
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The HTML documentation was not installed if QCH doc was not
requested, fix that.
Introduce a new 'qbs_docs' target which should be used instead
of the 'BuildQbsDocumentation' target. This is done for
compatibility with QMake.
Also, introduce a single 'qbs_docs' component for installing docs
in one go - this is required for MacPorts since there is no easy way
to install multiple components at once with CMake.
Which docs will be installed is controlled at the configure step:
$ cmake -DQBS_INSTALL_HTML_DOCS=1 -DQBS_INSTALL_QCH_DOCS=1 -DQBS_INSTALL_MAN_PAGE=1
$ cmake --build . --target qbs_docs # not required for man-page only install
$ cmake --install . --component qbs_docs
Change-Id: I174662c54255a8fb10529b1961c298eb1f1b1470
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
| |
Change-Id: Ibce74cf1b524c8c08b38dfc76549b4723ea705b3
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
| |
Because of this bug, 1.22.0 was correctly replaced with 1.22, but
1.22.1 was wrongly left as is.
Change-Id: Iadadb543fa57c4f897bbff3109cfc3216e92b8ae
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
| |
- qbs.qch should go to QT_INSTALL_DOCS, not to QBS_DOC_INSTALL_DIR
(which ends with /html by default).
- HTML documentation was not installed at all.
Change-Id: I11fa33e5d2f9e0a39184a7d82ac1a8faf064f25e
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
| |
Fixes: QTCREATORBUG-26407
Change-Id: I840d2446f91116a9707960de4a27f04a3ad6d068
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
|
|
|
|
|
| |
Change-Id: I597c984e98ff5bd5b05d82e4ec27c20ea59fba30
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
|
|
|
|
|
|
| |
Task-number: QBS-1671
Change-Id: I49672dc4609b370407eb7c76de72e63beac5aca3
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
|
|
|
|
|
|
|
| |
Fixes: QBS-1671
Change-Id: I3f0522d6990caa661997dd773d9b3af662bd2ed8
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
| |
On macOS, we need to exclude the @rpath/ prefix from the dylib name when
building with -DQBS_ENABLE_RPATH=NO
Change-Id: I91c17613de6f29ca54cfbfa40f149580d1120073
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
| |
Since QtGui dependency was removed, there is no reason not to
Change-Id: Ib8975451f3c36a77e22a077bba18b5659f414767
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
|
|
|
|
|
|
|
| |
Also, switch Linux CMake job to build Qbs with Qt6
Change-Id: I188845a7cc086a8c87dbb7445ea95f99b26d94ef
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also, make QtScript dependency optional like we do in the Qbs build.
Tested on macOS, Linux and Windows.
CMake 3.15 is now required for the CMP0092 policy which removes default
warning flags from CMAKE_CXX_FLAGS.
Change-Id: I199fb802d5ad72d1ac8d5a89c05372c43581c95d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
| |
The original approach did not work when using
NMake or MinGW Makefiles (but worked with Ninja)
Change-Id: I1bfdb213b3007b100bb4cdcdbe4deb3935b6e266
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
| |
The API name is misleading and can make users think this is for building
against Qbs.
Change-Id: I8d6553cde873389d0674ee779292af59f7d04c32
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
...required for Brew to switch to CMake - current QMake build
explicitly disables RPATH.
Also, move all build options to QbsApi.cmake to have them in one place.
Change-Id: I97bbfa1de3e34e9dc7a7f8ac4271f47e14ef435e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
|
|
|
|
|
|
|
|
|
| |
Quotes in the command break setting PATH
Amends 9c8451e9a76f1173d4c7fa4d538e2ed676743110
Change-Id: I2d5b40d9b302007da45c57e2f86856e175263c49
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
|
|
|
|
|
|
|
| |
It should be set before used
Change-Id: I133c7791f9efbb1f76e898109503e120b5adf18e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
|
|
|
|
|
|
|
| |
Amends c21932163779bcfe4577ac2e3326b8c113884829
Change-Id: I078df77ebfd7921c9c8bcaf131ae06a3a1fcd181
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
| |
It was never implemented
Fixes: QBS-1618
Change-Id: I702410b546cacd439989268d3d4fbb18051d1819
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make DLL destination configurable independently of LIB destination.
In Qt Creator we put DLLs into bin\, but LIBs into lib\.
Fix installation of plugin DLLs by adding corresponding RUNTIME section.
Fix setting PATH to Qt & Qbs libraries for BuildQbsResources.
Change-Id: I5029e82b8822c7e3ad43afe69530b2d4e2f918b3
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
|
| |
So we can configure the right paths for direct inclusion in the Qt
Creator build.
Change-Id: Ie83eb402f0d9ce5f1ef32737921dc2ec8b43a315
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
|
|
|
|
|
|
|
| |
Should be _SCL_SECURE_NO_WARNINGS, not _CRT_SECURE_NO_WARNINGS
Change-Id: I339536cf751790edec46c058a8974abe79832d29
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
| |
...to match the Qbs build
Change-Id: Ib17d9625bf06d2eed69f51cc0e6e6cbe7ba99085
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
| |
Change-Id: I94bd7288a9ef3b7a785a76386ff7d395cdd01f81
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
We should not set those macros in the function, but we should set them
independently for each target, otherwise the import/export macros for
qbscore will be messed up.
This amends b67b08f1c2c.
Change-Id: Iff61ce050cd6c4c4e71d3e3e6a97cc3525459a39
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
It should be 'qbscore', not 'corelib'. Same for the static logging
library.
This amends b67b08f1c2c.
Change-Id: I3b79ce75168360f8708b143471f0b4c223b2f5fd
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
This change allows to build Qbs using CMake build tool
Tested platforms
- Linux (gcc)
- macOS (clang)
- Windows (msvc2017)
Missing features (compared to Qbs build)
- Documentation build
- Bundled QtScript support
- Static build
- .pc file for qbscore
- qbs module for qbscore
Change-Id: I09b5dadd6723d5a47e5ef2a9a38d3300488718f2
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|