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-10-30 11:58:42 +08:00
|
|
|
#include "compiler/compilerinfo.h"
|
2021-09-16 12:03:10 +08:00
|
|
|
|
2022-02-08 00:24:08 +08:00
|
|
|
enum class ProjectModelType {
|
|
|
|
FileSystem,
|
|
|
|
Custom
|
|
|
|
};
|
|
|
|
|
2022-10-23 15:22:26 +08:00
|
|
|
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;
|
|
|
|
QString compilerCmd;
|
|
|
|
QString cppCompilerCmd;
|
|
|
|
QString linkerCmd;
|
2022-12-26 22:55:00 +08:00
|
|
|
QString resourceCmd;
|
2023-02-09 16:33:25 +08:00
|
|
|
QString assemblerArgs;
|
2022-06-16 21:34:31 +08:00
|
|
|
QStringList binDirs;
|
|
|
|
QStringList includeDirs;
|
|
|
|
QStringList libDirs;
|
2021-09-16 12:03:10 +08:00
|
|
|
QString privateResource;
|
|
|
|
QStringList resourceIncludes;
|
|
|
|
QStringList makeIncludes;
|
2022-02-01 16:17:28 +08:00
|
|
|
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;
|
2022-10-30 11:58:42 +08:00
|
|
|
CompilerSetType 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;
|
2022-06-22 17:08:35 +08:00
|
|
|
QByteArray execEncoding;
|
2023-01-24 10:21:19 +08:00
|
|
|
QByteArray encoding;
|
2022-02-08 00:24:08 +08:00
|
|
|
ProjectModelType modelType;
|
2022-10-23 15:22:26 +08:00
|
|
|
ProjectClassBrowserType classBrowserType;
|
2022-11-06 22:51:14 +08:00
|
|
|
bool allowParallelBuilding;
|
|
|
|
int parellelBuildingJobs;
|
2021-09-16 12:03:10 +08:00
|
|
|
};
|
|
|
|
#endif // PROJECTOPTIONS_H
|