OLD | NEW |
| (Empty) |
1 #region | |
2 | |
3 using System; | |
4 using System.ComponentModel; | |
5 using System.Drawing.Design; | |
6 using System.Runtime.InteropServices; | |
7 using System.Windows.Forms.Design; | |
8 | |
9 #endregion | |
10 | |
11 namespace Google.NaClVsx.ProjectSupport { | |
12 public enum TargetArchitecture { | |
13 x86_32, | |
14 x86_64, | |
15 arm, | |
16 } | |
17 | |
18 [ComVisible(true)] | |
19 [Guid("22F5ABBB-A1B5-4d21-85E5-02C86535E9ED")] | |
20 class GeneralProperties : AutoSettingsPage { | |
21 #region Tags enum | |
22 | |
23 public enum Tags { | |
24 TargetArch, | |
25 OutputDir, | |
26 IntermediateDir, | |
27 } | |
28 | |
29 #endregion | |
30 | |
31 public GeneralProperties() { | |
32 Name = "General"; | |
33 } | |
34 | |
35 [Category("Compiler")] | |
36 [DisplayName("Architecture")] | |
37 [ProjectProperty("TargetArch", true)] | |
38 public TargetArchitecture Arch { | |
39 get { return arch_; } | |
40 set { | |
41 arch_ = value; | |
42 IsDirty = true; | |
43 } | |
44 } | |
45 | |
46 [Category("Compiler")] | |
47 [DisplayName("Native Client SDK Root")] | |
48 [ProjectProperty("NaClSDKRoot", true)] | |
49 [Description( | |
50 "The base location of the Native Client SDK installation. This sets \"N
aClSDKRoot\"" | |
51 )] | |
52 public string NaClSdkRoot { | |
53 get { return naclSdkRoot_; } | |
54 set { | |
55 naclSdkRoot_ = value; | |
56 IsDirty = true; | |
57 } | |
58 } | |
59 | |
60 [Category("Compiler")] | |
61 [DisplayName("CCFLAGS")] | |
62 [ProjectProperty("CCFLAGS", true)] | |
63 [Description( | |
64 "CCFLAGS: passed on to nacl-gcc or nacl-g++" | |
65 )] | |
66 public string CCFLAGS { | |
67 get { return naclCcFlags_; } | |
68 set { | |
69 naclCcFlags_ = value; | |
70 IsDirty = true; | |
71 } | |
72 } | |
73 | |
74 [Category("Compiler")] | |
75 [DisplayName("CFLAGS")] | |
76 [ProjectProperty("CFLAGS", true)] | |
77 [Description( | |
78 "CFLAGS: passed on to nacl-gcc (not nacl-g++)" | |
79 )] | |
80 public string CFLAGS { | |
81 get { return naclCFlags_; } | |
82 set { | |
83 naclCFlags_ = value; | |
84 IsDirty = true; | |
85 } | |
86 } | |
87 | |
88 [Category("Compiler")] | |
89 [DisplayName("CXXFLAGS")] | |
90 [ProjectProperty("CXXFLAGS", true)] | |
91 [Description( | |
92 "CXXFLAGS: passed on to nacl-g++ (not nacl-gcc)" | |
93 )] | |
94 public string CXXFLAGS { | |
95 get { return naclCxxFlags_; } | |
96 set { | |
97 naclCxxFlags_ = value; | |
98 IsDirty = true; | |
99 } | |
100 } | |
101 | |
102 | |
103 [Category("Compiler")] | |
104 [DisplayName("INCLUDES")] | |
105 [ProjectProperty("INCLUDES", true)] | |
106 [Description( | |
107 "Include Paths: passed on to nacl-gcc or nacl-g++" | |
108 )] | |
109 public string INCLUDES { | |
110 get { return naclIncludes_; } | |
111 set { | |
112 naclIncludes_ = value; | |
113 IsDirty = true; | |
114 } | |
115 } | |
116 | |
117 [Category("Compiler")] | |
118 [DisplayName("OPT_FLAGS")] | |
119 [ProjectProperty("OPT_FLAGS", true)] | |
120 [Description( | |
121 "Optimization flags (such as -O2): passed on to nacl-gcc or nacl-g++" | |
122 )] | |
123 public string OPT_FLAGS { | |
124 get { return naclOptFlags_; } | |
125 set { | |
126 naclOptFlags_ = value; | |
127 IsDirty = true; | |
128 } | |
129 } | |
130 | |
131 [Category("Linker")] | |
132 [DisplayName("Library Dependencies")] | |
133 [ProjectProperty("LinkLibs", true)] | |
134 [Description( | |
135 "List of libraries to link, separated by semicolons. Omit 'lib prefix an
d '.a' suffix (e.g. 'iberty' not 'libiberty.a')." | |
136 )] | |
137 public string Libs { | |
138 get { return libs_; } | |
139 // MSVS allows libs to be space-delimited. But in order for our | |
140 // msbuild rules to work, they need to be semicolon-delimited. | |
141 // Help the user by replacing spaces. | |
142 // There doesn't seem to be a good reason to go the other way, | |
143 // that is, convert spaces to semicolons. The user should see the | |
144 // changes immediately. | |
145 set { | |
146 libs_ = !String.IsNullOrEmpty(value) | |
147 ? value.Trim().Replace(' ', ';') | |
148 : value; | |
149 IsDirty = true; | |
150 } | |
151 } | |
152 | |
153 | |
154 [Category("Linker")] | |
155 [DisplayName("Additional Library Directories")] | |
156 [ProjectProperty("Lib", true)] | |
157 [Description("Additional library paths to search")] | |
158 public string LibPath { | |
159 get { return libPath_; } | |
160 set { | |
161 libPath_ = value; | |
162 IsDirty = true; | |
163 } | |
164 } | |
165 | |
166 | |
167 [Category("Paths")] | |
168 [DisplayName("Output Directory")] | |
169 [ProjectProperty("OutputPath", true)] | |
170 [Editor(typeof (FolderNameEditor), typeof (UITypeEditor))] | |
171 public string OutputDir { | |
172 get { return outputDir_; } | |
173 set { | |
174 outputDir_ = value; | |
175 IsDirty = true; | |
176 } | |
177 } | |
178 | |
179 [Category("Paths")] | |
180 [DisplayName("Intermediate Directory")] | |
181 [ProjectProperty("IntermediatePath", true)] | |
182 [Editor(typeof (FolderNameEditor), typeof (UITypeEditor))] | |
183 public string IntermediateDir { | |
184 get { return intermediateDir_; } | |
185 set { | |
186 intermediateDir_ = value; | |
187 IsDirty = true; | |
188 } | |
189 } | |
190 | |
191 [Category("Paths")] | |
192 [DisplayName("Output File Name")] | |
193 [ProjectProperty("OutputFile", true)] | |
194 public string OutputFileName { | |
195 get { return outputFileName_; } | |
196 set { | |
197 outputFileName_ = value; | |
198 IsDirty = true; | |
199 } | |
200 } | |
201 | |
202 [Category("Toolchain")] | |
203 [DisplayName("Toolchain")] | |
204 [ProjectProperty("Toolchain", true)] | |
205 [Description( | |
206 "The toolchain to use in the build (e.g. win_x86_newlib)." | |
207 )] | |
208 public string Toolchain { | |
209 get { return toolchain_; } | |
210 set | |
211 { | |
212 toolchain_ = value; | |
213 IsDirty = true; | |
214 } | |
215 } | |
216 #region Private Implementation | |
217 | |
218 private TargetArchitecture arch_; | |
219 private string intermediateDir_; | |
220 private string libPath_; | |
221 private string libs_; | |
222 private string naclCFlags_; | |
223 private string naclCcFlags_; | |
224 private string naclCxxFlags_; | |
225 private string naclIncludes_; | |
226 private string naclOptFlags_; | |
227 private string naclSdkRoot_; | |
228 private string toolchain_; | |
229 private string outputDir_; | |
230 private string outputFileName_; | |
231 | |
232 #endregion | |
233 } | |
234 } | |
OLD | NEW |