RedPanda-CPP/RedPandaIDE/projectoptions.h

103 lines
2.5 KiB
C
Raw Normal View History

2021-12-26 23:18:28 +08:00
/*
* Copyright (C) 2020-2022 Roy Qu (royqh1979@gmail.com)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
2021-09-16 12:03:10 +08:00
#ifndef PROJECTOPTIONS_H
#define PROJECTOPTIONS_H
2022-05-12 15:28:08 +08:00
#include <QMap>
2021-09-16 12:03:10 +08:00
#include <QWidget>
2022-02-08 00:24:08 +08:00
enum class ProjectModelType {
FileSystem,
Custom
};
enum class ProjectClassBrowserType {
CurrentFile,
WholeProject
};
2021-09-16 12:03:10 +08:00
enum class ProjectType {
GUI=0,
Console=1,
StaticLib=2,
DynamicLib=3
};
struct ProjectVersionInfo{
explicit ProjectVersionInfo();
int major;
int minor;
int release;
int build;
int languageID;
int charsetID;
QString companyName;
QString fileVersion;
QString fileDescription;
QString internalName;
QString legalCopyright;
QString legalTrademarks;
QString originalFilename;
QString productName;
QString productVersion;
bool autoIncBuildNr;
bool syncProduct;
};
struct ProjectOptions{
explicit ProjectOptions();
ProjectType type;
int version;
QStringList objFiles;
QString compilerCmd;
QString cppCompilerCmd;
QString linkerCmd;
QStringList binDirs;
QStringList includeDirs;
QStringList libDirs;
2021-09-16 12:03:10 +08:00
QString privateResource;
QStringList resourceIncludes;
QStringList makeIncludes;
bool isCpp;
2021-09-16 12:03:10 +08:00
QString icon;
QString exeOutput;
QString objectOutput;
QString logOutput;
bool logOutputEnabled;
bool useCustomMakefile;
QString customMakefile;
bool usePrecompiledHeader;
QString precompiledHeader;
bool overrideOutput;
QString overridenOutput;
QString hostApplication;
bool includeVersionInfo;
bool supportXPThemes;
int compilerSet;
int compilerSetType;
2022-05-12 15:28:08 +08:00
QMap<QString,QString> compilerOptions;
2021-09-16 12:03:10 +08:00
ProjectVersionInfo versionInfo;
QString cmdLineArgs;
bool staticLink;
bool addCharset;
QByteArray execEncoding;
2021-09-16 12:03:10 +08:00
QString encoding;
2022-02-08 00:24:08 +08:00
ProjectModelType modelType;
ProjectClassBrowserType classBrowserType;
2021-09-16 12:03:10 +08:00
};
#endif // PROJECTOPTIONS_H