Enhanced CMake Project Manager plugin for Qt Creator

Overview

CMakeProjectManager2

Alternative CMake support for Qt Creator.

Main differents from original CMakeProject plugin:

  • Project file list readed from file system instead of parsing .cbp (CodeBlocks) project file. It can be slow on big projects, but reloading initiating only during open project, run CMake, or user-initiated tree changes (add new files, erase files, rename file)
  • You can add new files from Qt Creator. Note, you can create file outside project tree, but Qt Creator will display only files that present in project tree. Also, you should manualy describe this files in CMakeLists.txt.
  • You can rename files in file system from Qt Creator now.
  • You can erase files from files system from Qt Creator now.
  • Classic tree view for CMake Server mode (uses automatically with CMake >= 3.7)

This functionality is not compatible with QtC Project View idea: Project View == Build System view. So, upstream accepts only changes that can be done via build system tools and API. CMake does not provide way to modify CMakeLists.txt and related files, add/remove/rename file to targets and so on. So such changes in plugin (different kinds of work arounds) will be dropped. But in my opinion: usability of IDE must be putted to first place. If some kind of WA that simplify work with CMake cab be implemented - it must be implemented.

Build plugin

This plugin is oriented to latest Git version of Qt Creator, sorry I use it and I have no time to support other stable versions.

Prepare Qt Creator

If you have QtC binary installation that contains .pro/.pri and headers you should not do anythind. Just setup QTC_BUILD to the QtC Prefix (like /opt/qtcreator-git) and QTC_SOURCE to the directory, contains qtcreator.pri file (like /usr/src/qtcreator-git).

Otherwise, you must get full copy of the Qt Creator from the Git, build it and install to some prefix.

For example, all actions runs in directory /tmp/qt-creator

  • Take full Qt Creator source tree from Git:

    git clone https://github.com/qtproject/qt-creator.git qt-creator
  • Create Qt Crator build tree:

     mkdir qt-creator-build
     cd qt-creator-build
  • Create shadow build (if you use another Qt installation path, just provide correct path to the qmake):

    /opt/qt56/bin/qmake \
                IDE_PACKAGE_MODE=1 \
              PREFIX=/opt/qtcreator-git \
                LLVM_INSTALL_DIR=/usr/lib/llvm-3.9 \ 
              CONFIG+=qbs_enable_project_file_updates \
              /tmp/qt-creator/qt-creator/qtcreator.pro
  • Build and install it

    make -j8 && sudo make install

If you want to re-use binary QtC installation without full rebuild, you should do steps like previous but with minor differences:

  1. After repository clone you must checkout correct version of QtC.
  2. Qt version must be same to the Qt uses to build binary QtC.
  3. Options for the qmake must be same to the binary QtC one.
  4. Build step can be omited. (TODO: possible you should run make sub-src-clean in build dir to prepare some files).

Build plugin

  • Change directory to /tmp/qt-creator
  • Take sources of CMakeProjectManager2 from repository
  • Export two variables
    • QTC_SOURCE - point to Qt Creator source tree (in out case: /tmp/qt-creator/qt-cretor)
    • QTC_BUILD - point to Qt Creator build tree (or installed files, like /opt/qtcreator-git). Use this variable only in case, when you want to put compiled files directly to the QtC tree. It fails, if QtC owned by other user but run build with sudo is a very very bad idea.
    • QTC_BUILD_INPLACE - undefined by default. In most cases must be same to the QTC_BUILD. If defined, this location will be used as output location for compiled plugin files (.so). As a result, you can omit install step. Useful only for individual users QtC installation at the home directory. If QtC installation does not owned by user who invoke compilation linking will be fails. Strongly recommends do not use this variable, but use QTC_PREFIX for qmake and INSTALL_ROOT for make install.
    export QTC_SOURCE=/tmp/qt-creator/qt-creator
    export QTC_BUILD=/opt/qtcreator-git
  • Create directory for shadow build:
mkdir cmakeprojectmanager2-build
cd cmakeprojectmanager2-build
  • Configure plugin:
/opt/qt-git/bin/qmake QTC_PREFIX=/opt/qtcreator-git
                      LIBS+=-L${QTC_BUILD}/lib/qtcreator \
                      LIBS+=-L${QTC_BUILD}/lib/qtcreator/plugins \
                      ../cmakeprojectmanager2-git/cmakeprojectmanager.pro

LIBS need for linker. QTC_PREFIX by default is /usr/local.

  • Build:
 make -j8
  • Install
    • to QTC_PREFIX:
    sudo make install
    • for packagers:
    make INSTALL_ROOT=/tmp/plugin install

Restart Qt Creator, go to Help -> About plugins and turn off default CMakeProjectManager plugin.

Build plugin from Qt Creator

  • Open cmakeprojectmanager.pro, go to Projects layout (see left panel)
  • Look to Build Steps section and add next params for qmake:
LIBS+=-L${QTC_BUILD}/lib/qtcreator
LIBS+=-L${QTC_BUILD}/lib/qtcreator/plugins
  • Look to Build Environment and define next variables:
QTC_SOURCE=/tmp/qt-creator/qt-creator
QTC_BUILD=/opt/qtcreator-git

Now you can build plugin from Qt Creator.

Prebuilt binaries

Now Ubuntu 14.04/16.04 / Mint 17.x/18.x PPA with master-git Qt Creator and CMakePrjectManager2 plugin:
https://launchpad.net/~adrozdoff/+archive/ubuntu/qtcreator-git

This repo depdens on next Qt repository: ppa:beineri/opt-qt561-trusty

To install next steps is required (Trusty):

sudo apt-add-repository ppa:adrozdoff/llvm-backport (i386)
sudo apt-add-repository ppa:adrozdoff/llvm-backport-x64 (x86_64)
sudo apt-add-repository ppa:beineri/opt-qt561-trusty
sudo apt-add-repository ppa:adrozdoff/qtcreator-git
sudo apt-get update
sudo apt-get install qtcreator-git qtcreator-git-plugin-cmake2

Xenial:

sudo apt-add-repository ppa:beineri/opt-qt561-xenial
sudo apt-add-repository ppa:adrozdoff/qtcreator-git
sudo apt-get update
sudo apt-get install qtcreator-git qtcreator-git-plugin-cmake2

TODO & Roadmap

Actual tasks and todo can be looks at the Issue page: https://github.com/h4tr3d/cmakeprojectmanager2/issues

Sync with Qt Creator upstream plugin

  1. Update Qt Creator git repository, moves to the master branch
  2. Create patches for new changes
git format-patch 
   
     -- src/plugins/cmakeprojectmanager

   

REVISION_SINCE can be found via 'git log' by comments or Change-Id. 3. Go to CMakeProjectManager2 source tree and change branch to the qtc-master 4. Copy patches from the step 2 to the CMakeProjectManager2 source tree root 5. Apply patches:

git am -p4 *.patch
  1. Change branch to the master, merge new changes and resolve conflicts
Issues
  • Build error with QtC 4.5

    Build error with QtC 4.5

    Have error building cmakeprojectmanager2 against Qt Creator 4.5. Was able to build successfully previously. Error message below. Which revision/branch I can use to build against Qt Creator 4.5?

    In file included from ../cmakeprojectmanager2/cmakerunconfiguration.cpp:26:0:
    ../cmakeprojectmanager2/cmakerunconfiguration.h:58:10: error: 'void CMakeProjectManager::Internal::CMakeRunConfiguration::initialize(Core::Id)' marked 'override', but does not override
         void initialize(Core::Id id) override;
              ^~~~~~~~~~
    ../cmakeprojectmanager2/cmakerunconfiguration.cpp: In constructor 'CMakeProjectManager::Internal::CMakeRunConfigurationFactory::CMakeRunConfigurationFactory(QObject*)':
    ../cmakeprojectmanager2/cmakerunconfiguration.cpp:224:5: error: 'registerRunConfiguration' was not declared in this scope
         registerRunConfiguration<CMakeRunConfiguration>();
         ^~~~~~~~~~~~~~~~~~~~~~~~
    ../cmakeprojectmanager2/cmakerunconfiguration.cpp:224:5: note: suggested alternative: 'CMakeRunConfigurationFactory'
         registerRunConfiguration<CMakeRunConfiguration>();
         ^~~~~~~~~~~~~~~~~~~~~~~~
         CMakeRunConfigurationFactory
    ../cmakeprojectmanager2/cmakerunconfiguration.cpp:224:51: error: expected primary-expression before '>' token
         registerRunConfiguration<CMakeRunConfiguration>();
                                                       ^
    ../cmakeprojectmanager2/cmakerunconfiguration.cpp:224:53: error: expected primary-expression before ')' token
         registerRunConfiguration<CMakeRunConfiguration>();
                                                         ^
    ../cmakeprojectmanager2/cmakerunconfiguration.cpp:225:5: error: 'setSupportedProjectType' was not declared in this scope
         setSupportedProjectType<CMakeProject>();
         ^~~~~~~~~~~~~~~~~~~~~~~
    ../cmakeprojectmanager2/cmakerunconfiguration.cpp:225:41: error: expected primary-expression before '>' token
         setSupportedProjectType<CMakeProject>();
                                             ^
    ../cmakeprojectmanager2/cmakerunconfiguration.cpp:225:43: error: expected primary-expression before ')' token
         setSupportedProjectType<CMakeProject>();
                                               ^
    ../cmakeprojectmanager2/cmakerunconfiguration.cpp: In member function 'virtual QList<Core::Id> CMakeProjectManager::Internal::CMakeRunConfigurationFactory::availableCreationIds(ProjectExplorer::Target*, ProjectExplorer::IRunConfigurationFactory::CreationMode) const':
    ../cmakeprojectmanager2/cmakerunconfiguration.cpp:232:10: error: 'canHandle' was not declared in this scope
         if (!canHandle(parent))
              ^~~~~~~~~
    ../cmakeprojectmanager2/cmakerunconfiguration.cpp: In member function 'virtual bool CMakeProjectManager::Internal::CMakeRunConfigurationFactory::canCreate(ProjectExplorer::Target*, Core::Id) const':
    ../cmakeprojectmanager2/cmakerunconfiguration.cpp:249:10: error: 'canHandle' was not declared in this scope
         if (!canHandle(parent))
              ^~~~~~~~~
    In file included from ../cmakeprojectmanager2/cmakebuildstep.cpp:33:0:
    ../cmakeprojectmanager2/cmakerunconfiguration.h:58:10: error: 'void CMakeProjectManager::Internal::CMakeRunConfiguration::initialize(Core::Id)' marked 'override', but does not override
         void initialize(Core::Id id) override;
              ^~~~~~~~~~
    In file included from ../cmakeprojectmanager2/cmakeproject.cpp:32:0:
    ../cmakeprojectmanager2/cmakerunconfiguration.h:58:10: error: 'void CMakeProjectManager::Internal::CMakeRunConfiguration::initialize(Core::Id)' marked 'override', but does not override
         void initialize(Core::Id id) override;
              ^~~~~~~~~~
    ../cmakeprojectmanager2/cmakerunconfiguration.cpp: In member function 'virtual bool CMakeProjectManager::Internal::CMakeRunConfigurationFactory::canClone(ProjectExplorer::Target*, ProjectExplorer::RunConfiguration*) const':
    ../cmakeprojectmanager2/cmakerunconfiguration.cpp:257:10: error: 'canHandle' was not declared in this scope
         if (!canHandle(parent))
              ^~~~~~~~~
    In file included from ../cmakeprojectmanager2/cmakeprojectplugin.cpp:35:0:
    ../cmakeprojectmanager2/cmakerunconfiguration.h:58:10: error: 'void CMakeProjectManager::Internal::CMakeRunConfiguration::initialize(Core::Id)' marked 'override', but does not override
         void initialize(Core::Id id) override;
              ^~~~~~~~~~
    ../cmakeprojectmanager2/cmakeprojectplugin.cpp: In member function 'virtual bool CMakeProjectManager::Internal::CMakeProjectPlugin::initialize(const QStringList&, QString*)':
    ../cmakeprojectmanager2/cmakeprojectplugin.cpp:74:31: error: invalid new-expression of abstract class type 'CMakeProjectManager::Internal::CMakeRunConfigurationFactory'
         addAutoReleasedObject(new CMakeRunConfigurationFactory);
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from ../cmakeprojectmanager2/cmakeprojectplugin.cpp:35:0:
    ../cmakeprojectmanager2/cmakerunconfiguration.h:81:7: note:   because the following virtual functions are pure within 'CMakeProjectManager::Internal::CMakeRunConfigurationFactory':
     class CMakeRunConfigurationFactory : public ProjectExplorer::IRunConfigurationFactory
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from ../../src/plugins/projectexplorer/runnables.h:28:0,
                     from ../cmakeprojectmanager2/cmakerunconfiguration.h:28,
                     from ../cmakeprojectmanager2/cmakeprojectplugin.cpp:35:
    ../../src/plugins/projectexplorer/runconfiguration.h:296:31: note:      virtual ProjectExplorer::RunConfiguration* ProjectExplorer::IRunConfigurationFactory::clone(ProjectExplorer::Target*, ProjectExplorer::RunConfiguration*)
         virtual RunConfiguration *clone(Target *parent, RunConfiguration *product) = 0;
                                   ^~~~~
    ../../src/plugins/projectexplorer/runconfiguration.h:320:31: note:      virtual ProjectExplorer::RunConfiguration* ProjectExplorer::IRunConfigurationFactory::doCreate(ProjectExplorer::Target*, Core::Id)
         virtual RunConfiguration *doCreate(Target *parent, Core::Id id) = 0;
                                   ^~~~~~~~
    ../../src/plugins/projectexplorer/runconfiguration.h:321:31: note:      virtual ProjectExplorer::RunConfiguration* ProjectExplorer::IRunConfigurationFactory::doRestore(ProjectExplorer::Target*, const QVariantMap&)
         virtual RunConfiguration *doRestore(Target *parent, const QVariantMap &map) = 0;
                                   ^~~~~~~~~
    g++ -c -pipe -Wno-noexcept-type -O2 -std=gnu++1y -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC -DCMAKEPROJECTMANAGER_LIBRARY -D'RELATIVE_PLUGIN_PATH="../lib/qtcreator/plugins"' -D'RELATIVE_LIBEXEC_PATH="../libexec/qtcreator"' -D'RELATIVE_DATA_PATH="../share/qtcreator"' -D'RELATIVE_DOC_PATH="../share/doc/qtcreator"' -DIDE_LIBRARY_BASENAME=\"lib\" -DQT_CREATOR -DQT_NO_CAST_TO_ASCII -DQT_RESTRICTED_CAST_FROM_ASCII -DQT_DISABLE_DEPRECATED_BEFORE=0x050600 -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_FAST_CONCATENATION -DQMAKE_AS_LIBRARY -DPROPARSER_THREAD_SAFE -DPROEVALUATOR_THREAD_SAFE -DPROEVALUATOR_CUMULATIVE -DPROEVALUATOR_DUAL_VFS -DPROEVALUATOR_SETENV -DQT_NO_DEBUG -DQT_PLUGIN -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/home/aleksey/Qt/Tools/QtCreator/src/qt-creator/qt-creator-build/cmakeprojectmanager2-build/src -I../../src -I../../src/libs -I/home/aleksey/Qt/Tools/QtCreator/src/qt-creator/tools -I../../src/plugins -I../../src/shared -I../../src/libs/3rdparty -I. -I../../src/plugins/texteditor -I/home/aleksey/Qt/5.9.3/gcc_64/include -I/home/aleksey/Qt/5.9.3/gcc_64/include/QtWidgets -I/home/aleksey/Qt/5.9.3/gcc_64/include/QtGui -I/home/aleksey/Qt/5.9.3/gcc_64/include/QtConcurrent -I/home/aleksey/Qt/5.9.3/gcc_64/include/QtNetwork -I/home/aleksey/Qt/5.9.3/gcc_64/include/QtCore -I.moc/release-shared -isystem /usr/include/libdrm -I/home/aleksey/Qt/5.9.3/gcc_64/mkspecs/linux-g++ -o .obj/release-shared/cmaketool.o ../cmakeprojectmanager2/cmaketool.cpp
    make: *** [Makefile:7744: .obj/release-shared/cmakerunconfiguration.o] Error 1
    make: *** Waiting for unfinished jobs....
    make: *** [Makefile:6928: .obj/release-shared/cmakeprojectplugin.o] Error 1
    make: *** [Makefile:5801: .obj/release-shared/cmakebuildstep.o] Error 1
    make: *** [Makefile:6356: .obj/release-shared/cmakeproject.o] Error 1
    
    
    opened by akontsevich 10
  • Precompiled releases

    Precompiled releases

    Could You make precompiled releases for CMakeProjectManager2 like qtc-gtest (Qt Creator Google Test framework integration plugin) do: https://github.com/OneMoreGres/qtc-gtest/releases? Thanks!

    opened by akontsevich 5
  • Steps duplicated

    Steps duplicated

    After opening an existing CMake project (created without this plugin), steps build and clean are duplicated.

    QtCreator: 6.0.0-beta1 (5.82.0) This plugin: a82221f

    Projects created with plugin not tested.

    opened by sr-tream 4
  • Build failed with QtCreator 4.15

    Build failed with QtCreator 4.15

    Plugin branch - master QtCreator - 4.15

    Build output:

    g++ -c -pipe -Wno-noexcept-type -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -std=gnu++1z -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -D_REENTRANT -fPIC -DCMAKEPROJECTMANAGER_LIBRARY -D'RELATIVE_PLUGIN_PATH="../lib/qtcreator/plugins"' -D'RELATIVE_LIBEXEC_PATH="../libexec/qtcreator"' -D'RELATIVE_DATA_PATH="../share/qtcreator"' -D'RELATIVE_DOC_PATH="../share/doc/qtcreator"' -DIDE_LIBRARY_BASENAME=\"lib\" -DQT_CREATOR -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_CAST_TO_ASCII -DQT_RESTRICTED_CAST_FROM_ASCII -DQT_DISABLE_DEPRECATED_BEFORE=0x050900 -DQT_USE_QSTRINGBUILDER -DQMAKE_AS_LIBRARY -DPROPARSER_THREAD_SAFE -DPROEVALUATOR_THREAD_SAFE -DPROEVALUATOR_CUMULATIVE -DPROEVALUATOR_DUAL_VFS -DPROEVALUATOR_SETENV -DQT_NO_DEBUG -DQT_PLUGIN -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/src -I/usr/src/qtcreator/src -I/usr/src/qtcreator/src/libs -I/usr/src/qtcreator/tools -I/usr/src/qtcreator/src/plugins -I/usr/src/qtcreator/src/libs -I/usr/src/qtcreator/src/libs/3rdparty -I/usr/src/qtcreator/src/shared -I/usr/src/qtcreator/src/libs/3rdparty/syntax-highlighting/src/lib -I/usr/src/qtcreator/src/libs/3rdparty/syntax-highlighting/autogenerated/src/lib -I. -I/usr/src/qtcreator/src/plugins/texteditor -I/usr/include/qt -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtGui -I/usr/include/qt/QtConcurrent -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I.moc/release-shared -I/usr/lib/qt/mkspecs/linux-g++ -o .obj/release-shared/builddirparameters.o builddirparameters.cpp
    g++ -c -pipe -Wno-noexcept-type -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -std=gnu++1z -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -D_REENTRANT -fPIC -DCMAKEPROJECTMANAGER_LIBRARY -D'RELATIVE_PLUGIN_PATH="../lib/qtcreator/plugins"' -D'RELATIVE_LIBEXEC_PATH="../libexec/qtcreator"' -D'RELATIVE_DATA_PATH="../share/qtcreator"' -D'RELATIVE_DOC_PATH="../share/doc/qtcreator"' -DIDE_LIBRARY_BASENAME=\"lib\" -DQT_CREATOR -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_CAST_TO_ASCII -DQT_RESTRICTED_CAST_FROM_ASCII -DQT_DISABLE_DEPRECATED_BEFORE=0x050900 -DQT_USE_QSTRINGBUILDER -DQMAKE_AS_LIBRARY -DPROPARSER_THREAD_SAFE -DPROEVALUATOR_THREAD_SAFE -DPROEVALUATOR_CUMULATIVE -DPROEVALUATOR_DUAL_VFS -DPROEVALUATOR_SETENV -DQT_NO_DEBUG -DQT_PLUGIN -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/src -I/usr/src/qtcreator/src -I/usr/src/qtcreator/src/libs -I/usr/src/qtcreator/tools -I/usr/src/qtcreator/src/plugins -I/usr/src/qtcreator/src/libs -I/usr/src/qtcreator/src/libs/3rdparty -I/usr/src/qtcreator/src/shared -I/usr/src/qtcreator/src/libs/3rdparty/syntax-highlighting/src/lib -I/usr/src/qtcreator/src/libs/3rdparty/syntax-highlighting/autogenerated/src/lib -I. -I/usr/src/qtcreator/src/plugins/texteditor -I/usr/include/qt -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtGui -I/usr/include/qt/QtConcurrent -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I.moc/release-shared -I/usr/lib/qt/mkspecs/linux-g++ -o .obj/release-shared/cmakebuildstep.o cmakebuildstep.cpp
    g++ -c -pipe -Wno-noexcept-type -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -std=gnu++1z -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -D_REENTRANT -fPIC -DCMAKEPROJECTMANAGER_LIBRARY -D'RELATIVE_PLUGIN_PATH="../lib/qtcreator/plugins"' -D'RELATIVE_LIBEXEC_PATH="../libexec/qtcreator"' -D'RELATIVE_DATA_PATH="../share/qtcreator"' -D'RELATIVE_DOC_PATH="../share/doc/qtcreator"' -DIDE_LIBRARY_BASENAME=\"lib\" -DQT_CREATOR -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_CAST_TO_ASCII -DQT_RESTRICTED_CAST_FROM_ASCII -DQT_DISABLE_DEPRECATED_BEFORE=0x050900 -DQT_USE_QSTRINGBUILDER -DQMAKE_AS_LIBRARY -DPROPARSER_THREAD_SAFE -DPROEVALUATOR_THREAD_SAFE -DPROEVALUATOR_CUMULATIVE -DPROEVALUATOR_DUAL_VFS -DPROEVALUATOR_SETENV -DQT_NO_DEBUG -DQT_PLUGIN -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/src -I/usr/src/qtcreator/src -I/usr/src/qtcreator/src/libs -I/usr/src/qtcreator/tools -I/usr/src/qtcreator/src/plugins -I/usr/src/qtcreator/src/libs -I/usr/src/qtcreator/src/libs/3rdparty -I/usr/src/qtcreator/src/shared -I/usr/src/qtcreator/src/libs/3rdparty/syntax-highlighting/src/lib -I/usr/src/qtcreator/src/libs/3rdparty/syntax-highlighting/autogenerated/src/lib -I. -I/usr/src/qtcreator/src/plugins/texteditor -I/usr/include/qt -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtGui -I/usr/include/qt/QtConcurrent -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I.moc/release-shared -I/usr/lib/qt/mkspecs/linux-g++ -o .obj/release-shared/cmakebuildsystem.o cmakebuildsystem.cpp
    g++ -c -pipe -Wno-noexcept-type -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -std=gnu++1z -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -D_REENTRANT -fPIC -DCMAKEPROJECTMANAGER_LIBRARY -D'RELATIVE_PLUGIN_PATH="../lib/qtcreator/plugins"' -D'RELATIVE_LIBEXEC_PATH="../libexec/qtcreator"' -D'RELATIVE_DATA_PATH="../share/qtcreator"' -D'RELATIVE_DOC_PATH="../share/doc/qtcreator"' -DIDE_LIBRARY_BASENAME=\"lib\" -DQT_CREATOR -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_CAST_TO_ASCII -DQT_RESTRICTED_CAST_FROM_ASCII -DQT_DISABLE_DEPRECATED_BEFORE=0x050900 -DQT_USE_QSTRINGBUILDER -DQMAKE_AS_LIBRARY -DPROPARSER_THREAD_SAFE -DPROEVALUATOR_THREAD_SAFE -DPROEVALUATOR_CUMULATIVE -DPROEVALUATOR_DUAL_VFS -DPROEVALUATOR_SETENV -DQT_NO_DEBUG -DQT_PLUGIN -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/src -I/usr/src/qtcreator/src -I/usr/src/qtcreator/src/libs -I/usr/src/qtcreator/tools -I/usr/src/qtcreator/src/plugins -I/usr/src/qtcreator/src/libs -I/usr/src/qtcreator/src/libs/3rdparty -I/usr/src/qtcreator/src/shared -I/usr/src/qtcreator/src/libs/3rdparty/syntax-highlighting/src/lib -I/usr/src/qtcreator/src/libs/3rdparty/syntax-highlighting/autogenerated/src/lib -I. -I/usr/src/qtcreator/src/plugins/texteditor -I/usr/include/qt -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtGui -I/usr/include/qt/QtConcurrent -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I.moc/release-shared -I/usr/lib/qt/mkspecs/linux-g++ -o .obj/release-shared/cmakeprocess.o cmakeprocess.cpp
    g++ -c -pipe -Wno-noexcept-type -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -std=gnu++1z -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -D_REENTRANT -fPIC -DCMAKEPROJECTMANAGER_LIBRARY -D'RELATIVE_PLUGIN_PATH="../lib/qtcreator/plugins"' -D'RELATIVE_LIBEXEC_PATH="../libexec/qtcreator"' -D'RELATIVE_DATA_PATH="../share/qtcreator"' -D'RELATIVE_DOC_PATH="../share/doc/qtcreator"' -DIDE_LIBRARY_BASENAME=\"lib\" -DQT_CREATOR -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_CAST_TO_ASCII -DQT_RESTRICTED_CAST_FROM_ASCII -DQT_DISABLE_DEPRECATED_BEFORE=0x050900 -DQT_USE_QSTRINGBUILDER -DQMAKE_AS_LIBRARY -DPROPARSER_THREAD_SAFE -DPROEVALUATOR_THREAD_SAFE -DPROEVALUATOR_CUMULATIVE -DPROEVALUATOR_DUAL_VFS -DPROEVALUATOR_SETENV -DQT_NO_DEBUG -DQT_PLUGIN -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/src -I/usr/src/qtcreator/src -I/usr/src/qtcreator/src/libs -I/usr/src/qtcreator/tools -I/usr/src/qtcreator/src/plugins -I/usr/src/qtcreator/src/libs -I/usr/src/qtcreator/src/libs/3rdparty -I/usr/src/qtcreator/src/shared -I/usr/src/qtcreator/src/libs/3rdparty/syntax-highlighting/src/lib -I/usr/src/qtcreator/src/libs/3rdparty/syntax-highlighting/autogenerated/src/lib -I. -I/usr/src/qtcreator/src/plugins/texteditor -I/usr/include/qt -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtGui -I/usr/include/qt/QtConcurrent -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I.moc/release-shared -I/usr/lib/qt/mkspecs/linux-g++ -o .obj/release-shared/cmakeproject.o cmakeproject.cpp
    g++ -c -pipe -Wno-noexcept-type -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -std=gnu++1z -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -D_REENTRANT -fPIC -DCMAKEPROJECTMANAGER_LIBRARY -D'RELATIVE_PLUGIN_PATH="../lib/qtcreator/plugins"' -D'RELATIVE_LIBEXEC_PATH="../libexec/qtcreator"' -D'RELATIVE_DATA_PATH="../share/qtcreator"' -D'RELATIVE_DOC_PATH="../share/doc/qtcreator"' -DIDE_LIBRARY_BASENAME=\"lib\" -DQT_CREATOR -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_CAST_TO_ASCII -DQT_RESTRICTED_CAST_FROM_ASCII -DQT_DISABLE_DEPRECATED_BEFORE=0x050900 -DQT_USE_QSTRINGBUILDER -DQMAKE_AS_LIBRARY -DPROPARSER_THREAD_SAFE -DPROEVALUATOR_THREAD_SAFE -DPROEVALUATOR_CUMULATIVE -DPROEVALUATOR_DUAL_VFS -DPROEVALUATOR_SETENV -DQT_NO_DEBUG -DQT_PLUGIN -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/src -I/usr/src/qtcreator/src -I/usr/src/qtcreator/src/libs -I/usr/src/qtcreator/tools -I/usr/src/qtcreator/src/plugins -I/usr/src/qtcreator/src/libs -I/usr/src/qtcreator/src/libs/3rdparty -I/usr/src/qtcreator/src/shared -I/usr/src/qtcreator/src/libs/3rdparty/syntax-highlighting/src/lib -I/usr/src/qtcreator/src/libs/3rdparty/syntax-highlighting/autogenerated/src/lib -I. -I/usr/src/qtcreator/src/plugins/texteditor -I/usr/include/qt -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtGui -I/usr/include/qt/QtConcurrent -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I.moc/release-shared -I/usr/lib/qt/mkspecs/linux-g++ -o .obj/release-shared/cmakeprojectimporter.o cmakeprojectimporter.cpp
    g++ -c -pipe -Wno-noexcept-type -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -std=gnu++1z -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -D_REENTRANT -fPIC -DCMAKEPROJECTMANAGER_LIBRARY -D'RELATIVE_PLUGIN_PATH="../lib/qtcreator/plugins"' -D'RELATIVE_LIBEXEC_PATH="../libexec/qtcreator"' -D'RELATIVE_DATA_PATH="../share/qtcreator"' -D'RELATIVE_DOC_PATH="../share/doc/qtcreator"' -DIDE_LIBRARY_BASENAME=\"lib\" -DQT_CREATOR -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_CAST_TO_ASCII -DQT_RESTRICTED_CAST_FROM_ASCII -DQT_DISABLE_DEPRECATED_BEFORE=0x050900 -DQT_USE_QSTRINGBUILDER -DQMAKE_AS_LIBRARY -DPROPARSER_THREAD_SAFE -DPROEVALUATOR_THREAD_SAFE -DPROEVALUATOR_CUMULATIVE -DPROEVALUATOR_DUAL_VFS -DPROEVALUATOR_SETENV -DQT_NO_DEBUG -DQT_PLUGIN -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/src -I/usr/src/qtcreator/src -I/usr/src/qtcreator/src/libs -I/usr/src/qtcreator/tools -I/usr/src/qtcreator/src/plugins -I/usr/src/qtcreator/src/libs -I/usr/src/qtcreator/src/libs/3rdparty -I/usr/src/qtcreator/src/shared -I/usr/src/qtcreator/src/libs/3rdparty/syntax-highlighting/src/lib -I/usr/src/qtcreator/src/libs/3rdparty/syntax-highlighting/autogenerated/src/lib -I. -I/usr/src/qtcreator/src/plugins/texteditor -I/usr/include/qt -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtGui -I/usr/include/qt/QtConcurrent -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I.moc/release-shared -I/usr/lib/qt/mkspecs/linux-g++ -o .obj/release-shared/cmakeprojectplugin.o cmakeprojectplugin.cpp
    g++ -c -pipe -Wno-noexcept-type -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -std=gnu++1z -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -D_REENTRANT -fPIC -DCMAKEPROJECTMANAGER_LIBRARY -D'RELATIVE_PLUGIN_PATH="../lib/qtcreator/plugins"' -D'RELATIVE_LIBEXEC_PATH="../libexec/qtcreator"' -D'RELATIVE_DATA_PATH="../share/qtcreator"' -D'RELATIVE_DOC_PATH="../share/doc/qtcreator"' -DIDE_LIBRARY_BASENAME=\"lib\" -DQT_CREATOR -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_CAST_TO_ASCII -DQT_RESTRICTED_CAST_FROM_ASCII -DQT_DISABLE_DEPRECATED_BEFORE=0x050900 -DQT_USE_QSTRINGBUILDER -DQMAKE_AS_LIBRARY -DPROPARSER_THREAD_SAFE -DPROEVALUATOR_THREAD_SAFE -DPROEVALUATOR_CUMULATIVE -DPROEVALUATOR_DUAL_VFS -DPROEVALUATOR_SETENV -DQT_NO_DEBUG -DQT_PLUGIN -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/src -I/usr/src/qtcreator/src -I/usr/src/qtcreator/src/libs -I/usr/src/qtcreator/tools -I/usr/src/qtcreator/src/plugins -I/usr/src/qtcreator/src/libs -I/usr/src/qtcreator/src/libs/3rdparty -I/usr/src/qtcreator/src/shared -I/usr/src/qtcreator/src/libs/3rdparty/syntax-highlighting/src/lib -I/usr/src/qtcreator/src/libs/3rdparty/syntax-highlighting/autogenerated/src/lib -I. -I/usr/src/qtcreator/src/plugins/texteditor -I/usr/include/qt -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtGui -I/usr/include/qt/QtConcurrent -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I.moc/release-shared -I/usr/lib/qt/mkspecs/linux-g++ -o .obj/release-shared/cmakeprojectmanager.o cmakeprojectmanager.cpp
    In file included from cmakeproject.cpp:29:
    cmakebuildsystem.h:37:10: fatal error: utils/futuresynchronizer.h: No such file or directory
       37 | #include <utils/futuresynchronizer.h>
          |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    make: *** [Makefile:2500: .obj/release-shared/cmakeproject.o] Error 1
    make: *** Waiting for unfinished jobs....
    In file included from cmakeprojectimporter.cpp:29:
    cmakebuildsystem.h:37:10: fatal error: utils/futuresynchronizer.h: No such file or directory
       37 | #include <utils/futuresynchronizer.h>
          |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    make: *** [Makefile:2604: .obj/release-shared/cmakeprojectimporter.o] Error 1
    In file included from cmakeprojectmanager.cpp:28:
    cmakebuildsystem.h:37:10: fatal error: utils/futuresynchronizer.h: No such file or directory
       37 | #include <utils/futuresynchronizer.h>
          |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    make: *** [Makefile:2849: .obj/release-shared/cmakeprojectmanager.o] Error 1
    In file included from cmakebuildstep.cpp:29:
    cmakebuildsystem.h:37:10: fatal error: utils/futuresynchronizer.h: No such file or directory
       37 | #include <utils/futuresynchronizer.h>
          |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    make: *** [Makefile:2114: .obj/release-shared/cmakebuildstep.o] Error 1
    In file included from cmakebuildsystem.cpp:26:
    cmakebuildsystem.h:37:10: fatal error: utils/futuresynchronizer.h: No such file or directory
       37 | #include <utils/futuresynchronizer.h>
          |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    make: *** [Makefile:2303: .obj/release-shared/cmakebuildsystem.o] Error 1
    In file included from cmakeprojectplugin.cpp:30:
    cmakebuildsystem.h:37:10: fatal error: utils/futuresynchronizer.h: No such file or directory
       37 | #include <utils/futuresynchronizer.h>
          |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    make: *** [Makefile:2734: .obj/release-shared/cmakeprojectplugin.o] Error 1
    In file included from builddirparameters.cpp:29:
    cmakekitinformation.h:89:10: error: 'void CMakeProjectManager::CMakeGeneratorKitAspect::addToBuildEnvironment(const ProjectExplorer::Kit*, Utils::Environment&) const' marked 'final', but is not virtual
       89 |     void addToBuildEnvironment(const ProjectExplorer::Kit *k, Utils::Environment &env) const final;
          |          ^~~~~~~~~~~~~~~~~~~~~
    make: *** [Makefile:2001: .obj/release-shared/builddirparameters.o] Error 1
    cmakeprocess.cpp: In function 'QString CMakeProjectManager::Internal::lineSplit(const QString&, const QByteArray&, std::function<void(const QString&)>)':
    cmakeprocess.cpp:47:45: error: 'normalizeNewlines' is not a member of 'Utils::QtcProcess'
       47 |     QString tmp = rest + Utils::QtcProcess::normalizeNewlines(QString::fromLocal8Bit(array));
          |                                             ^~~~~~~~~~~~~~~~~
    cmakeprocess.cpp: In member function 'void CMakeProjectManager::Internal::CMakeProcess::run(const CMakeProjectManager::Internal::BuildDirParameters&, const QStringList&)':
    cmakeprocess.cpp:92:55: error: 'const class Utils::FilePath' has no member named 'path'
       92 |     const QString srcDir = parameters.sourceDirectory.path();
          |                                                       ^~~~
    cmakeprocess.cpp:106:34: error: cannot convert 'const Utils::FilePath' to 'const QString&'
      106 |     process->setWorkingDirectory(buildDirectory);
          |                                  ^~~~~~~~~~~~~~
          |                                  |
          |                                  const Utils::FilePath
    In file included from /usr/include/qt/QtCore/QProcess:1,
                     from /usr/src/qtcreator/src/libs/utils/qtcprocess.h:30,
                     from cmakeprocess.h:31,
                     from cmakeprocess.cpp:26:
    /usr/include/qt/QtCore/qprocess.h:225:45: note:   initializing argument 1 of 'void QProcess::setWorkingDirectory(const QString&)'
      225 |     void setWorkingDirectory(const QString &dir);
          |                              ~~~~~~~~~~~~~~~^~~
    cmakeprocess.cpp:113:12: error: no matching function for call to 'CMakeProjectManager::Internal::CMakeProcess::connect(std::unique_ptr<Utils::QtcProcess>::pointer, <unresolved overloaded function type>, CMakeProjectManager::Internal::CMakeProcess*, void (CMakeProjectManager::Internal::CMakeProcess::*)())'
      113 |     connect(process.get(), &QtcProcess::finished,
          |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      114 |             this, &CMakeProcess::handleProcessFinished);
          |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /usr/include/qt/QtCore/qsharedpointer_impl.h:65,
                     from /usr/include/qt/QtCore/qsharedpointer.h:48,
                     from /usr/include/qt/QtGui/qpixmap.h:48,
                     from /usr/include/qt/QtGui/qicon.h:46,
                     from /usr/include/qt/QtGui/QIcon:1,
                     from /usr/src/qtcreator/src/plugins/texteditor/codeassist/assistproposalitem.h:32,
                     from /usr/src/qtcreator/src/plugins/texteditor/codeassist/keywordscompletionassist.h:29,
                     from cmaketool.h:30,
                     from builddirparameters.h:29,
                     from cmakeprocess.h:28,
                     from cmakeprocess.cpp:26:
    /usr/include/qt/QtCore/qobject.h:242:43: note: candidate: 'template<class Func1, class Func2> static QMetaObject::Connection QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const typename QtPrivate::FunctionPointer<Func2>::Object*, Func2, Qt::ConnectionType)'
      242 |     static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal,
          |                                           ^~~~~~~
    /usr/include/qt/QtCore/qobject.h:242:43: note:   template argument deduction/substitution failed:
    cmakeprocess.cpp:113:12: note:   couldn't deduce template parameter 'Func1'
      113 |     connect(process.get(), &QtcProcess::finished,
          |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      114 |             this, &CMakeProcess::handleProcessFinished);
          |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /usr/include/qt/QtCore/qsharedpointer_impl.h:65,
                     from /usr/include/qt/QtCore/qsharedpointer.h:48,
                     from /usr/include/qt/QtGui/qpixmap.h:48,
                     from /usr/include/qt/QtGui/qicon.h:46,
                     from /usr/include/qt/QtGui/QIcon:1,
                     from /usr/src/qtcreator/src/plugins/texteditor/codeassist/assistproposalitem.h:32,
                     from /usr/src/qtcreator/src/plugins/texteditor/codeassist/keywordscompletionassist.h:29,
                     from cmaketool.h:30,
                     from builddirparameters.h:29,
                     from cmakeprocess.h:28,
                     from cmakeprocess.cpp:26:
    /usr/include/qt/QtCore/qobject.h:274:13: note: candidate: 'template<class Func1, class Func2> static typename std::enable_if<((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)'
      274 |             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
          |             ^~~~~~~
    /usr/include/qt/QtCore/qobject.h:274:13: note:   template argument deduction/substitution failed:
    cmakeprocess.cpp:113:12: note:   candidate expects 3 arguments, 4 provided
      113 |     connect(process.get(), &QtcProcess::finished,
          |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      114 |             this, &CMakeProcess::handleProcessFinished);
          |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /usr/include/qt/QtCore/qsharedpointer_impl.h:65,
                     from /usr/include/qt/QtCore/qsharedpointer.h:48,
                     from /usr/include/qt/QtGui/qpixmap.h:48,
                     from /usr/include/qt/QtGui/qicon.h:46,
                     from /usr/include/qt/QtGui/QIcon:1,
                     from /usr/src/qtcreator/src/plugins/texteditor/codeassist/assistproposalitem.h:32,
                     from /usr/src/qtcreator/src/plugins/texteditor/codeassist/keywordscompletionassist.h:29,
                     from cmaketool.h:30,
                     from builddirparameters.h:29,
                     from cmakeprocess.h:28,
                     from cmakeprocess.cpp:26:
    /usr/include/qt/QtCore/qobject.h:283:13: note: candidate: 'template<class Func1, class Func2> static typename std::enable_if<(((int)(QtPrivate::FunctionPointer<Func2>::ArgumentCount) >= 0) && (! QtPrivate::FunctionPointer<Func2>::IsPointerToMemberFunction)), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)'
      283 |             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
          |             ^~~~~~~
    /usr/include/qt/QtCore/qobject.h:283:13: note:   template argument deduction/substitution failed:
    cmakeprocess.cpp:113:12: note:   couldn't deduce template parameter 'Func1'
      113 |     connect(process.get(), &QtcProcess::finished,
          |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      114 |             this, &CMakeProcess::handleProcessFinished);
          |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /usr/include/qt/QtCore/qsharedpointer_impl.h:65,
                     from /usr/include/qt/QtCore/qsharedpointer.h:48,
                     from /usr/include/qt/QtGui/qpixmap.h:48,
                     from /usr/include/qt/QtGui/qicon.h:46,
                     from /usr/include/qt/QtGui/QIcon:1,
                     from /usr/src/qtcreator/src/plugins/texteditor/codeassist/assistproposalitem.h:32,
                     from /usr/src/qtcreator/src/plugins/texteditor/codeassist/keywordscompletionassist.h:29,
                     from cmaketool.h:30,
                     from builddirparameters.h:29,
                     from cmakeprocess.h:28,
                     from cmakeprocess.cpp:26:
    /usr/include/qt/QtCore/qobject.h:314:13: note: candidate: 'template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, Func2)'
      314 |             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, Func2 slot)
          |             ^~~~~~~
    /usr/include/qt/QtCore/qobject.h:314:13: note:   template argument deduction/substitution failed:
    cmakeprocess.cpp:113:12: note:   candidate expects 3 arguments, 4 provided
      113 |     connect(process.get(), &QtcProcess::finished,
          |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      114 |             this, &CMakeProcess::handleProcessFinished);
          |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /usr/include/qt/QtCore/qsharedpointer_impl.h:65,
                     from /usr/include/qt/QtCore/qsharedpointer.h:48,
                     from /usr/include/qt/QtGui/qpixmap.h:48,
                     from /usr/include/qt/QtGui/qicon.h:46,
                     from /usr/include/qt/QtGui/QIcon:1,
                     from /usr/src/qtcreator/src/plugins/texteditor/codeassist/assistproposalitem.h:32,
                     from /usr/src/qtcreator/src/plugins/texteditor/codeassist/keywordscompletionassist.h:29,
                     from cmaketool.h:30,
                     from builddirparameters.h:29,
                     from cmakeprocess.h:28,
                     from cmakeprocess.cpp:26:
    /usr/include/qt/QtCore/qobject.h:322:13: note: candidate: 'template<class Func1, class Func2> static typename std::enable_if<(QtPrivate::FunctionPointer<Func2>::ArgumentCount == -1), QMetaObject::Connection>::type QObject::connect(const typename QtPrivate::FunctionPointer<Func>::Object*, Func1, const QObject*, Func2, Qt::ConnectionType)'
      322 |             connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal, const QObject *context, Func2 slot,
          |             ^~~~~~~
    /usr/include/qt/QtCore/qobject.h:322:13: note:   template argument deduction/substitution failed:
    cmakeprocess.cpp:113:12: note:   couldn't deduce template parameter 'Func1'
      113 |     connect(process.get(), &QtcProcess::finished,
          |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      114 |             this, &CMakeProcess::handleProcessFinished);
          |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /usr/include/qt/QtCore/qsharedpointer_impl.h:65,
                     from /usr/include/qt/QtCore/qsharedpointer.h:48,
                     from /usr/include/qt/QtGui/qpixmap.h:48,
                     from /usr/include/qt/QtGui/qicon.h:46,
                     from /usr/include/qt/QtGui/QIcon:1,
                     from /usr/src/qtcreator/src/plugins/texteditor/codeassist/assistproposalitem.h:32,
                     from /usr/src/qtcreator/src/plugins/texteditor/codeassist/keywordscompletionassist.h:29,
                     from cmaketool.h:30,
                     from builddirparameters.h:29,
                     from cmakeprocess.h:28,
                     from cmakeprocess.cpp:26:
    /usr/include/qt/QtCore/qobject.h:222:36: note: candidate: 'static QMetaObject::Connection QObject::connect(const QObject*, const char*, const QObject*, const char*, Qt::ConnectionType)'
      222 |     static QMetaObject::Connection connect(const QObject *sender, const char *signal,
          |                                    ^~~~~~~
    /usr/include/qt/QtCore/qobject.h:222:79: note:   no known conversion for argument 2 from '<unresolved overloaded function type>' to 'const char*'
      222 |     static QMetaObject::Connection connect(const QObject *sender, const char *signal,
          |                                                                   ~~~~~~~~~~~~^~~~~~
    /usr/include/qt/QtCore/qobject.h:225:36: note: candidate: 'static QMetaObject::Connection QObject::connect(const QObject*, const QMetaMethod&, const QObject*, const QMetaMethod&, Qt::ConnectionType)'
      225 |     static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal,
          |                                    ^~~~~~~
    /usr/include/qt/QtCore/qobject.h:225:86: note:   no known conversion for argument 2 from '<unresolved overloaded function type>' to 'const QMetaMethod&'
      225 |     static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal,
          |                                                                   ~~~~~~~~~~~~~~~~~~~^~~~~~
    /usr/include/qt/QtCore/qobject.h:481:32: note: candidate: 'QMetaObject::Connection QObject::connect(const QObject*, const char*, const char*, Qt::ConnectionType) const'
      481 | inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal,
          |                                ^~~~~~~
    /usr/include/qt/QtCore/qobject.h:481:85: note:   no known conversion for argument 2 from '<unresolved overloaded function type>' to 'const char*'
      481 | inline QMetaObject::Connection QObject::connect(const QObject *asender, const char *asignal,
          |                                                                         ~~~~~~~~~~~~^~~~~~~
    cmakeprocess.cpp:116:103: error: 'const class Utils::FilePath' has no member named 'path'
      116 |     CommandLine commandLine(cmake->cmakeExecutable(), QStringList({"-S", srcDir, "-B", buildDirectory.path()}) + arguments);
          |                                                                                                       ^~~~
    cmakeprocess.cpp:116:110: error: no matching function for call to 'QStringList::QStringList(<brace-enclosed initializer list>)'
      116 |     CommandLine commandLine(cmake->cmakeExecutable(), QStringList({"-S", srcDir, "-B", buildDirectory.path()}) + arguments);
          |                                                                                                              ^
    In file included from /usr/include/qt/QtCore/qlist.h:1196,
                     from /usr/include/qt/QtCore/qstringlist.h:41,
                     from /usr/include/qt/QtCore/QStringList:1,
                     from cmakeconfigitem.h:33,
                     from builddirparameters.h:28,
                     from cmakeprocess.h:28,
                     from cmakeprocess.cpp:26:
    /usr/include/qt/QtCore/qstringlist.h:121:12: note: candidate: 'template<class InputIterator, typename std::enable_if<std::is_convertible<typename std::iterator_traits< <template-parameter-1-1> >::iterator_category, std::input_iterator_tag>::value, bool>::type <anonymous> > QStringList::QStringList(InputIterator, InputIterator)'
      121 |     inline QStringList(InputIterator first, InputIterator last)
          |            ^~~~~~~~~~~
    /usr/include/qt/QtCore/qstringlist.h:121:12: note:   template argument deduction/substitution failed:
    cmakeprocess.cpp:116:110: note:   candidate expects 2 arguments, 1 provided
      116 |     CommandLine commandLine(cmake->cmakeExecutable(), QStringList({"-S", srcDir, "-B", buildDirectory.path()}) + arguments);
          |                                                                                                              ^
    In file included from /usr/include/qt/QtCore/qlist.h:1196,
                     from /usr/include/qt/QtCore/qstringlist.h:41,
                     from /usr/include/qt/QtCore/QStringList:1,
                     from cmakeconfigitem.h:33,
                     from builddirparameters.h:28,
                     from cmakeprocess.h:28,
                     from cmakeprocess.cpp:26:
    /usr/include/qt/QtCore/qstringlist.h:119:12: note: candidate: 'QStringList::QStringList(std::initializer_list<QString>)'
      119 |     inline QStringList(std::initializer_list<QString> args) : QList<QString>(args) { }
          |            ^~~~~~~~~~~
    /usr/include/qt/QtCore/qstringlist.h:119:55: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::initializer_list<QString>'
      119 |     inline QStringList(std::initializer_list<QString> args) : QList<QString>(args) { }
          |                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
    /usr/include/qt/QtCore/qstringlist.h:118:12: note: candidate: 'QStringList::QStringList(QList<QString>&&)'
      118 |     inline QStringList(QList<QString> &&l) noexcept : QList<QString>(std::move(l)) { }
          |            ^~~~~~~~~~~
    /usr/include/qt/QtCore/qstringlist.h:118:41: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'QList<QString>&&'
      118 |     inline QStringList(QList<QString> &&l) noexcept : QList<QString>(std::move(l)) { }
          |                        ~~~~~~~~~~~~~~~~~^
    /usr/include/qt/QtCore/qstringlist.h:117:12: note: candidate: 'QStringList::QStringList(const QList<QString>&)'
      117 |     inline QStringList(const QList<QString> &l) : QList<QString>(l) { }
          |            ^~~~~~~~~~~
    /usr/include/qt/QtCore/qstringlist.h:117:46: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const QList<QString>&'
      117 |     inline QStringList(const QList<QString> &l) : QList<QString>(l) { }
          |                        ~~~~~~~~~~~~~~~~~~~~~~^
    /usr/include/qt/QtCore/qstringlist.h:116:21: note: candidate: 'QStringList::QStringList(const QString&)'
      116 |     inline explicit QStringList(const QString &i) { append(i); }
          |                     ^~~~~~~~~~~
    /usr/include/qt/QtCore/qstringlist.h:116:48: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const QString&'
      116 |     inline explicit QStringList(const QString &i) { append(i); }
          |                                 ~~~~~~~~~~~~~~~^
    /usr/include/qt/QtCore/qstringlist.h:115:12: note: candidate: 'QStringList::QStringList()'
      115 |     inline QStringList() noexcept { }
          |            ^~~~~~~~~~~
    /usr/include/qt/QtCore/qstringlist.h:115:12: note:   candidate expects 0 arguments, 1 provided
    /usr/include/qt/QtCore/qstringlist.h:111:7: note: candidate: 'QStringList::QStringList(const QStringList&)'
      111 | class QStringList : public QList<QString>
          |       ^~~~~~~~~~~
    /usr/include/qt/QtCore/qstringlist.h:111:7: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const QStringList&'
    /usr/include/qt/QtCore/qstringlist.h:111:7: note: candidate: 'QStringList::QStringList(QStringList&&)'
    /usr/include/qt/QtCore/qstringlist.h:111:7: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'QStringList&&'
    cmakeprocess.cpp:120:18: error: 'startNewBuildSystemOutput' is not a member of 'ProjectExplorer::BuildSystem'
      120 |     BuildSystem::startNewBuildSystemOutput(
          |                  ^~~~~~~~~~~~~~~~~~~~~~~~~
    cmakeprocess.cpp: In lambda function:
    cmakeprocess.cpp:171:22: error: 'appendBuildSystemOutput' is not a member of 'ProjectExplorer::BuildSystem'
      171 |         BuildSystem::appendBuildSystemOutput(s);
          |                      ^~~~~~~~~~~~~~~~~~~~~~~
    cmakeprocess.cpp: In lambda function:
    cmakeprocess.cpp:182:22: error: 'appendBuildSystemOutput' is not a member of 'ProjectExplorer::BuildSystem'
      182 |         BuildSystem::appendBuildSystemOutput(s);
          |                      ^~~~~~~~~~~~~~~~~~~~~~~
    cmakeprocess.cpp: In member function 'void CMakeProjectManager::Internal::CMakeProcess::handleProcessFinished()':
    cmakeprocess.cpp:209:22: error: 'appendBuildSystemOutput' is not a member of 'ProjectExplorer::BuildSystem'
      209 |         BuildSystem::appendBuildSystemOutput(msg);
          |                      ^~~~~~~~~~~~~~~~~~~~~~~
    cmakeprocess.cpp:221:18: error: 'appendBuildSystemOutput' is not a member of 'ProjectExplorer::BuildSystem'
      221 |     BuildSystem::appendBuildSystemOutput(elapsedTime);
          |                  ^~~~~~~~~~~~~~~~~~~~~~~
    make: *** [Makefile:2398: .obj/release-shared/cmakeprocess.o] Error 1
    
    opened by sr-tream 4
  • Cannot build because it cannot find app/appversion.h

    Cannot build because it cannot find app/appversion.h

    I tried to build according to your instructions. One difference is I have llvm50 and do not have llvm39 on my box...thought it may cause me problems perhaps it did? Here is what I did

    2151 qmake IDE_PACKAGE_MODE=1 PREFIX=/opt/qtcreator-git LLVM_INSTALL_DIR=/usr/lib/llvm-5.0 CONFIG+=qbs_enable_project_file_updates /tmp/qt-creator/qt-creator/qtcreator.pro 2152 ls 2153 make -j13 2154 ls 2155 sudo make install 2156 cd /tmp/qt-creator 2157 ls 2158 git clone [email protected]:h4tr3d/cmakeprojectmanager2.git 2159 ls 2160 makedir cmakeprojectmanager2-build 2161 mkdir cmakeprojectmanager2-build 2162 cd cmakeprojectmanager2-build/ 2163 ls 2164 cd .. 2165 sl 2166 ls 2167 mv cmakeprojectmanager2 cmakeprojectmanager2-git 2168 ls 2169 cd cd cmakeprojectmanager2-build 2170 cd cmakeprojectmanager2-build/ 2171 qmake QTC_PREFIX=/opt/qtcreator-git 2172 qmake QTC_PREFIX=/opt/qtcreator-git
    2173 export QTC_SOURCE=/tmp/qt-creator/qt-creator 2174 export QTC_BUILD=/opt/qtcreator-git 2175 qmake QTC_PREFIX=/opt/qtcrator-git
    2176 qmake QTC_PREFIX=/opt/qtcreator-git LIBS+=-L${QTC_BUILD}/lib/qtcreator LIBS+=-L${QTC_BUILD}/lib/qtcreator/plugins ../cmakeprojectmanager2-git/cmakeprojectmanager.pro 2177 make -j13 (of course including my screwups)...I got a compile that looked pretty good initially until.... ../cmakeprojectmanager2-git/cmakekitinformation.cpp:32:10: fatal error: app/app_version.h: No such file or directory #include <app/app_version.h> ^~~~~~~~~~~~~~~~~~~ compilation terminated. make: *** [Makefile:3465: .obj/release-shared/cmakekitinformation.o] Error 1 make: *** Waiting for unfinished jobs....

    Which made me think that app/app_version.h was likely no longer in the current source for qtcreator....are you still using this tool, or am I going on a bug chase of my own?

    Thanks! Chris

    opened by linux4hach 4
  • Undefined reference compilation errors

    Undefined reference compilation errors

    I am using this version of Qt Crator: https://aur.archlinux.org/packages/qtcreator-git/ Apart from my current version I tried almost every version I could find but allways get these errors:

    alt text

    opened by RicBent 4
  • Default run configuration problem

    Default run configuration problem

    When creating a new project with this project manager and running it after building, the 'Application Output' reports "Executable cmakeTest does not exist.".

    When going to the "Projects" tab in QtC and then clicking on the "Run" settings, the green build and run/debug buttons go grey and it displays the warning "The project no longer builds the target associated with this run configuration." under the the run config selector.

    After selecting any other build configuration the warning disappears. The working dir of the run config is set to a temp dir ("/tmp/QtCreator-sxApBH/qtc-cmake-XXqgzBa4" for example) which never exists. Even when setting that path to the build dir it still fails to find the executable.

    The only method I found to get arrount the error is adding a new run config (Add -> Custom Executable), setting the executable to the project name and the working dir to "%{buildDir}".

    opened by RicBent 2
  • Not an issue, a question, in fact.

    Not an issue, a question, in fact.

    Can you please mention which distro and desktop environment you use? I saw screenshots on your website and I got amazed how beautiful looking it is! Link to your post is: https://htrd.su/blog/2020/01/16/firefox-72-disable-tab-scrolling/

    opened by shujaatak 1
  • Adopt new upstream functionality for build type selection

    Adopt new upstream functionality for build type selection

    Upstream plugin now allows to select building type on build configuration creating. This functionality should be adopted to the my code:

    • Preselect this build type at the grop box
    • Review code and remove unneeded -DCMAKE_BUILD_TYPE parameters addition
    • Or remove build type combo box at all
    enhancement 
    opened by h4tr3d 1
  • How to build qt project in github action on windows os?

    How to build qt project in github action on windows os?

    My project

    main.yml file.

    Creating a shared library

    I just followed the above document to create qt shared library.

    I compiled this project with mac in github actions. the compilation done in mac and linux with github action.

    If I comes to windows it occured an errors.

    collect2.exe: error: ld returned 1 exit status
    

    My github action

    Error on windows

    How can I solve this error ?

    opened by Pradeepjanapriya 0
  • Project tree files grayed after add/rename/remove

    Project tree files grayed after add/rename/remove

    Project tree shows all files as disabled (in CMakeProjectManager context: files that does not handled by CMake but present in source tree) after any tree interaction via context menu:

    • file adding
    • file renaming
    • file deleting

    Root cause: Tree scan results keeps cached but CMake scan result drops after tree generating. So, tree update/rebuilding does not see any cmake-handled files and assume, that all files should shown as disabled.

    opened by h4tr3d 0
  • How to build qt project in github action on windows os?

    How to build qt project in github action on windows os?

    My project

    main.yml file.

    Creating a shared library

    I just followed the above document to create qt shared library.

    I compiled this project with mac in github actions. the compilation done in mac and linux with github action.

    If I comes to windows it occured an errors.

    collect2.exe: error: ld returned 1 exit status
    

    My github action

    Error on windows

    How can I solve this error ?

    opened by Pradeepjanapriya 0
  • cannot compile this on Windows

    cannot compile this on Windows

    I tried to compile it on windows, so that the windows qt could have a file view when using cmake. But it fails to compile for reporting C1083 qtsupport/qtprojectmorter.h etc. I guess it is because cmakeprojectmanager_dependencies did not add this plugin at first. But it is a wrong shoot.

    Any ideas about how to fix it? I'm hoping to use this remarkable QTC plugin on windows.

    opened by justwillim 7
  • Use restricted MIME types info for tree building

    Use restricted MIME types info for tree building

    Currently every file scanned by Tree Builder checks with MIME database API to detect it type. It requires a lot of time for processing on big projects (~400k files in my case).

    Suggested behavior:

    • Ask internal all mime types on start
    • Walk by Qt Creator supported mime types
    • Compose Hash Map with extension -> file type alias.

    File type detection algo:

    • If it supported by "Binary Editor" or "Plain Text Editor" -> UnknownType
    • If it supported by "Form Editor" -> FormType
    • If it supported by "Resource Editor" -> ResourceType
    • It it supported by "QMLJS Editor" -> QMLType
    • If it supported by "Scxml Editor" -> SomeDiagramType // not correct here
    • All other supported by QtC -> SourceType

    Known exclusions:

    • .S, .asm - supported by Plain Text Editor, but should be mapped to SourceType

    File ext and File Type mapping can be done only once per QtC running: QtC does not allow turn on/off plugins dynamically

    Helpful info: Core constants:

    coreplugin/coreconstants.h:
    const char K_DEFAULT_TEXT_EDITOR_ID[] = "Core.PlainTextEditor";
    const char K_DEFAULT_BINARY_EDITOR_ID[] = "Core.BinaryEditor";
    

    Self defined (to avoid dependency on plugin):

    const char C_QMLJSEDITOR_ID[] = "QMLProjectManager.QMLJSEditor";
    const char RESOURCEEDITOR_ID[] = "Qt4.ResourceEditor";
    const char K_DESIGNER_XML_EDITOR_ID[] = "FormEditor.DesignerXmlEditor";
    
    enhancement 
    opened by h4tr3d 0
Owner
Alexander Drozdov
Alexander Drozdov
CMake wrapper for Xrepo C and C++ package manager

xrepo-cmake CMake wrapper for Xrepo C and C++ package manager. Supporting the project Support this project by becoming a sponsor. Your logo will show

xmake-io 19 May 13, 2022
CMake checks cache helper modules – for fast CI CMake builds!

cmake-checks-cache Cross platform CMake projects do platform introspection by the means of "Check" macros. Have a look at CMake's How To Write Platfor

Cristian Adam 59 Jul 7, 2022
CMake scripts for painless usage of SuiteSparse+METIS from Visual Studio and the rest of Windows/Linux/OSX IDEs supported by CMake

CMake scripts for painless usage of Tim Davis' SuiteSparse (CHOLMOD,UMFPACK,AMD,LDL,SPQR,...) and METIS from Visual Studio and the rest of Windows/Lin

Jose Luis Blanco-Claraco 385 Aug 2, 2022
cmake-font-lock - Advanced, type aware, highlight support for CMake

cmake-font-lock - Advanced, type aware, highlight support for CMake

Anders Lindgren 37 Dec 30, 2021
cmake-avr - a cmake toolchain for AVR projects

cmake-avr - a cmake toolchain for AVR projects Testing the example provided The toolchain was created and tested within the following environment: Lin

Matthias Kleemann 156 Jun 20, 2022
Make CMake less painful when trying to write Modern Flexible CMake

Izzy's eXtension Modules IXM is a CMake library for writing Modern flexible CMake. This means: Reducing the amount of CMake written Selecting reasonab

IXM 105 Jul 18, 2022
CMake module to enable code coverage easily and generate coverage reports with CMake targets.

CMake-codecov CMake module to enable code coverage easily and generate coverage reports with CMake targets. Include into your project To use Findcodec

HPC 77 Jul 3, 2022
unmaintained - CMake module to activate certain C++ standard, feature checks and appropriate automated workarounds - basically an improved version of cmake-compile-features

Compatibility This library provides an advanced target_compile_features() and write_compiler_detection_header(). The problem with those is that they a

Jonathan Müller 72 Apr 14, 2022
[CMake] [BSD-2] CMake module to find ICU

FindICU.cmake A CMake module to find International Components for Unicode (ICU) Library Note that CMake, since its version 3.7.0, includes a FindICU m

julp 29 Apr 26, 2022
CMake plugin composer.

A CMake plugin composer. Licensed under BSD-3. See http://autocmake.org. Documentation Latest stable code (stable-0.x branch) Bleeding edge code (mast

null 35 Feb 22, 2022
CMake project for BL602 RISC-V processor

bl602_cmake_base CMake project for BL602 RISC-V processor How to build NOTE : This project uses a pre-compiled version of the Buffalo SDK (bl_iot_sdk)

null 9 Jan 6, 2022
Project to enable using CMake from a Maven build.

CMake-Maven-Project Introduction A Maven project for the CMake build system. It can be used by including it as a plugin within your Maven project's po

null 58 Jul 13, 2022
A program that automatically generates CMake and Meson configuration files for your Vala project

Autovala is a program and a library designed to help in the creation of projects with Vala and CMake. It also has support for Genie.

Sergio Costas 107 Apr 7, 2021
Installation example for a C++ project (Windows) with Cmake.

CMakeInstallExample Installation example for a C++ project (Windows) with Cmake. Contents This project demonstrates how to use cmake with cpack to gen

Paul T 28 Jul 13, 2022
Example project which demonstrates various CMake features.

CMake example Example project which demonstrates various CMake features. CDash testing dashboard (probably empty but you can submit your test result t

Radovan Bast 141 Feb 28, 2022
Template for reliable, cross-platform C++ project setup using cmake.

The C++ CMake Project Template cmake-init is a sophisticated copy & paste template for modern C and C++ projects. The main goals include support of al

CG Internals 789 Aug 3, 2022
CMake module for downloading an external project's source at configure time

DownloadProject Platform Build status Linux Mac OSX Windows (VS2015) This repository contains a generalized implementation for downloading an external

Crascit Pty Ltd 426 Aug 9, 2022
This is a simple CMake tutorial project which contains some different scenarios

learning-cmake This is a simple CMake tutorial project which contains some different scenarios. hello-world: Demo a simplest CMake project. hello-worl

Bob Liu 2.7k Jul 23, 2022
C package manager-ish

clib(1) Package manager for the C programming language. Installation Expects libcurl to be installed and linkable. With homebrew: $ brew install clib

clibs 4.4k Aug 6, 2022