1/*
2 * Copyright (C) 2020-2022 Roy Qu (royqh1979@gmail.com)
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <https://www.gnu.org/licenses/>.
16 */
17#ifndef PROJECTOPTIONS_H
18#define PROJECTOPTIONS_H
19
20#include <QMap>
21#include <QWidget>
22
23enum class ProjectModelType {
24 FileSystem,
25 Custom
26};
27
28enum class ProjectType {
29 GUI=0,
30 Console=1,
31 StaticLib=2,
32 DynamicLib=3
33};
34
35struct ProjectVersionInfo{
36 explicit ProjectVersionInfo();
37 int major;
38 int minor;
39 int release;
40 int build;
41 int languageID;
42 int charsetID;
43 QString companyName;
44 QString fileVersion;
45 QString fileDescription;
46 QString internalName;
47 QString legalCopyright;
48 QString legalTrademarks;
49 QString originalFilename;
50 QString productName;
51 QString productVersion;
52 bool autoIncBuildNr;
53 bool syncProduct;
54};
55
56struct ProjectOptions{
57 explicit ProjectOptions();
58 ProjectType type;
59 int version;
60 QStringList objFiles;
61 QString compilerCmd;
62 QString cppCompilerCmd;
63 QString linkerCmd;
64 QStringList binDirs;
65 QStringList includeDirs;
66 QStringList libDirs;
67 QString privateResource;
68 QStringList resourceIncludes;
69 QStringList makeIncludes;
70 bool isCpp;
71 QString icon;
72 QString exeOutput;
73 QString objectOutput;
74 QString logOutput;
75 bool logOutputEnabled;
76 bool useCustomMakefile;
77 QString customMakefile;
78 bool usePrecompiledHeader;
79 QString precompiledHeader;
80 bool overrideOutput;
81 QString overridenOutput;
82 QString hostApplication;
83 bool includeVersionInfo;
84 bool supportXPThemes;
85 int compilerSet;
86 int compilerSetType;
87 QMap<QString,QString> compilerOptions;
88 ProjectVersionInfo versionInfo;
89 QString cmdLineArgs;
90 bool staticLink;
91 bool addCharset;
92 QByteArray execEncoding;
93 QString encoding;
94 ProjectModelType modelType;
95};
96#endif // PROJECTOPTIONS_H
97