/*
* 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 .
*/
#ifndef PROJECTOPTIONS_H
#define PROJECTOPTIONS_H
#include
#include
#include "compiler/compilerinfo.h"
enum class ProjectModelType {
FileSystem,
Custom
};
enum class ProjectClassBrowserType {
CurrentFile,
WholeProject
};
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;
QString privateResource;
QStringList resourceIncludes;
QStringList makeIncludes;
bool isCpp;
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;
CompilerSetType compilerSetType;
QMap compilerOptions;
ProjectVersionInfo versionInfo;
QString cmdLineArgs;
bool staticLink;
bool addCharset;
QByteArray execEncoding;
QString encoding;
ProjectModelType modelType;
ProjectClassBrowserType classBrowserType;
};
#endif // PROJECTOPTIONS_H