summaryrefslogtreecommitdiff
path: root/src/plugins/mesonprojectmanager/mesonprojectimporter.h
blob: 5c6c4d8b2a77d41d812f1c869e7bcaddc2af4dc4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Copyright (C) 2020 Alexis Jeandet.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0

#pragma once

#include <projectexplorer/buildinfo.h>
#include <projectexplorer/kit.h>

#include <qtsupport/qtprojectimporter.h>

namespace MesonProjectManager::Internal {

class MesonProjectImporter final : public QtSupport::QtProjectImporter
{
public:
    MesonProjectImporter(const Utils::FilePath &path);
    Utils::FilePaths importCandidates() final;

private:
    // importPath is an existing directory at this point!
    QList<void *> examineDirectory(const Utils::FilePath &importPath, QString *warningMessage) const final;
    // will get one of the results from examineDirectory
    bool matchKit(void *directoryData, const ProjectExplorer::Kit *k) const final;
    // will get one of the results from examineDirectory
    ProjectExplorer::Kit *createKit(void *directoryData) const final;
    // will get one of the results from examineDirectory
    const QList<ProjectExplorer::BuildInfo> buildInfoList(void *directoryData) const final;

    void deleteDirectoryData(void *directoryData) const final;
};

} // MesonProjectManager::Internal