MCPcopy Create free account
hub / github.com/NodeRT/NodeRT / cmdGenerate_Click

Method cmdGenerate_Click

src/NodeRTUI/MainForm.cs:180–271  ·  view source on GitHub ↗
(object sender, EventArgs e)

Source from the content-addressed store, hash-verified

178 }
179
180 private void cmdGenerate_Click(object sender, EventArgs e)
181 {
182 // in case we have a single item just select it
183 if (namespaceList.Items.Count == 1)
184 {
185 namespaceList.SelectedItem = namespaceList.Items[0];
186 }
187
188 if ((namespaceList.SelectedItem == null) || string.IsNullOrEmpty(txtFilename.Text))
189 {
190 MessageBox.Show("Please select a namespace to generate", "No namespace was chosen");
191 return;
192 }
193
194 btnGenerate.Enabled = false;
195
196 var winMdFile = txtFilename.Text;
197 var winRTNamespace = namespaceList.SelectedItem.ToString();
198 VsVersions vsVersion = (VsVersions)cmbVsVersion.SelectedIndex;
199 WinVersions winVersion = (WinVersions)cmbWindowsVersion.SelectedIndex;
200 string outputFolder = Path.Combine(txtOutputDirectory.Text, winRTNamespace.ToLower());
201
202 string errorMessage;
203 if (!NodeRTProjectGenerator.VerifyVsAndWinVersions(winVersion, vsVersion, out errorMessage))
204 {
205 MessageBox.Show("Unsupported Windows and VS combination:\n" + errorMessage, "Unsupported options", MessageBoxButtons.OK, MessageBoxIcon.Error);
206 btnGenerate.Enabled = true;
207 return;
208 }
209
210 var generator = new NodeRTProjectGenerator(winVersion, vsVersion, chkDefGen.Checked);
211 bool buildModule = chkBuildModule.Checked;
212
213 btnGenerate.Text = "Generating code...";
214 bool succeeded = false;
215
216 Task.Run(() =>
217 {
218 string modulePath;
219 try
220 {
221 modulePath = Reflector.GenerateProject(winMdFile, winRTNamespace, outputFolder,
222 generator, null, null, null);
223 }
224 catch (Exception ex)
225 {
226 MessageBox.Show("Failed to generate project file\n" + ex.Message,
227 "Failed to generate project file", MessageBoxButtons.OK, MessageBoxIcon.Error);
228 throw ex;
229 }
230
231 MethodInvoker invoker = new MethodInvoker(delegate() { btnGenerate.Text = "Building..."; });
232 btnGenerate.Invoke(invoker);
233
234 if (buildModule)
235 {
236 try
237 {

Callers

nothing calls this directly

Calls 4

RunMethod · 0.80
BuildWithNodeGypMethod · 0.80
GenerateProjectMethod · 0.45

Tested by

no test coverage detected