Files
qt-creator/src/plugins/cmakeprojectmanager/cmakebuildtarget.h
Ralf Habacker 94663d0db7 cmake: Add support for custom startup programs for executable targets
CMake supports the use of custom startup programs that are provided
in the IDE to simplify execution.

If the build system provides launchers, these are provided as an
additional selection field of the run configuration including an
entry without launcher.

As of cmake version 3.29, the start programs are extracted from
the API of the cmake file. For older cmake versions, a launcher
is initialized from the cmake variable CMAKE_CROSSCOMPILING_EMULATOR,
if available.

Fixes: QTCREATORBUG-29880
Change-Id: I4345b56c9ca5befb5876a361e7da4675590399ca
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2024-06-20 13:40:21 +00:00

60 lines
1.5 KiB
C++

// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#pragma once
#include "cmake_global.h"
#include <projectexplorer/projectmacro.h>
#include <projectexplorer/projectnodes.h>
#include <projectexplorer/runconfigurationaspects.h>
#include <utils/fileutils.h>
#include <QStringList>
namespace CMakeProjectManager {
enum TargetType {
ExecutableType,
StaticLibraryType,
DynamicLibraryType,
ObjectLibraryType,
UtilityType
};
using Backtrace = QVector<ProjectExplorer::FolderNode::LocationInfo>;
using Backtraces = QVector<Backtrace>;
class CMAKE_EXPORT CMakeBuildTarget
{
public:
QString title;
Utils::FilePath executable; // TODO: rename to output?
QList<ProjectExplorer::Launcher> launchers;
TargetType targetType = UtilityType;
bool linksToQtGui = false;
bool qtcRunnable = true;
Utils::FilePath workingDirectory;
Utils::FilePath sourceDirectory;
Utils::FilePath makeCommand;
Utils::FilePaths libraryDirectories;
Utils::FilePaths sourceFiles;
Backtrace backtrace;
Backtraces dependencyDefinitions;
Backtraces sourceDefinitions;
Backtraces defineDefinitions;
Backtraces includeDefinitions;
Backtraces installDefinitions;
// code model
QList<Utils::FilePath> includeFiles;
QStringList compilerOptions;
ProjectExplorer::Macros macros;
QList<Utils::FilePath> files;
};
} // namespace CMakeProjectManager