Building Qt Creator plugins with GitHub Actions

Qt Creator is a cross platform, highly modular, Qt C++ application.

In order to build a Qt Creator plugin you need:
  • A C++ compiler
  • The Qt SDK
  • The Qt Creator SDK

Not many plugin developers know that Qt Creator is shipping an SDK. You don't need to compile Qt Creator in order to develop a Qt Creator plugin. Also having access to all three platforms (Windows, Linux, macOS) is not a common thing for most C++ developers.

GitHub Actions

GitHub Actions is a CI/CD infrastructure provided by GitHub which would give access to all three platforms!
GitHub is also hosting a few Qt Creator plugin repositories, so I decided to try to build the Doxygen plugin (my fork with the GitHub Actions script).

GitHub Actions currently offers the following virtual machines (runners):

  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Windows Server 2016
  • Windows Server 2019
  • macOS 10.15

Qt SDK is not part of the software installed on the runners. This is not a problem since we want to build with the same Qt version that Qt Creator itself was build.

One can build a platform at a time, or multiple in parallel (matrix mode)


Since GitHub is providing the virtual machines and the C++ compilers one just has to obtain Qt and Qt Creator SDKs and then just "compile". 

In order to download files, to extract them, and to start compilation I decided to use a scripting language that is installed on all three of them: CMake (in scripting mode via -P command line argument).

I downloaded the Qt SDK and Qt Creator Binaries, Sources, SDK from

Building the plugin

In order to configure the plugin, one just needs to run 


Building is as easy as running make -j <number-of-cores> or jom.

At the end we will have a shared library (.dll, .so, .dynlib), which will be distributed to the users.

Triggering GitHub Actions

On git push the plugin will be built and the artifacts stored on every build. This looks like this:


If we tag a commit with git tag -a v0.4.7-qtc-4.11 -m "Release v0.4.7-qtc-4.11" and then git push origin v0.4.7-qtc-4.11 will trigger the creation of a release, and the upload of artifacts to that release. This looks like:


The newly created release looks like:


Does it run?

GitHub Actions has some differences in platforms and compilers when it comes to how Qt and Qt Creator are built:

  • Visual C++ 2019 vs Visual C++ 2017
  • Red Hat 7.2 vs Ubuntu 18.04

As it turns out Qt Creator was able to load the plugin on all three platforms!




Source code!

All of this was possible with a Yaml file that needs to be copied into qtcreator-doxygen/.github/workflows/build_qmake.yml

The source is below:

Feel free to copy and hack the script in order to release your own Qt Creator plugins! 😊

Blog Topics: