diff options
author | Alexis Jeandet <alexis.jeandet@member.fsf.org> | 2020-05-01 18:20:56 +0200 |
---|---|---|
committer | Alexis Jeandet <alexis.jeandet@member.fsf.org> | 2020-06-08 09:55:17 +0000 |
commit | 77d7bb5014a79db539f82d95392d07c6bda9d6a8 (patch) | |
tree | 8249ab051adc2962203355c8ec59abde420106d8 /src/plugins/mesonprojectmanager/CMakeLists.txt | |
parent | a8f38f8aab5303bb6e0c6575508661b51b7aebc3 (diff) |
Meson build plugin initial support
Most basic project management is implemented:
- Project config/build
- Build options accessible to user
- Lists most build targets
- Meson and Ninja added to kit setup
- Basic project file tree with files known by Meson
- Some basic meson and ninja process output parsing
- Some project templates
Missing features, that will come later:
- Configurable project tree layout
- Locators for Meson
- Build importer
- Access to Machine files for better user fine tuning
- ...
Fixes: QTCREATORBUG-18117
Change-Id: I2811e71562c113fb0fc6b6177bcf0698fa71ef63
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Diffstat (limited to 'src/plugins/mesonprojectmanager/CMakeLists.txt')
-rw-r--r-- | src/plugins/mesonprojectmanager/CMakeLists.txt | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/src/plugins/mesonprojectmanager/CMakeLists.txt b/src/plugins/mesonprojectmanager/CMakeLists.txt new file mode 100644 index 0000000000..972fab6473 --- /dev/null +++ b/src/plugins/mesonprojectmanager/CMakeLists.txt @@ -0,0 +1,162 @@ +add_qtc_plugin(MesonProjectManager + DEPENDS QmlJS + PLUGIN_DEPENDS Core CppTools ProjectExplorer TextEditor QtSupport + PLUGIN_RECOMMENDS Designer + SOURCES + mesonprojectplugin.cpp + mesonprojectplugin.h + versionhelper.h + mesonactionsmanager/mesonactionsmanager.h + mesonactionsmanager/mesonactionsmanager.cpp + settings/tools/toolsmodel.cpp + settings/tools/toolssettingswidget.h + settings/tools/toolssettingswidget.ui + settings/tools/toolssettingswidget.cpp + settings/tools/toolssettingspage.cpp + settings/tools/toolssettingspage.h + settings/tools/toolitemsettings.ui + settings/tools/toolitemsettings.cpp + settings/tools/toolitemsettings.h + settings/tools/tooltreeitem.cpp + settings/tools/tooltreeitem.h + settings/tools/toolsmodel.h + settings/tools/kitaspect/ninjatoolkitaspect.cpp + settings/tools/kitaspect/ninjatoolkitaspect.h + settings/tools/kitaspect/toolkitaspectwidget.h + settings/tools/kitaspect/toolkitaspectwidget.cpp + settings/tools/kitaspect/mesontoolkitaspect.cpp + settings/tools/kitaspect/mesontoolkitaspect.h + settings/tools/toolssettingsaccessor.h + settings/tools/toolssettingsaccessor.cpp + settings/general/generalsettingswidget.ui + settings/general/generalsettingswidget.cpp + settings/general/generalsettingswidget.h + settings/general/generalsettingspage.h + settings/general/generalsettingspage.cpp + settings/general/settings.h + settings/general/settings.cpp + exewrappers/mesonwrapper.cpp + exewrappers/mesonwrapper.h + exewrappers/ninjawrapper.h + exewrappers/toolwrapper.h + exewrappers/toolwrapper.cpp + exewrappers/mesontools.h + exewrappers/mesontools.cpp + mesoninfoparser/mesoninfoparser.h + mesoninfoparser/buildoptions.h + mesoninfoparser/target.h + mesoninfoparser/mesoninfo.h + mesoninfoparser/parsers/common.h + mesoninfoparser/parsers/buildoptionsparser.h + mesoninfoparser/parsers/buildsystemfilesparser.h + mesoninfoparser/parsers/infoparser.h + mesoninfoparser/parsers/targetparser.h + kithelper/kitdata.h + kithelper/kithelper.h + project/mesonproject.h + project/mesonproject.cpp + project/mesonprojectimporter.h + project/mesonprojectimporter.cpp + project/mesonbuildsystem.h + project/mesonbuildsystem.cpp + project/mesonprojectparser.h + project/mesonprojectparser.cpp + project/mesonbuildconfiguration.h + project/mesonbuildconfiguration.cpp + project/ninjabuildstep.h + project/ninjabuildstep.cpp + project/buildoptions/mesonbuildstepconfigwidget.ui + project/buildoptions/mesonbuildstepconfigwidget.h + project/buildoptions/mesonbuildstepconfigwidget.cpp + project/buildoptions/mesonbuildsettingswidget.ui + project/buildoptions/mesonbuildsettingswidget.h + project/buildoptions/mesonbuildsettingswidget.cpp + project/buildoptions/optionsmodel/buildoptionsmodel.h + project/buildoptions/optionsmodel/buildoptionsmodel.cpp + project/buildoptions/optionsmodel/arrayoptionlineedit.cpp + project/buildoptions/optionsmodel/arrayoptionlineedit.h + project/mesonprocess.h + project/mesonprocess.cpp + project/outputparsers/mesonoutputparser.h + project/outputparsers/mesonoutputparser.cpp + project/outputparsers/ninjaparser.h + project/outputparsers/ninjaparser.cpp + project/mesonrunconfiguration.h + project/mesonrunconfiguration.cpp + project/projecttree/projecttree.h + project/projecttree/projecttree.cpp + project/projecttree/mesonprojectnodes.h + project/projecttree/mesonprojectnodes.cpp + machinefiles/machinefilemanager.h + machinefiles/machinefilemanager.cpp + machinefiles/nativefilegenerator.h + machinefiles/nativefilegenerator.cpp + resources.qrc +) + +if(WITH_TESTS) +add_qtc_test(tst_mesonwrapper + INCLUDES + BEFORE "." + DEPENDS + Qt5::Core Qt5::Test Core + Utils + DEFINES + MESON_SAMPLES_DIR="${CMAKE_CURRENT_SOURCE_DIR}/tests/resources" + MESON_SAMPLES_BUILD_DIR="${CMAKE_CURRENT_BINARY_DIR}" + SOURCES + tests/testmesonwrapper.cpp + exewrappers/mesonwrapper.cpp + exewrappers/mesonwrapper.h + exewrappers/ninjawrapper.h + exewrappers/toolwrapper.h + exewrappers/toolwrapper.cpp + exewrappers/mesontools.h +) + +add_qtc_test(tst_mesoninfoparser + INCLUDES + BEFORE "." + DEPENDS + Qt5::Core Qt5::Test Core + Utils + DEFINES + MESON_SAMPLES_DIR="${CMAKE_CURRENT_SOURCE_DIR}/tests/resources" + MESON_SAMPLES_BUILD_DIR="${CMAKE_CURRENT_BINARY_DIR}" + SOURCES + tests/testmesoninfoparser.cpp + exewrappers/mesonwrapper.cpp + exewrappers/mesonwrapper.h + exewrappers/ninjawrapper.h + exewrappers/toolwrapper.h + exewrappers/toolwrapper.cpp + exewrappers/mesontools.h + mesoninfoparser/mesoninfoparser.h +) + +add_qtc_test(tst_ninjaparser + INCLUDES + BEFORE "." + DEPENDS + Qt5::Core Qt5::Test Core + Utils ProjectExplorer + SOURCES + tests/testninjaparser.cpp + project/outputparsers/ninjaparser.cpp +) + +add_qtc_test(tst_mesonparser + INCLUDES + BEFORE "." + DEFINES + MESONPARSER_DISABLE_TASKS_FOR_TESTS + DEPENDS + Qt5::Core Qt5::Test Core + Utils ProjectExplorer + SOURCES + tests/testmesonparser.cpp + project/outputparsers/mesonoutputparser.cpp +) + + +endif(WITH_TESTS) |