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 | |
23 | enum class ProjectModelType { |
24 | FileSystem, |
25 | Custom |
26 | }; |
27 | |
28 | enum class ProjectType { |
29 | GUI=0, |
30 | Console=1, |
31 | StaticLib=2, |
32 | DynamicLib=3 |
33 | }; |
34 | |
35 | struct 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 | |
56 | struct 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 ; |
79 | QString ; |
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 | |