/* * 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 enum class ProjectModelType { FileSystem, Custom }; 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 includes; QStringList libs; 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; int compilerSetType; QMap compilerOptions; ProjectVersionInfo versionInfo; QString cmdLineArgs; bool staticLink; bool addCharset; QString encoding; ProjectModelType modelType; }; #endif // PROJECTOPTIONS_H