aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2020-11-11 15:11:33 +0100
committerEike Ziller <eike.ziller@qt.io>2020-11-11 15:35:01 +0000
commit1543060ffb459d631a3c5670c4fc553843b16e53 (patch)
tree418b11b8a651f9ecfcbcaf3fd48c920f70a2cee0
parentc92adb199ecdc6632c83df2e32fd90f9c1e9f544 (diff)
Change Qt Creator plugin wizard to CMake
Doesn't make sense to put more qmake-based projects out there for Qt Creator, so exchange the qmake version completely. Also adds a README.md, which explains how to build and run a plugin, since plugins no longer are built directly into a Qt Creator build (which is a good thing). Since we do not yet have a way to specify detailed build settings from a wizard, keep the hack that the project file has a hardcoded path to the Qt Creator development package. That way developers can at least directly build the new plugin without fiddling with build settings. Fixes: QTCREATORBUG-24073 Change-Id: If6650d9e3c393ee9ac2a358923dfb072ec510850 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
-rw-r--r--share/qtcreator/templates/wizards/qtcreatorplugin/CMakeLists.txt32
-rw-r--r--share/qtcreator/templates/wizards/qtcreatorplugin/README.md35
-rw-r--r--share/qtcreator/templates/wizards/qtcreatorplugin/github_workflows_README.md2
-rw-r--r--share/qtcreator/templates/wizards/qtcreatorplugin/github_workflows_build_cmake.yml (renamed from share/qtcreator/templates/wizards/qtcreatorplugin/github_workflows_build_qmake.yml)242
-rw-r--r--share/qtcreator/templates/wizards/qtcreatorplugin/myplugin.pro53
-rw-r--r--share/qtcreator/templates/wizards/qtcreatorplugin/wizard.json51
6 files changed, 199 insertions, 216 deletions
diff --git a/share/qtcreator/templates/wizards/qtcreatorplugin/CMakeLists.txt b/share/qtcreator/templates/wizards/qtcreatorplugin/CMakeLists.txt
new file mode 100644
index 0000000000..214dcfc221
--- /dev/null
+++ b/share/qtcreator/templates/wizards/qtcreatorplugin/CMakeLists.txt
@@ -0,0 +1,32 @@
+cmake_minimum_required(VERSION 3.9)
+
+# Remove when sharing with others.
+list(APPEND CMAKE_PREFIX_PATH "%{QtCreatorBuild}")
+
+project(%{PluginName})
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_CXX_STANDARD 17)
+
+find_package(QtCreator COMPONENTS Core REQUIRED)
+find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets REQUIRED)
+set(QtX Qt${QT_VERSION_MAJOR})
+
+add_qtc_plugin(%{PluginName}
+ PLUGIN_DEPENDS
+ QtCreator::Core
+ DEPENDS
+ ${QtX}::Widgets
+ QtCreator::ExtensionSystem
+ QtCreator::Utils
+ SOURCES
+ .github/workflows/build_cmake.yml
+ .github/workflows/README.md
+ README.md
+ %{SrcFileName}
+ %{HdrFileName}
+ %{GlobalHdrFileName}
+ %{ConstantsHdrFileName}
+)
diff --git a/share/qtcreator/templates/wizards/qtcreatorplugin/README.md b/share/qtcreator/templates/wizards/qtcreatorplugin/README.md
new file mode 100644
index 0000000000..bdd9b8a67d
--- /dev/null
+++ b/share/qtcreator/templates/wizards/qtcreatorplugin/README.md
@@ -0,0 +1,35 @@
+# %{PluginName}
+
+## How to Build
+
+Create a build directory and run
+
+ cmake -DCMAKE_PREFIX_PATH=<path_to_qtcreator> -DCMAKE_BUILD_TYPE=RelWithDebInfo <path_to_plugin_source>
+ cmake --build .
+
+where `<path_to_qtcreator>` is the relative or absolute path to a Qt Creator build directory, or to
+a combined binary and development package, and `<path_to_plugin_source>` is the relative or absolute
+path to this plugin directory.
+
+## How to Run
+
+Run a compatible Qt Creator with the additional command line argument
+
+ -pluginpath <path_to_plugin>
+
+where `<path_to_plugin>` is the path to the resulting plugin library in the build directory
+(`<plugin_build>/lib/qtcreator/plugins` on Windows and Linux,
+`<plugin_build>/Qt Creator.app/Contents/PlugIns` on macOS).
+
+You might want to add `-temporarycleansettings` (or `-tcs`) to ensure that the opened Qt Creator
+instance cannot mess with your user-global Qt Creator settings.
+
+When building and running the plugin from Qt Creator, you can use
+
+ -pluginpath "%{buildDir}/lib/qtcreator/plugins" -tcs
+
+on Windows and Linux, or
+
+ -pluginpath "%{buildDir}/Qt Creator.app/Contents/PlugIns" -tcs
+
+for the `Command line arguments` field in the run settings.
diff --git a/share/qtcreator/templates/wizards/qtcreatorplugin/github_workflows_README.md b/share/qtcreator/templates/wizards/qtcreatorplugin/github_workflows_README.md
index 8481ed15ae..107410c6ec 100644
--- a/share/qtcreator/templates/wizards/qtcreatorplugin/github_workflows_README.md
+++ b/share/qtcreator/templates/wizards/qtcreatorplugin/github_workflows_README.md
@@ -1,6 +1,6 @@
# GitHub Actions & Workflows
-The `build_qmake.yml` in this directory adds a [GitHub action][1] and workflow that builds
+The `build_cmake.yml` in this directory adds a [GitHub action][1] and workflow that builds
your plugin anytime you push commits to GitHub on Windows, Linux and macOS.
The build artifacts can be downloaded from GitHub and be installed into an existing Qt Creator
diff --git a/share/qtcreator/templates/wizards/qtcreatorplugin/github_workflows_build_qmake.yml b/share/qtcreator/templates/wizards/qtcreatorplugin/github_workflows_build_cmake.yml
index 5326dfeb9d..bd5571b1d0 100644
--- a/share/qtcreator/templates/wizards/qtcreatorplugin/github_workflows_build_qmake.yml
+++ b/share/qtcreator/templates/wizards/qtcreatorplugin/github_workflows_build_cmake.yml
@@ -3,11 +3,12 @@ name: Build plugin
on: [push]
env:
+ PLUGIN_NAME: %{PluginName}
QT_VERSION: %{JS: Util.qtVersion()}
QT_CREATOR_VERSION: %{JS: Util.qtCreatorVersion()}
QT_CREATOR_SNAPSHOT: NO
- PLUGIN_PRO: %{ProFile}
- PLUGIN_NAME: %{PluginName}
+ CMAKE_VERSION: 3.18.3
+ NINJA_VERSION: 1.10.1
jobs:
build:
@@ -17,82 +18,114 @@ jobs:
matrix:
config:
- {
- name: "Windows Latest x64", artifact: "Windows-x64.zip",
- os: windows-latest,
- environment_script: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat"
- }
- - {
- name: "Windows Latest x86", artifact: "Windows-x86.zip",
+ name: "Windows Latest MSVC", artifact: "Windows-x64",
os: windows-latest,
- environment_script: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars32.bat"
+ cc: "cl", cxx: "cl",
+ environment_script: "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars64.bat",
}
- {
- name: "Linux Latest x64", artifact: "Linux-x64.zip",
- os: ubuntu-latest
+ name: "Ubuntu Latest GCC", artifact: "Linux-x64",
+ os: ubuntu-latest,
+ cc: "gcc", cxx: "g++"
}
- {
- name: "macOS Latest x64", artifact: "macOS-x64.zip",
- os: macos-latest
+ name: "macOS Latest Clang", artifact: "macOS-x64",
+ os: macos-latest,
+ cc: "clang", cxx: "clang++"
}
steps:
- uses: actions/checkout@v1
- - name: Installing system libs
+ - name: Download Ninja and CMake
+ shell: cmake -P {0}
+ run: |
+ set(cmake_version "$ENV{CMAKE_VERSION}")
+ set(ninja_version "$ENV{NINJA_VERSION}")
+
+ if ("${{ runner.os }}" STREQUAL "Windows")
+ set(ninja_suffix "win.zip")
+ set(cmake_suffix "win64-x64.zip")
+ set(cmake_dir "cmake-${cmake_version}-win64-x64/bin")
+ elseif ("${{ runner.os }}" STREQUAL "Linux")
+ set(ninja_suffix "linux.zip")
+ set(cmake_suffix "Linux-x86_64.tar.gz")
+ set(cmake_dir "cmake-${cmake_version}-Linux-x86_64/bin")
+ elseif ("${{ runner.os }}" STREQUAL "macOS")
+ set(ninja_suffix "mac.zip")
+ set(cmake_suffix "Darwin-x86_64.tar.gz")
+ set(cmake_dir "cmake-${cmake_version}-Darwin-x86_64/CMake.app/Contents/bin")
+ endif()
+
+ set(ninja_url "https://github.com/ninja-build/ninja/releases/download/v${ninja_version}/ninja-${ninja_suffix}")
+ file(DOWNLOAD "${ninja_url}" ./ninja.zip SHOW_PROGRESS)
+ execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ./ninja.zip)
+
+ set(cmake_url "https://github.com/Kitware/CMake/releases/download/v${cmake_version}/cmake-${cmake_version}-${cmake_suffix}")
+ file(DOWNLOAD "${cmake_url}" ./cmake.zip SHOW_PROGRESS)
+ execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ./cmake.zip)
+
+ # Add to PATH environment variable
+ file(TO_CMAKE_PATH "$ENV{GITHUB_WORKSPACE}/${cmake_dir}" cmake_dir)
+ set(path_separator ":")
+ if ("${{ runner.os }}" STREQUAL "Windows")
+ set(path_separator ";")
+ endif()
+ file(APPEND "$ENV{GITHUB_PATH}" "$ENV{GITHUB_WORKSPACE}${path_separator}${cmake_dir}")
+
+ if (NOT "${{ runner.os }}" STREQUAL "Windows")
+ execute_process(
+ COMMAND chmod +x ninja
+ COMMAND chmod +x ${cmake_dir}/cmake
+ )
+ endif()
+
+ - name: Install system libs
shell: cmake -P {0}
run: |
if ("${{ runner.os }}" STREQUAL "Linux")
execute_process(
+ COMMAND sudo apt update
+ )
+ execute_process(
COMMAND sudo apt install libgl1-mesa-dev
+ RESULT_VARIABLE result
)
- elseif ("${{ runner.os }}" STREQUAL "Windows")
- # get JOM
- file(DOWNLOAD "https://download.qt.io/official_releases/jom/jom.zip" ./jom.zip SHOW_PROGRESS)
- file(MAKE_DIRECTORY ./jom)
- execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ../jom.zip WORKING_DIRECTORY ./jom)
+ if (NOT result EQUAL 0)
+ message(FATAL_ERROR "Failed to install dependencies")
+ endif()
endif()
- name: Download Qt
id: qt
shell: cmake -P {0}
run: |
- set(qt_version $ENV{QT_VERSION})
+ set(qt_version "$ENV{QT_VERSION}")
string(REPLACE "." "" qt_version_dotless "${qt_version}")
if ("${{ runner.os }}" STREQUAL "Windows")
set(url_os "windows_x86")
- if ("${{ matrix.config.environment_script }}" MATCHES "vcvars64.bat")
- set(qt_package_name "qt.qt5.${qt_version_dotless}.win64_msvc2019_64")
- set(qt_dir_prefix "${qt_version}/msvc2019_64")
- elseif ("${{ matrix.config.environment_script }}" MATCHES "vcvars32.bat")
- set(qt_package_name "qt.qt5.${qt_version_dotless}.win32_msvc2019")
- set(qt_dir_prefix "${qt_version}/msvc2019")
- else()
- endif()
+ set(qt_package_arch_suffix "win64_msvc2019_64")
+ set(qt_dir_prefix "${qt_version}/msvc2019_64")
+ set(qt_package_suffix "-Windows-Windows_10-MSVC2019-Windows-Windows_10-X86_64")
elseif ("${{ runner.os }}" STREQUAL "Linux")
set(url_os "linux_x64")
- set(qt_package_name "qt.qt5.${qt_version_dotless}.gcc_64")
+ set(qt_package_arch_suffix "gcc_64")
set(qt_dir_prefix "${qt_version}/gcc_64")
+ set(qt_package_suffix "-Linux-RHEL_7_6-GCC-Linux-RHEL_7_6-X86_64")
elseif ("${{ runner.os }}" STREQUAL "macOS")
set(url_os "mac_x64")
- set(qt_package_name "qt.qt5.${qt_version_dotless}.clang_64")
+ set(qt_package_arch_suffix "clang_64")
set(qt_dir_prefix "${qt_version}/clang_64")
+ set(qt_package_suffix "-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64")
endif()
set(qt_base_url "https://download.qt.io/online/qtsdkrepository/${url_os}/desktop/qt5_${qt_version_dotless}")
file(DOWNLOAD "${qt_base_url}/Updates.xml" ./Updates.xml SHOW_PROGRESS)
file(READ ./Updates.xml updates_xml)
- string(REGEX MATCH "<Name>${qt_package_name}.*<Version>([0-9+-.]+)</Version>.*<DownloadableArchives>qtbase([a-zA-Z0-9_-]+).7z"
- updates_xml_output "${updates_xml}")
- set(package_version ${CMAKE_MATCH_1})
- set(package_suffix ${CMAKE_MATCH_2})
- string(REPLACE "-debug-symbols" "" package_suffix "${package_suffix}")
-
- # Workaround for CMake's greedy regex
- if ("${{ matrix.config.environment_script }}" MATCHES "vcvars32.bat")
- string(REPLACE "X86_64" "X86" package_suffix "${package_suffix}")
- endif()
+ string(REGEX MATCH "<Name>qt.qt5.*<Version>([0-9+-.]+)</Version>" updates_xml_output "${updates_xml}")
+ set(qt_package_version ${CMAKE_MATCH_1})
file(MAKE_DIRECTORY qt5)
@@ -100,20 +133,27 @@ jobs:
file(TO_CMAKE_PATH "$ENV{GITHUB_WORKSPACE}/qt5/${qt_dir_prefix}" qt_dir)
message("::set-output name=qt_dir::${qt_dir}")
- foreach(package qtbase qtdeclarative qttools qtsvg)
- file(DOWNLOAD
- "${qt_base_url}/${qt_package_name}/${package_version}${package}${package_suffix}.7z" ./${package}.7z
- SHOW_PROGRESS
+ message("Downloading Qt to ${qt_dir}")
+ function(downloadAndExtract url archive)
+ message("Downloading ${url}")
+ file(DOWNLOAD "${url}" ./${archive} SHOW_PROGRESS)
+ execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ../${archive} WORKING_DIRECTORY qt5)
+ endfunction()
+
+ foreach(package qtbase qtdeclarative)
+ downloadAndExtract(
+ "${qt_base_url}/qt.qt5.${qt_version_dotless}.${qt_package_arch_suffix}/${qt_package_version}${package}${qt_package_suffix}.7z"
+ ${package}.7z
)
- execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ../${package}.7z WORKING_DIRECTORY qt5)
endforeach()
- file(READ "qt5/${qt_dir_prefix}/mkspecs/qconfig.pri" qtconfig)
- string(REPLACE "Enterprise" "OpenSource" qtconfig "${qtconfig}")
- string(REPLACE "licheck.exe" "" qtconfig "${qtconfig}")
- string(REPLACE "licheck64" "" qtconfig "${qtconfig}")
- string(REPLACE "licheck_mac" "" qtconfig "${qtconfig}")
- file(WRITE "qt5/${qt_dir_prefix}/mkspecs/qconfig.pri" "${qtconfig}")
+ # uic depends on libicu56.so
+ if ("${{ runner.os }}" STREQUAL "Linux")
+ downloadAndExtract(
+ "${qt_base_url}/qt.qt5.${qt_version_dotless}.${qt_package_arch_suffix}/${qt_package_version}icu-linux-Rhel7.2-x64.7z"
+ icu.7z
+ )
+ endif()
- name: Download Qt Creator
id: qt_creator
@@ -128,29 +168,21 @@ jobs:
endif()
if ("${{ runner.os }}" STREQUAL "Windows")
- set(qtc_output_directory "qtcreator/lib/qtcreator/plugins")
- set(qtc_binary_name "$ENV{PLUGIN_NAME}4.dll")
- if ("${{ matrix.config.environment_script }}" MATCHES "vcvars64.bat")
- set(qtc_platform "windows_x64")
- elseif ("${{ matrix.config.environment_script }}" MATCHES "vcvars32.bat")
- set(qtc_platform "windows_x86")
- endif()
+ set(qtc_platform "windows_x64")
elseif ("${{ runner.os }}" STREQUAL "Linux")
- set(qtc_output_directory "qtcreator/lib/qtcreator/plugins")
- set(qtc_binary_name "lib$ENV{PLUGIN_NAME}.so")
set(qtc_platform "linux_x64")
elseif ("${{ runner.os }}" STREQUAL "macOS")
- set(qtc_output_directory "qtcreator/bin/Qt Creator.app/Contents/PlugIns")
- set(qtc_binary_name "lib$ENV{PLUGIN_NAME}.dylib")
set(qtc_platform "mac_x64")
endif()
+ file(TO_CMAKE_PATH "$ENV{GITHUB_WORKSPACE}/qtcreator" qtc_dir)
# Save the path for other steps
- message("::set-output name=qtc_binary_name::${qtc_binary_name}")
- message("::set-output name=qtc_output_directory::${qtc_output_directory}")
+ message("::set-output name=qtc_dir::${qtc_dir}")
file(MAKE_DIRECTORY qtcreator)
+ message("Downloading Qt Creator from ${qtc_base_url}/${qtc_platform}")
+
foreach(package qtcreator qtcreator_dev)
file(DOWNLOAD
"${qtc_base_url}/${qtc_platform}/${package}.7z" ./${package}.7z SHOW_PROGRESS)
@@ -158,18 +190,13 @@ jobs:
${CMAKE_COMMAND} -E tar xvf ../${package}.7z WORKING_DIRECTORY qtcreator)
endforeach()
- if ("${{ runner.os }}" STREQUAL "macOS")
- execute_process(
- COMMAND ${CMAKE_COMMAND} -E make_directory qtcreator/bin
- COMMAND ${CMAKE_COMMAND} -E create_symlink
- "$ENV{GITHUB_WORKSPACE}/qtcreator/Qt Creator.app"
- "$ENV{GITHUB_WORKSPACE}/qtcreator/bin/Qt Creator.app"
- )
- endif()
-
- name: Build
shell: cmake -P {0}
run: |
+ set(ENV{CC} ${{ matrix.config.cc }})
+ set(ENV{CXX} ${{ matrix.config.cxx }})
+ set(ENV{MACOSX_DEPLOYMENT_TARGET} "10.13")
+
if ("${{ runner.os }}" STREQUAL "Windows" AND NOT "x${{ matrix.config.environment_script }}" STREQUAL "x")
execute_process(
COMMAND "${{ matrix.config.environment_script }}" && set
@@ -183,55 +210,32 @@ jobs:
endforeach()
endif()
- file(TO_CMAKE_PATH "$ENV{GITHUB_WORKSPACE}/qtcreator" qtcreator_dir)
-
- execute_process(
- COMMAND ${{ steps.qt.outputs.qt_dir }}/bin/qmake
- $ENV{PLUGIN_PRO}
- CONFIG+=release
- IDE_SOURCE_TREE="${qtcreator_dir}"
- IDE_BUILD_TREE="${qtcreator_dir}"
- RESULT_VARIABLE result
- )
- if (NOT result EQUAL 0)
- message(FATAL_ERROR "Bad exit status")
- endif()
-
- if ("${{ runner.os }}" STREQUAL "Windows")
- set(ENV{PATH} "${{ steps.qt.outputs.qt_dir }}/bin/;$ENV{PATH}")
- else()
- set(ENV{PATH} "${{ steps.qt.outputs.qt_dir }}/bin/:$ENV{PATH}")
- set(ENV{LD_LIBRARY_PATH} "qtcreator/lib/Qt/lib:$ENV{LD_LIBRARY_PATH}")
- endif()
-
- include(ProcessorCount)
- ProcessorCount(N)
-
- set(make_program make -j ${N})
- if ("${{ runner.os }}" STREQUAL "Windows")
- set(make_program "jom/jom")
- endif()
+ set(ENV{NINJA_STATUS} "[%f/%t %o/sec] ")
execute_process(
- COMMAND ${make_program}
+ COMMAND python
+ -u
+ ${{ steps.qt_creator.outputs.qtc_dir }}/scripts/build_plugin.py
+ --name "$ENV{PLUGIN_NAME}-$ENV{QT_CREATOR_VERSION}-${{ matrix.config.artifact }}"
+ --src .
+ --build build
+ --qt-path "${{ steps.qt.outputs.qt_dir }}"
+ --qtc-path "${{ steps.qt_creator.outputs.qtc_dir }}"
+ --output-path "$ENV{GITHUB_WORKSPACE}"
RESULT_VARIABLE result
)
if (NOT result EQUAL 0)
- message(FATAL_ERROR "Bad exit status")
+ string(REGEX MATCH "FAILED:.*$" error_message "${output}")
+ string(REPLACE "\\n" "%0A" error_message "${error_message}")
+ message("::error::${error_message}")
+ message(FATAL_ERROR "Build failed")
endif()
- file(TO_CMAKE_PATH "$ENV{GITHUB_WORKSPACE}/$ENV{PLUGIN_NAME}-$ENV{QT_CREATOR_VERSION}-${{ matrix.config.artifact }}" artifact)
-
- execute_process(COMMAND
- ${CMAKE_COMMAND} -E tar cvf ${artifact} --format=zip "${{ steps.qt_creator.outputs.qtc_binary_name }}"
- WORKING_DIRECTORY "${{ steps.qt_creator.outputs.qtc_output_directory }}"
- )
-
- - uses: actions/upload-artifact@v1
+ - uses: actions/upload-artifact@v2
id: upload_artifact
with:
- path: ./${{ env.PLUGIN_NAME }}-${{ env.QT_CREATOR_VERSION }}-${{ matrix.config.artifact }}
- name: ${{ env.PLUGIN_NAME}}-${{ env.QT_CREATOR_VERSION }}-${{ matrix.config.artifact }}
+ path: ./${{ env.PLUGIN_NAME }}-${{ env.QT_CREATOR_VERSION }}-${{ matrix.config.artifact }}.7z
+ name: ${{ env.PLUGIN_NAME}}-${{ env.QT_CREATOR_VERSION }}-${{ matrix.config.artifact }}.7z
release:
if: contains(github.ref, 'tags/v')
@@ -268,19 +272,15 @@ jobs:
matrix:
config:
- {
- name: "Windows Latest x64", artifact: "Windows-x64.zip",
- os: ubuntu-latest
- }
- - {
- name: "Windows Latest x86", artifact: "Windows-x86.zip",
+ name: "Windows Latest x64", artifact: "Windows-x64.7z",
os: ubuntu-latest
}
- {
- name: "Linux Latest x64", artifact: "Linux-x64.zip",
+ name: "Linux Latest x64", artifact: "Linux-x64.7z",
os: ubuntu-latest
}
- {
- name: "macOS Latest x64", artifact: "macOS-x64.zip",
+ name: "macOS Latest x64", artifact: "macOS-x64.7z",
os: macos-latest
}
needs: release
@@ -311,4 +311,4 @@ jobs:
upload_url: ${{ steps.set_upload_url.outputs.upload_url }}
asset_path: ./${{ env.PLUGIN_NAME }}-${{ env.QT_CREATOR_VERSION }}-${{ matrix.config.artifact }}
asset_name: ${{ env.PLUGIN_NAME }}-${{ env.QT_CREATOR_VERSION }}-${{ matrix.config.artifact }}
- asset_content_type: application/zip
+ asset_content_type: application/x-7z-compressed
diff --git a/share/qtcreator/templates/wizards/qtcreatorplugin/myplugin.pro b/share/qtcreator/templates/wizards/qtcreatorplugin/myplugin.pro
deleted file mode 100644
index 34eed0aeea..0000000000
--- a/share/qtcreator/templates/wizards/qtcreatorplugin/myplugin.pro
+++ /dev/null
@@ -1,53 +0,0 @@
-DEFINES += %{LibraryDefine}
-
-# %{PluginName} files
-
-SOURCES += \\
- %{SrcFileName}
-
-HEADERS += \\
- %{HdrFileName} \\
- %{GlobalHdrFileName} \\
- %{ConstantsHdrFileName}
-
-DISTFILES += \\
- .github/workflows/build_qmake.yml \\
- .github/workflows/README.md
-
-# Qt Creator linking
-
-## Either set the IDE_SOURCE_TREE when running qmake,
-## or set the QTC_SOURCE environment variable, to override the default setting
-isEmpty(IDE_SOURCE_TREE): IDE_SOURCE_TREE = $$(QTC_SOURCE)
-isEmpty(IDE_SOURCE_TREE): IDE_SOURCE_TREE = "%{QtCreatorSources}"
-
-## Either set the IDE_BUILD_TREE when running qmake,
-## or set the QTC_BUILD environment variable, to override the default setting
-isEmpty(IDE_BUILD_TREE): IDE_BUILD_TREE = $$(QTC_BUILD)
-isEmpty(IDE_BUILD_TREE): IDE_BUILD_TREE = "%{QtCreatorBuild}"
-
-## uncomment to build plugin into user config directory
-## <localappdata>/plugins/<ideversion>
-## where <localappdata> is e.g.
-## "%LOCALAPPDATA%\QtProject\qtcreator" on Windows Vista and later
-## "$XDG_DATA_HOME/data/QtProject/qtcreator" or "~/.local/share/data/QtProject/qtcreator" on Linux
-## "~/Library/Application Support/QtProject/Qt Creator" on OS X
-%{DestDir}USE_USER_DESTDIR = yes
-
-###### If the plugin can be depended upon by other plugins, this code needs to be outsourced to
-###### <dirname>_dependencies.pri, where <dirname> is the name of the directory containing the
-###### plugin's sources.
-
-QTC_PLUGIN_NAME = %{PluginName}
-QTC_LIB_DEPENDS += \\
- # nothing here at this time
-
-QTC_PLUGIN_DEPENDS += \\
- coreplugin
-
-QTC_PLUGIN_RECOMMENDS += \\
- # optional plugin dependencies. nothing here at this time
-
-###### End _dependencies.pri contents ######
-
-include($$IDE_SOURCE_TREE/src/qtcreatorplugin.pri)
diff --git a/share/qtcreator/templates/wizards/qtcreatorplugin/wizard.json b/share/qtcreator/templates/wizards/qtcreatorplugin/wizard.json
index 443fa25c25..6a629f0d05 100644
--- a/share/qtcreator/templates/wizards/qtcreatorplugin/wizard.json
+++ b/share/qtcreator/templates/wizards/qtcreatorplugin/wizard.json
@@ -8,13 +8,12 @@
"trDisplayCategory": "Library",
"icon": "qtcreatorplugin.png",
"featuresRequired": [ "QtSupport.Wizards.FeatureQt", "QtSupport.Wizards.FeatureDesktop" ],
- "enabled": "%{JS: value('Plugins').indexOf('QmakeProjectManager') >= 0}",
+ "enabled": "%{JS: value('Plugins').indexOf('CMakeProjectManager') >= 0}",
"options":
[
- { "key": "ProjectFile", "value": "%{ProFile}" },
+ { "key": "ProjectFile", "value": "%{ProjectDirectory}/CMakeLists.txt" },
{ "key": "PluginNameLower", "value": "%{JS: value('PluginName').toLowerCase()}"},
- { "key": "ProFile", "value": "%{JS: Util.fileName(value('PluginNameLower'), 'pro')}" },
{ "key": "PluginJsonFile", "value": "%{JS: Util.fileName(value('PluginName'), 'json.in')}" },
{ "key": "LibraryDefine", "value": "%{JS: Cpp.headerGuard(value('PluginName')) + '_LIBRARY'}" },
{ "key": "LibraryExport", "value": "%{JS: Cpp.headerGuard(value('PluginName')) + '_EXPORT'}" },
@@ -116,17 +115,6 @@
}
},
{
- "name": "QtCreatorSources",
- "persistenceKey": "QtCreatorSources",
- "trDisplayName": "Qt Creator sources:",
- "mandatory": true,
- "type": "PathChooser",
- "data":
- {
- "kind": "existingDirectory"
- }
- },
- {
"name": "QtCreatorBuild",
"persistenceKey": "QtCreatorBuild",
"trDisplayName": "Qt Creator build:",
@@ -136,27 +124,6 @@
{
"kind": "existingDirectory"
}
- },
- {
- "name": "DestDir",
- "persistenceKey": "QtCreatorPluginDestDir",
- "trDisplayName": "Deploy into:",
- "type": "ComboBox",
- "data":
- {
- "index": 0,
- "items":
- [
- {
- "trKey": "Qt Creator Build",
- "value": "# "
- },
- {
- "trKey": "Local User Settings",
- "value": ""
- }
- ]
- }
}
]
},
@@ -185,13 +152,16 @@
"data":
[
{
- "source": "myplugin.pro",
- "target": "%{ProFile}",
+ "source": "CMakeLists.txt",
"openAsProject": true
},
{
- "source": "github_workflows_build_qmake.yml",
- "target": ".github/workflows/build_qmake.yml"
+ "source": "README.md",
+ "openInEditor": true
+ },
+ {
+ "source": "github_workflows_build_cmake.yml",
+ "target": ".github/workflows/build_cmake.yml"
},
{
"source": "github_workflows_README.md",
@@ -199,8 +169,7 @@
},
{
"source": "myplugin.cpp",
- "target": "%{SrcFileName}",
- "openInEditor": true
+ "target": "%{SrcFileName}"
},
{
"source": "myplugin.h",