aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/autotoolsprojectmanager/makestep.cpp
blob: c6d9d251f23185a3ea3aa5b6c89282f74ab78dd8 (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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// Copyright (C) 2016 Openismus GmbH.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0

#include "makestep.h"
#include "autotoolsprojectconstants.h"

#include <projectexplorer/buildsteplist.h>
#include <projectexplorer/makestep.h>
#include <projectexplorer/projectexplorerconstants.h>

using namespace ProjectExplorer;

namespace AutotoolsProjectManager::Internal {

// MakeStep

class AutotoolsMakeStep final : public MakeStep
{
public:
    AutotoolsMakeStep(BuildStepList *bsl, Utils::Id id)
        : MakeStep(bsl, id)
    {
        setAvailableBuildTargets({"all", "clean"});
        if (bsl->id() == ProjectExplorer::Constants::BUILDSTEPS_CLEAN) {
            setSelectedBuildTarget("clean");
            setIgnoreReturnValue(true);
        } else {
            setSelectedBuildTarget("all");
        }
    }
};

// MakeStepFactory

class MakeStepFactory final : public BuildStepFactory
{
public:
    MakeStepFactory()
    {
        registerStep<AutotoolsMakeStep>(Constants::MAKE_STEP_ID);
        setDisplayName(ProjectExplorer::MakeStep::defaultDisplayName());
        setSupportedProjectType(Constants::AUTOTOOLS_PROJECT_ID);
    }
};

void setupAutotoolsMakeStep()
{
    static MakeStepFactory theAutotoolsMakestepFactory;
}

} // AutotoolsProjectManager::Internal