1 /**************************************************************************** 2 ** 3 ** Copyright (C) 2016 The Qt Company Ltd. 4 ** Contact: https://www.qt.io/licensing/ 5 ** 6 ** This file is part of Qt Creator. 7 ** 8 ** Commercial License Usage 9 ** Licensees holding valid commercial Qt licenses may use this file in 10 ** accordance with the commercial license agreement provided with the 11 ** Software or, alternatively, in accordance with the terms contained in 12 ** a written agreement between you and The Qt Company. For licensing terms 13 ** and conditions see https://www.qt.io/terms-conditions. For further 14 ** information use the contact form at https://www.qt.io/contact-us. 15 ** 16 ** GNU General Public License Usage 17 ** Alternatively, this file may be used under the terms of the GNU 18 ** General Public License version 3 as published by the Free Software 19 ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT 20 ** included in the packaging of this file. Please review the following 21 ** information to ensure the GNU General Public License requirements will 22 ** be met: https://www.gnu.org/licenses/gpl-3.0.html. 23 ** 24 ****************************************************************************/ 25 26 #include "genericbuildconfiguration.h" 27 28 #include "genericmakestep.h" 29 #include "genericproject.h" 30 #include "genericprojectconstants.h" 31 32 #include <projectexplorer/buildinfo.h> 33 #include <projectexplorer/buildsteplist.h> 34 #include <projectexplorer/kitinformation.h> 35 #include <projectexplorer/projectexplorerconstants.h> 36 #include <projectexplorer/target.h> 37 38 #include <qtsupport/qtkitinformation.h> 39 40 #include <utils/aspects.h> 41 #include <utils/pathchooser.h> 42 #include <utils/qtcassert.h> 43 44 45 using namespace ProjectExplorer; 46 using namespace Utils; 47 48 namespace GenericProjectManager { 49 namespace Internal { 50 GenericBuildConfiguration(Target * parent,Utils::Id id)51GenericBuildConfiguration::GenericBuildConfiguration(Target *parent, Utils::Id id) 52 : BuildConfiguration(parent, id) 53 { 54 setConfigWidgetDisplayName(tr("Generic Manager")); 55 setBuildDirectoryHistoryCompleter("Generic.BuildDir.History"); 56 57 setInitializer([this](const BuildInfo &) { 58 buildSteps()->appendStep(Constants::GENERIC_MS_ID); 59 cleanSteps()->appendStep(Constants::GENERIC_MS_ID); 60 updateCacheAndEmitEnvironmentChanged(); 61 }); 62 63 updateCacheAndEmitEnvironmentChanged(); 64 } 65 66 67 // GenericBuildConfigurationFactory 68 GenericBuildConfigurationFactory()69GenericBuildConfigurationFactory::GenericBuildConfigurationFactory() 70 { 71 registerBuildConfiguration<GenericBuildConfiguration> 72 ("GenericProjectManager.GenericBuildConfiguration"); 73 74 setSupportedProjectType(Constants::GENERICPROJECT_ID); 75 setSupportedProjectMimeTypeName(Constants::GENERICMIMETYPE); 76 77 setBuildGenerator([](const Kit *, const FilePath &projectPath, bool forSetup) { 78 BuildInfo info; 79 info.typeName = BuildConfiguration::tr("Build"); 80 info.buildDirectory = forSetup ? Project::projectDirectory(projectPath) : projectPath; 81 82 if (forSetup) { 83 //: The name of the build configuration created by default for a generic project. 84 info.displayName = BuildConfiguration::tr("Default"); 85 } 86 87 return QList<BuildInfo>{info}; 88 }); 89 } 90 addToEnvironment(Utils::Environment & env) const91void GenericBuildConfiguration::addToEnvironment(Utils::Environment &env) const 92 { 93 QtSupport::QtKitAspect::addHostBinariesToPath(kit(), env); 94 } 95 96 } // namespace Internal 97 } // namespace GenericProjectManager 98