diff --git a/.github/workflows/build_cmake.yml b/.github/workflows/build_cmake.yml index 92ce88f52cc..d09b385b87e 100644 --- a/.github/workflows/build_cmake.yml +++ b/.github/workflows/build_cmake.yml @@ -1,6 +1,10 @@ name: CMake Build Matrix -on: [push, pull_request] +on: + push: + paths-ignore: + - 'dist/**' + - 'doc/**' env: QT_VERSION: 6.2.1 @@ -350,34 +354,58 @@ jobs: message("::set-output name=elfutils_dir::${elfutils_dir}") - name: Download ccache - id: ccache shell: cmake -P {0} run: | set(ccache_url "https://github.com/cristianadam/ccache/releases/download/v$ENV{CCACHE_VERSION}/${{ runner.os }}.tar.xz") file(DOWNLOAD "${ccache_url}" ./ccache.tar.xz SHOW_PROGRESS) execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ./ccache.tar.xz) - - name: Prepare ccache timestamp - id: ccache_cache_timestamp + - name: Prepare ccache archive name + id: ccache shell: cmake -P {0} run: | - string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC) - message("::set-output name=timestamp::${current_date}") - file(TO_CMAKE_PATH "$ENV{GITHUB_WORKSPACE}" github_workspace) include(${github_workspace}/cmake/QtCreatorIDEBranding.cmake) string(REPLACE "." ";" IDE_VERSION_LIST ${IDE_VERSION_DISPLAY}) list(GET IDE_VERSION_LIST 0 IDE_VERSION_MAJOR) - message("::set-output name=ide_major_version::${IDE_VERSION_MAJOR}") + message("::set-output name=archive_name::ccache-${{ matrix.config.os }}-${{ matrix.config.cc }}-qtc${IDE_VERSION_MAJOR}") + - name: Download ccache archive + shell: cmake -P {0} + run: | + file(WRITE $ENV{GITHUB_WORKSPACE}/netrc.txt + "default login runneradmin password ${{ secrets.GITHUB_TOKEN }}") - - name: ccache cache files - uses: actions/cache@v1 - with: - path: .ccache - key: ${{ matrix.config.name }}-ccache-${{ steps.ccache_cache_timestamp.outputs.ide_major_version }}-${{ steps.ccache_cache_timestamp.outputs.timestamp }} - restore-keys: | - ${{ matrix.config.name }}-ccache-${{ steps.ccache_cache_timestamp.outputs.ide_major_version }} + foreach(page_id RANGE 1 10) + file( + DOWNLOAD "https://api.github.com/repos/${{ github.repository }}/actions/artifacts?per_page=100&page=${page_id}" + HTTPHEADER "Accept: application/vnd.github.v3+json" + NETRC_FILE "$ENV{GITHUB_WORKSPACE}/netrc.txt" + NETRC REQUIRED + SHOW_PROGRESS + artifacts.json) + file(READ artifacts.json artifacts_json) + + string(JSON artifacts_length LENGTH "${artifacts_json}" "artifacts") + math(EXPR artifacts_length "${artifacts_length} - 1") + foreach(idx RANGE 0 ${artifacts_length}) + string(JSON artifact_js GET "${artifacts_json}" "artifacts" ${idx}) + string(JSON name GET "${artifact_js}" "name") + if ("${name}" STREQUAL "${{ steps.ccache.outputs.archive_name }}") + string(JSON download_url GET "${artifact_js}" "archive_download_url") + file(DOWNLOAD "${download_url}" + "${{ steps.ccache.outputs.archive_name }}.zip" + NETRC_FILE "$ENV{GITHUB_WORKSPACE}/netrc.txt" + NETRC REQUIRED + SHOW_PROGRESS) + execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf "${{ steps.ccache.outputs.archive_name }}.zip") + file(MAKE_DIRECTORY .ccache) + execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf "../${{ steps.ccache.outputs.archive_name }}.tar" WORKING_DIRECTORY .ccache) + + return() + endif() + endforeach() + endforeach() - name: Install system libs shell: cmake -P {0} @@ -455,8 +483,10 @@ jobs: string(REPLACE "x86" "x64" Python3_EXECUTABLE "${Python3_EXECUTABLE}") set(WITH_TESTS "--with-tests") + set(NO_DMG "--no-dmg") if (${{github.ref}} MATCHES "tags/v") unset(WITH_TESTS) + unset(NO_DMG) endif() execute_process( @@ -472,6 +502,7 @@ jobs: ${WITH_TESTS} ${CDB_OPTION} ${ELFUTILS_OPTION} + ${NO_DMG} --add-config=-DCMAKE_C_COMPILER_LAUNCHER=ccache --add-config=-DCMAKE_CXX_COMPILER_LAUNCHER=ccache --add-config=-DIDE_REVISION_URL=https://github.com/$ENV{GITHUB_REPOSITORY}/commits/$ENV{GITHUB_SHA} @@ -534,38 +565,48 @@ jobs: endif() - name: Upload - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v2 with: path: build/qtcreator-${{ matrix.config.artifact }}-${{ github.run_id }}.7z name: qtcreator-${{ matrix.config.artifact }}-${{ github.run_id }}.7z - name: Upload Devel - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v2 with: path: build/qtcreator-${{ matrix.config.artifact }}-${{ github.run_id }}_dev.7z name: qtcreator-${{ matrix.config.artifact }}-${{ github.run_id }}_dev.7z - name: Upload wininterrupt if: runner.os == 'Windows' - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v2 with: path: build/wininterrupt-${{ matrix.config.artifact }}-${{ github.run_id }}.7z name: wininterrupt-${{ matrix.config.artifact }}-${{ github.run_id }}.7z - name: Upload qtcreatorcdbext if: runner.os == 'Windows' && matrix.config.is_msvc - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v2 with: path: build/qtcreatorcdbext-${{ matrix.config.artifact }}-${{ github.run_id }}.7z name: qtcreatorcdbext-${{ matrix.config.artifact }}-${{ github.run_id }}.7z - name: Upload disk image - if: runner.os == 'macOS' - uses: actions/upload-artifact@v1 + if: runner.os == 'macOS' && contains(github.ref, 'tags/v') + uses: actions/upload-artifact@v2 with: path: build/qt-creator-${{ matrix.config.artifact }}-${{ github.run_id }}.dmg name: qt-creator-${{ matrix.config.artifact }}-${{ github.run_id }}.dmg + - name: Create ccache archive + working-directory: .ccache + run: cmake -E tar cf ../${{ steps.ccache.outputs.archive_name }}.tar . + + - name: Upload ccache archive + uses: actions/upload-artifact@v2 + with: + path: ./${{ steps.ccache.outputs.archive_name }}.tar + name: ${{ steps.ccache.outputs.archive_name }} + release: if: contains(github.ref, 'tags/v') runs-on: ubuntu-latest @@ -587,7 +628,7 @@ jobs: run: | echo "${{ steps.create_release.outputs.upload_url }}" > ./upload_url - - uses: actions/upload-artifact@v1 + - uses: actions/upload-artifact@v2 with: path: ./upload_url name: upload_url @@ -620,40 +661,40 @@ jobs: steps: - name: Download artifact - uses: actions/download-artifact@v1 + uses: actions/download-artifact@v2 with: name: qtcreator-${{ matrix.config.artifact }}-${{ github.run_id }}.7z path: ./ - name: Download Devel artifact - uses: actions/download-artifact@v1 + uses: actions/download-artifact@v2 with: name: qtcreator-${{ matrix.config.artifact }}-${{ github.run_id }}_dev.7z path: ./ - name: Download wininterrupt artifact if: contains(matrix.config.artifact, 'Windows') - uses: actions/download-artifact@v1 + uses: actions/download-artifact@v2 with: name: wininterrupt-${{ matrix.config.artifact }}-${{ github.run_id }}.7z path: ./ - name: Download qtcreatorcdbext artifact if: matrix.config.artifact == 'Windows-MSVC' - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v2 with: name: qtcreatorcdbext-${{ matrix.config.artifact }}-${{ github.run_id }}.7z path: ./ - name: Download disk image artifact if: matrix.config.artifact == 'macOS' - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v2 with: name: qt-creator-${{ matrix.config.artifact }}-${{ github.run_id }}.dmg path: ./ - name: Download URL - uses: actions/download-artifact@v1 + uses: actions/download-artifact@v2 with: name: upload_url path: ./ diff --git a/dist/changes-6.0.0.md b/dist/changes-6.0.0.md index 475250748ce..89b91547e2a 100644 --- a/dist/changes-6.0.0.md +++ b/dist/changes-6.0.0.md @@ -47,6 +47,16 @@ Editing * Added option for `Insert header files on completion` * Improved location of generated `compile_commands.json` (QTCREATORBUG-26431) * Fixed missing reparsing after refactorings (QTCREATORBUG-26523) + * Fixed that parameters were incorrectly highlighted as output parameters + * Fixed highlighting of string literals in macros (QTCREATORBUG-26553) + * Fixed icon of signals and slots in completion list (QTCREATORBUG-26555) + * Fixed header completion for Qt headers (QTCREATORBUG-26482) + * Fixed code model update after UI header change + * Fixed that `Find References` could show results for deleted files + (QTCREATORBUG-26574) + * Fixed that highlighting of current symbol could vanish (QTCREATORBUG-26339) + * Fixed that nested items were not synchronized with cursor position in + outline (QTCREATORBUG-26509) ### QML @@ -75,6 +85,7 @@ Projects * Fixed that re-detecting compilers removed compilers from kits (QTCREATORBUG-25697) * Fixed GitHub action created by Qt Creator plugin wizard for Qt 6 +* Fixed crash when canceling device test dialog (QTCREATORBUG-26285) ### CMake @@ -155,10 +166,16 @@ Platforms * Added details to device settings (QTCREATORBUG-23991) * Added filter field for Android SDK manager * Fixed that NDK 22 and later could not be added +* Fixed creation of Android template files (QTCREATORBUG-26580) + +### iOS + +* Fixed that no tasks were created for build issues (QTCREATORBUG-26541) ### WebAssembly -* Fixed running applications (QTCREATORBUG-25905, QTCREATORBUG-26189) +* Fixed running applications (QTCREATORBUG-25905, QTCREATORBUG-26189, + QTCREATORBUG-26562) ### MCU diff --git a/doc/qtcreator/images/icons/create-tracepoint.png b/doc/qtcreator/images/icons/create-tracepoint.png new file mode 100644 index 00000000000..cf410b6099b Binary files /dev/null and b/doc/qtcreator/images/icons/create-tracepoint.png differ diff --git a/doc/qtcreator/images/icons/output-pane-menu.png b/doc/qtcreator/images/icons/output-pane-menu.png new file mode 100644 index 00000000000..66162eed135 Binary files /dev/null and b/doc/qtcreator/images/icons/output-pane-menu.png differ diff --git a/doc/qtcreator/images/qtcreator-cpu-usage-analyzer-load-perf-trace.png b/doc/qtcreator/images/qtcreator-cpu-usage-analyzer-load-perf-trace.png index ea14710066d..8bfb90a27df 100644 Binary files a/doc/qtcreator/images/qtcreator-cpu-usage-analyzer-load-perf-trace.png and b/doc/qtcreator/images/qtcreator-cpu-usage-analyzer-load-perf-trace.png differ diff --git a/doc/qtcreator/images/qtcreator-output-panes-taskbar.png b/doc/qtcreator/images/qtcreator-output-panes-taskbar.png new file mode 100644 index 00000000000..e6430e4569d Binary files /dev/null and b/doc/qtcreator/images/qtcreator-output-panes-taskbar.png differ diff --git a/doc/qtcreator/images/qtcreator-performance-analyzer-create-memory-trace-points.png b/doc/qtcreator/images/qtcreator-performance-analyzer-create-memory-trace-points.png new file mode 100644 index 00000000000..f924b208a01 Binary files /dev/null and b/doc/qtcreator/images/qtcreator-performance-analyzer-create-memory-trace-points.png differ diff --git a/doc/qtcreator/images/qtcreator-performance-analyzer-flamegraph.png b/doc/qtcreator/images/qtcreator-performance-analyzer-flamegraph.png index ca5affa482e..586fd990241 100644 Binary files a/doc/qtcreator/images/qtcreator-performance-analyzer-flamegraph.png and b/doc/qtcreator/images/qtcreator-performance-analyzer-flamegraph.png differ diff --git a/doc/qtcreator/images/qtcreator-performance-analyzer-settings.png b/doc/qtcreator/images/qtcreator-performance-analyzer-settings.png index 7b3afa1395a..73f5c60107b 100644 Binary files a/doc/qtcreator/images/qtcreator-performance-analyzer-settings.png and b/doc/qtcreator/images/qtcreator-performance-analyzer-settings.png differ diff --git a/doc/qtcreator/images/qtcreator-performance-analyzer-statistics.png b/doc/qtcreator/images/qtcreator-performance-analyzer-statistics.png index 747bc32414d..13a0fd9fa73 100644 Binary files a/doc/qtcreator/images/qtcreator-performance-analyzer-statistics.png and b/doc/qtcreator/images/qtcreator-performance-analyzer-statistics.png differ diff --git a/doc/qtcreator/images/qtcreator-performance-analyzer-timeline.png b/doc/qtcreator/images/qtcreator-performance-analyzer-timeline.png index 2a00dea2381..f47d79787ba 100644 Binary files a/doc/qtcreator/images/qtcreator-performance-analyzer-timeline.png and b/doc/qtcreator/images/qtcreator-performance-analyzer-timeline.png differ diff --git a/doc/qtcreator/images/qtcreator-performance-analyzer-toolbar.png b/doc/qtcreator/images/qtcreator-performance-analyzer-toolbar.png new file mode 100644 index 00000000000..84dc02f78cc Binary files /dev/null and b/doc/qtcreator/images/qtcreator-performance-analyzer-toolbar.png differ diff --git a/doc/qtcreator/src/analyze/cpu-usage-analyzer.qdoc b/doc/qtcreator/src/analyze/cpu-usage-analyzer.qdoc index 5c668c1163e..eb9e8ce4495 100644 --- a/doc/qtcreator/src/analyze/cpu-usage-analyzer.qdoc +++ b/doc/qtcreator/src/analyze/cpu-usage-analyzer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2019 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. @@ -72,7 +72,9 @@ \li Select the \inlineimage qtcreator-analyze-start-button.png (\uicontrol Start) button to start the application from the - Performance Analyzer. + \uicontrol {Performance Analyzer}. + + \inlineimage qtcreator-performance-analyzer-toolbar.png "Performance Analyzer toolbar" \endlist @@ -101,9 +103,21 @@ To create trace points for profiling memory usage on a target device, select \uicontrol Analyze > \uicontrol {Performance Analyzer Options} > - \uicontrol {Create Memory Trace Points}. + \uicontrol {Create Memory Trace Points} or select + \inlineimage icons/create-tracepoint.png + on the \uicontrol {Performance Analyzer} toolbar. - To add events for the trace points, see \l{Choosing Event Types} + In the \uicontrol {Create Memory Trace Points} dialog, you can modify the + script to run. + + \image qtcreator-performance-analyzer-create-memory-trace-points.png "Create Memory Trace Points dialog" + + If you need root privileges to run scripts as root, select the privileges to + use in the \uicontrol {Elevate privileges using} field. + + Select \uicontrol OK to run the script. + + To add events for the trace points, see \l{Choosing Event Types}. You can record a memory trace to view usage graphs in the samples rows of the timeline and to view memory allocations, peaks, and releases in the @@ -418,8 +432,8 @@ You can load any \c perf.data files generated by recent versions of the Linux Perf tool and view them in \QC. Select \uicontrol Analyze > - \uicontrol {Performance Analyzer Options} > \uicontrol {Load perf.data} to - load a file. + \uicontrol {Performance Analyzer Options} > \uicontrol {Load perf.data File} + to load a file. \image qtcreator-cpu-usage-analyzer-load-perf-trace.png diff --git a/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc b/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc index 6ba4f49a6db..229abbddb5e 100644 --- a/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc +++ b/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2019 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Creator documentation. @@ -111,35 +111,30 @@ \section1 Find a specific setting - To find specific settings you require in \uicontrol{Tools} > \uicontrol{Options} + To find specific settings in \uicontrol Tools > \uicontrol Options, use the filter located at the top left of the \uicontrol Options dialog box. \section1 Open output panes - The output panes provide a list of errors and warnings encountered during - a build, detailed output from the compiler, status of a program when it is - executed and debug output, as well as search results. + The \l{Viewing Output}{output panes} provide a list of errors and warnings + encountered during a build, detailed output from the compiler, status of a + program when it is executed, debug output, and search results. To open output panes, use the following shortcuts: \list - \li \uicontrol{Issues} pane Alt+1 (Cmd+1 on \macos) + \li \uicontrol{Issues} - \key Alt+1 (\key Cmd+1 on \macos) - \li \uicontrol{Search Results} pane Alt+2 (Cmd+2 on \macos) + \li \uicontrol{Search Results} - \key Alt+2 (\key Cmd+2 on \macos) - \li \uicontrol{Application Output} pane Alt+3 (Cmd+3 on \macos) + \li \uicontrol{Application Output} - \key Alt+3 (\key Cmd+3 on \macos) - \li \uicontrol{Compile Output} pane Alt+4 (Cmd+4 on \macos) + \li \uicontrol{Compile Output} - \key Alt+4 (\key Cmd+4 on \macos) \endlist - To open the other output panes, such as \uicontrol{General Messages} and - \uicontrol{Version Control}, select \uicontrol View > - \uicontrol {Output Panes}. The menu items also display - the keyboard shortcuts that you can use. - - For more information about output panes, see \l{Viewing Output}. + For additional ways to open all output panes, see \l{Viewing Output}. \section1 Find keyboard shortcuts @@ -147,17 +142,17 @@ You can see the keyboard shortcut for a menu command in the menu or the tooltip for a button. - To customize, import or export keyboard shortcuts, select \uicontrol Tools > + To customize, import, or export keyboard shortcuts, select \uicontrol Tools > \uicontrol Options > \uicontrol Environment > \uicontrol Keyboard. \section1 Run \QC from the command line - You can launch \QC from command line using the name of an - existing session or \c .pro file by giving the name as the command - argument. + You can launch \QC from the command line using the name of an + existing \l{Managing Sessions}{session} or project file by entering + the name as the command argument. - For example, running \tt{qtcreator somesession}, launches \QC and - loads session somesession. + For example, running \c {qtcreator somesession}, launches \QC and + loads the session called \e somesession. For more information, see \l{Using Command Line Options}. @@ -210,7 +205,7 @@ If special debugging of Qt objects fails due to data corruption within the debugged objects, you can switch off the debugging helpers. When debugging - helpers are switched off low-level structures become visible. + helpers are switched off, low-level structures become visible. To switch off the debugging helpers: \list 1 @@ -250,7 +245,7 @@ \section1 Quickly locate files using the keyboard The \uicontrol Locator provides one of the easiest ways in \QC to browse - through projects, files, classes, functions, documentation and file systems. + through projects, files, classes, functions, documentation, and file systems. To quickly access files not directly mentioned in your project, you can create your own locator filters. That way you can locate files in a directory structure you have defined. @@ -307,12 +302,14 @@ \section1 Enclose selected code in curly braces, parentheses, or double quotes - Press \key {Shift} and then the opening character. + When you have selected code and enter one of the following opening + characters, the appropriate closing character is added automatically + at the end of the selection: \list - \li Curly braces: \key {Shift+\{} - \li Parentheses: \key {Shift+(} - \li Double quotes: \key {Shift+"} + \li { + \li ( + \li " \endlist \section1 Select the enclosing block in C++ diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-autotools.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-autotools.qdoc index 5df4bbead76..7a29130ea3f 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-autotools.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-autotools.qdoc @@ -35,7 +35,7 @@ The AutotoolsProjectManager is a plugin for autotools support. It is disabled by default. To enable the plugin, select \uicontrol Help > \uicontrol {About Plugins} > \uicontrol {Build Systems} > - \uicontrol AutotoolsProjectManager.Then select \uicontrol {Restart Now} + \uicontrol AutotoolsProjectManager. Then select \uicontrol {Restart Now} to restart \QC and load the plugin. To work with your Autotools project in \QC: diff --git a/doc/qtcreator/src/user-interface/creator-ui.qdoc b/doc/qtcreator/src/user-interface/creator-ui.qdoc index bd23b7e1d00..2af504a69d8 100644 --- a/doc/qtcreator/src/user-interface/creator-ui.qdoc +++ b/doc/qtcreator/src/user-interface/creator-ui.qdoc @@ -384,9 +384,24 @@ \endlist - Output panes are available in all \l{Selecting Modes}{modes}. Click the name - of an output pane to open the pane. To maximize an open output pane, click - the \uicontrol {Maximize Output Pane} button or press \key {Alt+9}. + Output panes are available on the taskbar in all \l{Selecting Modes}{modes}. + + \image qtcreator-output-panes-taskbar.png "Output panes on the taskbar" + + You can open output panes in the following ways: + + \list + \li Select the output pane on the taskbar. + \li Select \key Alt (\key Cmd on \macos) and the number of the pane on + the taskbar. + \li Select \inlineimage icons/output-pane-menu.png + , and then select the pane to open. + \li Select \uicontrol View > \uicontrol {Output Panes}. + The menu items also display the keyboard shortcuts that you can use. + \endlist + + To maximize an open output pane, select the \inlineimage arrowup.png + (\uicontrol {Maximize Output Pane}) button or press \key {Alt+Shift+9}. To increase or decrease the output text size, select \inlineimage plus.png diff --git a/doc/qtdesignstudio/examples/doc/loginui1.qdoc b/doc/qtdesignstudio/examples/doc/loginui1.qdoc index e38a6c0aaec..0165817ad63 100644 --- a/doc/qtdesignstudio/examples/doc/loginui1.qdoc +++ b/doc/qtdesignstudio/examples/doc/loginui1.qdoc @@ -55,7 +55,7 @@ To create a project: \list 1 - \li Select \uicontrol File > \uicontrol {New File or Project} > + \li Select \uicontrol File > \uicontrol {New Project} > \uicontrol General > \uicontrol {Qt Quick Application - Empty} > \uicontrol Choose. \li In the \uicontrol Name field, enter the project name: \e {loginui1}. @@ -308,8 +308,8 @@ To create a push button by using the wizard template: \list 1 - \li Select \uicontrol File > \uicontrol {New File or Project} > - \uicontrol {Files and Classes} > \uicontrol {Qt Quick Controls} > + \li Select \uicontrol File > \uicontrol {New File} > + \uicontrol {Qt Quick Controls} > \uicontrol {Custom Button} > \uicontrol Choose. \li In the \uicontrol {Component name} field, enter a name for your button component: \e {EntryField}. diff --git a/doc/qtdesignstudio/examples/doc/sidemenu.qdoc b/doc/qtdesignstudio/examples/doc/sidemenu.qdoc index 940a6d7057f..28695ad5d4e 100644 --- a/doc/qtdesignstudio/examples/doc/sidemenu.qdoc +++ b/doc/qtdesignstudio/examples/doc/sidemenu.qdoc @@ -46,8 +46,8 @@ \section1 Creating Reusable Buttons - We select \uicontrol File > \uicontrol {New File or Project} > - \uicontrol {Files and Classes} > \uicontrol {Qt Quick Controls} > + We select \uicontrol File > \uicontrol {New File} > + \uicontrol {Qt Quick Controls} > \uicontrol {Custom Button} to create a reusable menu bar button that we call \e CustomButton. diff --git a/doc/qtdesignstudio/examples/doc/washingMachineUI.qdoc b/doc/qtdesignstudio/examples/doc/washingMachineUI.qdoc index c0afed54fc3..7d6177c35e0 100644 --- a/doc/qtdesignstudio/examples/doc/washingMachineUI.qdoc +++ b/doc/qtdesignstudio/examples/doc/washingMachineUI.qdoc @@ -63,7 +63,7 @@ We use the \uicontrol {Qt for MCUs Application} project template to create an application for MCUs, which support only a subset of the preset \l{glossary-component}{components}. We select \uicontrol File > - \uicontrol {New File or Project} > \uicontrol {Qt for MCUs Application} > + \uicontrol {New Project} > \uicontrol {Qt for MCUs Application} > \uicontrol Choose, and follow the instructions of the wizard to create our project. @@ -100,7 +100,7 @@ that we use to indicate that a button is pressed. Alternatively, you could create the screens from scratch in \QDS - by selecting \uicontrol File > \uicontrol {New File or Project} > + by selecting \uicontrol File > \uicontrol {New File} > \uicontrol {Qt Quick Files}. While designing the screens, you can move reusable components into separate files. For more information, see \l{Components}. diff --git a/doc/qtdesignstudio/src/components/qtquick-buttons.qdoc b/doc/qtdesignstudio/src/components/qtquick-buttons.qdoc index a92328e0389..d6ef4744b3c 100644 --- a/doc/qtdesignstudio/src/components/qtquick-buttons.qdoc +++ b/doc/qtdesignstudio/src/components/qtquick-buttons.qdoc @@ -40,7 +40,7 @@ \list 1 - \li Select \uicontrol File > \uicontrol {New File or Project} > + \li Select \uicontrol File > \uicontrol {New File} > \if defined(qtcreator) \uicontrol Qt > \uicontrol {Qt Quick UI File} > \else @@ -124,7 +124,6 @@ information, see \l{Creating Scalable Buttons and Borders}. */ - /*! \previouspage quick-buttons.html \page quick-scalable-image.html @@ -158,7 +157,7 @@ \section1 Creating the Button Component To create a button component, select \uicontrol File > - \uicontrol {New File or Project} > + \uicontrol {New File} > \if defined(qtcreator) \uicontrol Qt > \uicontrol {Qt Quick UI File} > \else diff --git a/doc/qtdesignstudio/src/components/qtquick-components-custom.qdoc b/doc/qtdesignstudio/src/components/qtquick-components-custom.qdoc index dc7ba752685..dc202be6306 100644 --- a/doc/qtdesignstudio/src/components/qtquick-components-custom.qdoc +++ b/doc/qtdesignstudio/src/components/qtquick-components-custom.qdoc @@ -47,7 +47,7 @@ To use wizard templates to create custom components: \list 1 - \li Select \uicontrol File > \uicontrol {New File or Project} > + \li Select \uicontrol File > \uicontrol {New File} > \if defined(qtcreator) \uicontrol Qt > \uicontrol {Qt Quick UI File} > \else diff --git a/doc/qtdesignstudio/src/qtdesignstudio-app-flows.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-app-flows.qdoc index 5c3ed81b77b..1240adaab0c 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-app-flows.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-app-flows.qdoc @@ -92,7 +92,7 @@ for it, as described in \l {Creating Projects}. To create the flow view, select \uicontrol File > - \uicontrol {New File or Project} > \uicontrol {Files and Classes} > + \uicontrol {New File} > \uicontrol {Qt Quick Files} > \uicontrol {Flow View} and follow the instructions of the wizard. @@ -197,8 +197,8 @@ To add flow items: \list 1 - \li Select \uicontrol File > \uicontrol {New File or Project} > - \uicontrol {Files and Classes} > \uicontrol {Qt Quick Files} > + \li Select \uicontrol File > \uicontrol {New File} > + \uicontrol {Qt Quick Files} > \uicontrol {Flow Item} and follow the instructions of the wizard to create flow items for each screen in the UI. \li Add content to the flow item in one of the following ways: @@ -649,8 +649,8 @@ \uicontrol Components > \uicontrol {Flow View}. \list 1 - \li Select \uicontrol File > \uicontrol {New File or Project} > - \uicontrol {Files and Classes} > \uicontrol {Qt Quick Files} > + \li Select \uicontrol File > \uicontrol {New File} > + \uicontrol {Qt Quick Files} > \uicontrol {Flow Item} to create a flow item. \li In \l States, add states to the flow item. \li Open the .ui.qml file that contains the \l{Adding Flow Views} diff --git a/doc/qtdesignstudio/src/qtdesignstudio-importing-2d.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-importing-2d.qdoc index 6214adf509a..4107275d08e 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-importing-2d.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-importing-2d.qdoc @@ -70,7 +70,7 @@ To import assets exported in \QB to \QDS projects: \list 1 - \li Select \uicontrol File > \uicontrol {New File or Project} > + \li Select \uicontrol File > \uicontrol {New Project} > \uicontrol General > \uicontrol {Qt Quick Application - Empty} > \uicontrol Choose, and follow the instructions of the wizard to create an empty project. diff --git a/doc/qtdesignstudio/src/qtdesignstudio-javascript.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-javascript.qdoc index 5c28b2efe4d..e1718063404 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-javascript.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-javascript.qdoc @@ -66,8 +66,8 @@ \code importPaths: [ "imports", "backend" ] \endcode - \li Select \uicontrol File > \uicontrol {New File or Project} > - \uicontrol {Files and Classes} > \uicontrol {Qt Quick Files} > + \li Select \uicontrol File > \uicontrol {New File} > + \uicontrol {Qt Quick Files} > \uicontrol {Qt Quick File} > \uicontrol Choose to add a Qt Quick file that will specify the API of the UI. \li Follow the instructions of the wizard to create the Qt Quick file @@ -75,8 +75,8 @@ \e Values.qml. \note Make sure to capitalize the filename, because it will become a custom component. - \li Select \uicontrol File > \uicontrol {New File or Project} > - \uicontrol {Files and Classes} > \uicontrol {JavaScript} > + \li Select \uicontrol File > \uicontrol {New File} > + \uicontrol {JavaScript} > \uicontrol {JavaScript File} > \uicontrol Choose to create a JavaScript file that generates mock data for the UI. \li Follow the instructions of the wizard to create the JavaScript file diff --git a/doc/qtdesignstudio/src/qtdesignstudio-projects.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-projects.qdoc index 83ae79c5330..f46b302cb31 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-projects.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-projects.qdoc @@ -111,7 +111,7 @@ \section1 Using Project Wizards \list 1 - \li Select \uicontrol File > \uicontrol {New File or Project}. + \li Select \uicontrol File > \uicontrol {New Project}. \li Select a wizard template, and then select \uicontrol Choose. \li In the \uicontrol Name field, enter a name for the project. Keep in mind that projects cannot be easily renamed later. diff --git a/doc/qtdesignstudio/src/qtdesignstudio-terms.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-terms.qdoc index d31bbc0cf47..a1b163bc213 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-terms.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-terms.qdoc @@ -193,7 +193,7 @@ example, if you create a 3D project, preset 3D components are added to it. You can add more preset components in \uicontrol Library. - \image studio-project-wizards.png "New File or Project dialog" + \image studio-project-wizards.png "New Project dialog" Read more about projects: diff --git a/scripts/build_plugin.py b/scripts/build_plugin.py index 7ba55ef38d5..73d715331a8 100755 --- a/scripts/build_plugin.py +++ b/scripts/build_plugin.py @@ -148,7 +148,8 @@ def package(args, paths): common.check_print_call(['7z', 'a', '-mmt2', os.path.join(paths.result, args.name + '_dev.7z'), '*'], paths.dev_install) - if args.with_debug_info: + # check for existence - the DebugInfo install target doesn't work for telemetry plugin + if args.with_debug_info and os.path.exists(paths.debug_install): common.check_print_call(['7z', 'a', '-mmt2', os.path.join(paths.result, args.name + '-debug.7z'), '*'], paths.debug_install) diff --git a/share/qtcreator/themes/dark.creatortheme b/share/qtcreator/themes/dark.creatortheme index 2d31ec4618d..5d62a28a00d 100644 --- a/share/qtcreator/themes/dark.creatortheme +++ b/share/qtcreator/themes/dark.creatortheme @@ -115,7 +115,7 @@ DStitleBarIcon=ffffffff DStitleBarButtonHover=40ffffff DStitleBarButtonPress=60ffffff -DStabContainerBackground=ff0000ff +DStabContainerBackground=ff1f1f1f DStabSplitter=ff595959 DStabInactiveBackground=ff1f1f1f diff --git a/share/qtcreator/themes/default.creatortheme b/share/qtcreator/themes/default.creatortheme index 5db987a02cc..1fe39754d33 100644 --- a/share/qtcreator/themes/default.creatortheme +++ b/share/qtcreator/themes/default.creatortheme @@ -105,7 +105,7 @@ DStitleBarIcon=ff4f5052 DStitleBarButtonHover=40ffffff DStitleBarButtonPress=60ffffff -DStabContainerBackground=ff0000ff +DStabContainerBackground=ff999999 DStabSplitter=ff595959 DStabInactiveBackground=ff999999 diff --git a/share/qtcreator/themes/design-light.creatortheme b/share/qtcreator/themes/design-light.creatortheme index abf1c2c657e..25b83f151d8 100644 --- a/share/qtcreator/themes/design-light.creatortheme +++ b/share/qtcreator/themes/design-light.creatortheme @@ -120,7 +120,7 @@ DStitleBarIcon=ff4f5052 DStitleBarButtonHover=40ffffff DStitleBarButtonPress=60ffffff -DStabContainerBackground=ff0000ff +DStabContainerBackground=ffdadada DStabSplitter=ff595959 DStabInactiveBackground=ff999999 diff --git a/share/qtcreator/themes/design.creatortheme b/share/qtcreator/themes/design.creatortheme index ded6ffd4ae1..882b69fd369 100644 --- a/share/qtcreator/themes/design.creatortheme +++ b/share/qtcreator/themes/design.creatortheme @@ -117,7 +117,7 @@ DStitleBarIcon=ffffffff DStitleBarButtonHover=40ffffff DStitleBarButtonPress=60ffffff -DStabContainerBackground=ff0000ff +DStabContainerBackground=ff1f1f1f DStabSplitter=ff595959 DStabInactiveBackground=ff1f1f1f diff --git a/share/qtcreator/themes/flat-dark.creatortheme b/share/qtcreator/themes/flat-dark.creatortheme index ee4d8e85ec8..555c049a7b7 100644 --- a/share/qtcreator/themes/flat-dark.creatortheme +++ b/share/qtcreator/themes/flat-dark.creatortheme @@ -114,7 +114,7 @@ DStitleBarIcon=ffffffff DStitleBarButtonHover=40ffffff DStitleBarButtonPress=60ffffff -DStabContainerBackground=ff0000ff +DStabContainerBackground=ff1f1f1f DStabSplitter=ff595959 DStabInactiveBackground=ff1f1f1f diff --git a/share/qtcreator/themes/flat-light.creatortheme b/share/qtcreator/themes/flat-light.creatortheme index dc894638f32..e3fd6537224 100644 --- a/share/qtcreator/themes/flat-light.creatortheme +++ b/share/qtcreator/themes/flat-light.creatortheme @@ -110,7 +110,7 @@ DStitleBarIcon=ff4f5052 DStitleBarButtonHover=40ffffff DStitleBarButtonPress=60ffffff -DStabContainerBackground=ff0000ff +DStabContainerBackground=ffdadada DStabSplitter=ff595959 DStabInactiveBackground=ff999999 diff --git a/src/libs/CMakeLists.txt b/src/libs/CMakeLists.txt index 9abc90d1550..1fd49e178e1 100644 --- a/src/libs/CMakeLists.txt +++ b/src/libs/CMakeLists.txt @@ -31,6 +31,7 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/qlitehtml/src/CMakeLists.txt) set(QLITEHTML_DEVEL_EXCLUDE_FROM_ALL ON) set(QLITEHTML_HEADER_PATH "${IDE_HEADER_INSTALL_PATH}/src/lib/qlitehtml") set(QT_VERSION_MAJOR ${Qt5_VERSION_MAJOR}) + set(BUILD_TESTING OFF) # otherwise litehtml downloads googletest add_subdirectory(qlitehtml/src) endif() if(TARGET qlitehtml) diff --git a/src/libs/utils/processreaper.cpp b/src/libs/utils/processreaper.cpp index c6d2a071f50..cbdf29abe72 100644 --- a/src/libs/utils/processreaper.cpp +++ b/src/libs/utils/processreaper.cpp @@ -31,6 +31,13 @@ #include #include +#ifdef Q_OS_WIN +#ifdef QTCREATOR_PCH_H +#define CALLBACK WINAPI +#endif +#include +#endif + using namespace Utils; namespace Utils { @@ -83,6 +90,26 @@ bool Reaper::isFinished() const return !m_process; } +#ifdef Q_OS_WIN +static BOOL sendMessage(UINT message, HWND hwnd, LPARAM lParam) +{ + DWORD dwProcessID; + GetWindowThreadProcessId(hwnd, &dwProcessID); + if ((DWORD)lParam == dwProcessID) { + SendNotifyMessage(hwnd, message, 0, 0); + return FALSE; + } + return TRUE; +} + +BOOL CALLBACK sendShutDownMessageToAllWindowsOfProcess_enumWnd(HWND hwnd, LPARAM lParam) +{ + static UINT uiShutDownMessage = RegisterWindowMessage(L"qtcctrlcstub_shutdown"); + return sendMessage(uiShutDownMessage, hwnd, lParam); +} + +#endif + void Reaper::nextIteration() { QProcess::ProcessState state = m_process ? m_process->state() : QProcess::NotRunning; @@ -96,10 +123,15 @@ void Reaper::nextIteration() if (m_lastState == QProcess::Starting) m_process->kill(); } else if (state == QProcess::Running) { - if (m_lastState == QProcess::Running) + if (m_lastState == QProcess::Running) { m_process->kill(); - else + } else if (m_process->program().endsWith(QLatin1String("qtcreator_ctrlc_stub.exe"))) { +#ifdef Q_OS_WIN + EnumWindows(sendShutDownMessageToAllWindowsOfProcess_enumWnd, m_process->processId()); +#endif + } else { m_process->terminate(); + } } m_lastState = state; @@ -149,10 +181,7 @@ void ProcessReaper::reap(QProcess *process, int timeoutMs) if (process->state() == QProcess::NotRunning) { process->deleteLater(); return; - } else { - process->kill(); } - // Neither can move object with a parent into a different thread // nor reaping the process with a parent makes any sense. process->setParent(nullptr); diff --git a/src/plugins/languageclient/semantichighlightsupport.cpp b/src/plugins/languageclient/semantichighlightsupport.cpp index 260cabd7e49..444cb23439c 100644 --- a/src/plugins/languageclient/semantichighlightsupport.cpp +++ b/src/plugins/languageclient/semantichighlightsupport.cpp @@ -191,6 +191,7 @@ SemanticTokenSupport::SemanticTokenSupport(Client *client) void SemanticTokenSupport::refresh() { + qCDebug(LOGLSPHIGHLIGHT) << "refresh all semantic highlights for" << m_client->name(); m_tokens.clear(); for (Core::IEditor *editor : Core::EditorManager::visibleEditors()) onCurrentEditorChanged(editor); @@ -226,6 +227,8 @@ void SemanticTokenSupport::reloadSemanticTokens(TextDocument *textDocument) params.setTextDocument(docId); SemanticTokensFullRequest request(params); request.setResponseCallback(responseCallback); + qCDebug(LOGLSPHIGHLIGHT) << "Requesting all tokens for" << filePath << "with version" + << m_client->documentVersion(filePath); m_client->sendContent(request); } } @@ -238,19 +241,22 @@ void SemanticTokenSupport::updateSemanticTokens(TextDocument *textDocument) const VersionedTokens versionedToken = m_tokens.value(filePath); const QString &previousResultId = versionedToken.tokens.resultId().value_or(QString()); if (!previousResultId.isEmpty()) { - if (m_client->documentVersion(filePath) == versionedToken.version) + const int documentVersion = m_client->documentVersion(filePath); + if (documentVersion == versionedToken.version) return; SemanticTokensDeltaParams params; params.setTextDocument(TextDocumentIdentifier(DocumentUri::fromFilePath(filePath))); params.setPreviousResultId(previousResultId); SemanticTokensFullDeltaRequest request(params); request.setResponseCallback( - [this, filePath, documentVersion = m_client->documentVersion(filePath)]( + [this, filePath, documentVersion]( const SemanticTokensFullDeltaRequest::Response &response) { handleSemanticTokensDelta(filePath, response.result().value_or(nullptr), documentVersion); }); + qCDebug(LOGLSPHIGHLIGHT) + << "Requesting delta for" << filePath << "with version" << documentVersion; m_client->sendContent(request); return; } @@ -411,8 +417,10 @@ void SemanticTokenSupport::handleSemanticTokensDelta( const LanguageServerProtocol::SemanticTokensDeltaResult &result, int documentVersion) { + qCDebug(LOGLSPHIGHLIGHT) << "Handle Tokens for " << filePath; if (auto tokens = Utils::get_if(&result)) { m_tokens[filePath] = {*tokens, documentVersion}; + qCDebug(LOGLSPHIGHLIGHT) << "New Data " << tokens->data(); } else if (auto tokensDelta = Utils::get_if(&result)) { m_tokens[filePath].version = documentVersion; QList edits = tokensDelta->edits(); @@ -434,7 +442,7 @@ void SemanticTokenSupport::handleSemanticTokensDelta( auto it = data.begin(); const auto end = data.end(); - qCDebug(LOGLSPHIGHLIGHT) << "Edit Tokens for " << filePath; + qCDebug(LOGLSPHIGHLIGHT) << "Edit Tokens"; qCDebug(LOGLSPHIGHLIGHT) << "Data before edit " << data; for (const SemanticTokensEdit &edit : qAsConst(edits)) { if (edit.start() > data.size()) // prevent edits after the previously reported data @@ -469,6 +477,7 @@ void SemanticTokenSupport::handleSemanticTokensDelta( tokens.setResultId(tokensDelta->resultId()); } else { m_tokens.remove(filePath); + qCDebug(LOGLSPHIGHLIGHT) << "Data cleared"; return; } highlight(filePath); @@ -476,6 +485,7 @@ void SemanticTokenSupport::handleSemanticTokensDelta( void SemanticTokenSupport::highlight(const Utils::FilePath &filePath, bool force) { + qCDebug(LOGLSPHIGHLIGHT) << "highlight" << filePath; TextDocument *doc = TextDocument::textDocumentForFilePath(filePath); if (!doc || LanguageClientManager::clientForDocument(doc) != m_client) return; @@ -486,6 +496,7 @@ void SemanticTokenSupport::highlight(const Utils::FilePath &filePath, bool force const QList tokens = versionedTokens.tokens .toTokens(m_tokenTypes, m_tokenModifiers); if (m_tokensHandler) { + qCDebug(LOGLSPHIGHLIGHT) << "use tokens handler" << filePath; int line = 1; int column = 1; QList expandedTokens; diff --git a/src/plugins/mcusupport/mcusupportcmakemapper.cpp b/src/plugins/mcusupport/mcusupportcmakemapper.cpp index 326489e365c..8b0e05db637 100644 --- a/src/plugins/mcusupport/mcusupportcmakemapper.cpp +++ b/src/plugins/mcusupport/mcusupportcmakemapper.cpp @@ -50,8 +50,8 @@ static const QHash &envVarToCMakeVarMapping() {"IMXRT595_FREERTOS_DIR","FREERTOS_DIR"}, {"STM32F7_FREERTOS_DIR", "FREERTOS_DIR"}, {"eFlashLoad_PATH","eFlashLoad_PATH"}, - {"RenesasFlashProgrammer_PATH", "RenesasFlashProgrammer_PATH"}, - {"MCUXpressoIDE_PATH", "MCUXpressoIDE_PATH"}, + {"RenesasFlashProgrammer_PATH", "RENESAS_FLASH_PROGRAMMER_PATH"}, + {"MCUXpressoIDE_PATH", "MCUXPRESSO_IDE_PATH"}, {"JLINK_PATH", "JLINK_PATH"}, {"TVII_GRAPHICS_DRIVER_DIR", "TVII_GRAPHICS_DRIVER_DIR"}, {"CYPRESS_AUTO_FLASH_UTILITY_DIR", "CYPRESS_AUTO_FLASH_UTILITY_DIR"}, diff --git a/src/plugins/projectexplorer/devicesupport/devicesettingswidget.cpp b/src/plugins/projectexplorer/devicesupport/devicesettingswidget.cpp index 12c9e4e53c8..13892ceb3b1 100644 --- a/src/plugins/projectexplorer/devicesupport/devicesettingswidget.cpp +++ b/src/plugins/projectexplorer/devicesupport/devicesettingswidget.cpp @@ -255,8 +255,10 @@ void DeviceSettingsWidget::testDevice() { const IDevice::ConstPtr &device = currentDevice(); QTC_ASSERT(device && device->hasDeviceTester(), return); - DeviceTestDialog dlg(m_deviceManager->mutableDevice(device->id()), this); - dlg.exec(); + auto dlg = new DeviceTestDialog(m_deviceManager->mutableDevice(device->id()), this); + dlg->setAttribute(Qt::WA_DeleteOnClose); + dlg->setModal(true); + dlg->show(); } void DeviceSettingsWidget::handleDeviceUpdated(Id id) diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp b/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp index 425cfcd5526..5439d98d2b9 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp +++ b/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp @@ -521,6 +521,19 @@ void JsonWizardFactory::registerGeneratorFactory(JsonWizardGeneratorFactory *fac s_generatorFactories.append(factory); } +static QString qmlProjectName(const FilePath &folder) +{ + FilePath currentFolder = folder; + while (!currentFolder.isEmpty()) { + const QList fileList = currentFolder.dirEntries({"*.qmlproject"}); + if (!fileList.isEmpty()) + return fileList.first().baseName(); + currentFolder = currentFolder.parentDir(); + } + + return {}; +} + Wizard *JsonWizardFactory::runWizardImpl(const FilePath &path, QWidget *parent, Id platform, const QVariantMap &variables, bool showWizard) @@ -545,6 +558,7 @@ Wizard *JsonWizardFactory::runWizardImpl(const FilePath &path, QWidget *parent, wizard->setValue(i.key(), i.value()); wizard->setValue(QStringLiteral("InitialPath"), path.toString()); + wizard->setValue(QStringLiteral("QmlProjectName"), qmlProjectName(path)); wizard->setValue(QStringLiteral("Platform"), platform.toString()); QString kindStr = QLatin1String(Core::Constants::WIZARD_KIND_UNKNOWN); diff --git a/src/tools/processlauncher/processlauncher.pro b/src/tools/processlauncher/processlauncher.pro index 737cb366cfa..52d29db9b82 100644 --- a/src/tools/processlauncher/processlauncher.pro +++ b/src/tools/processlauncher/processlauncher.pro @@ -9,6 +9,8 @@ UTILS_DIR = $$PWD/../../libs/utils DEFINES *= QTCREATOR_UTILS_STATIC_LIB +win32: LIBS*= -luser32 + INCLUDEPATH += $$UTILS_DIR HEADERS += \ diff --git a/src/tools/processlauncher/processlauncher.qbs b/src/tools/processlauncher/processlauncher.qbs index b2fd708169c..bdcde4ac34d 100644 --- a/src/tools/processlauncher/processlauncher.qbs +++ b/src/tools/processlauncher/processlauncher.qbs @@ -9,6 +9,11 @@ QtcTool { cpp.defines: base.concat("QTCREATOR_UTILS_STATIC_LIB") cpp.includePaths: base.concat(pathToUtils) + Properties { + condition: qbs.targetOS.contains("windows") + cpp.dynamicLibraries: "user32" + } + files: [ "launcherlogging.cpp", "launcherlogging.h",