* [Windows 7 SDK](http://www.microsoft.com/en-us/download/details.aspx?id=8279)
* `Windows Headers` and `Visual C++ Compilers` are required.
-If you want to dump breakpad symbols you also need to do this (you are free to
-skip this step if you don't know what it is):
-
-1. Get a copy of `msdia80.dll` and put it in
- `C:\Program Files\Common Files\Microsoft Shared\VC\`.
-2. As Administrator, run:
- `regsvr32 "C:\Program Files\Common Files\Microsoft Shared\VC\msdia80.dll"`.
-
The instructions bellow are executed under [cygwin](http://www.cygwin.com),
but it's not a requirement, you can also build atom-shell under Windows's
console or other terminals.
"coffeelint": "~0.6.1",
"mocha": "~1.13.0",
"walkdir": "~0.0.7",
+ "runas": "~0.2.0",
"formidable": "~1.0.14",
"unzip": "~0.1.9",
else: raise
+def RegisterRequiredDll():
+ register = os.path.join(os.path.dirname(__file__), 'register_msdia80_dll.js')
+ node = os.path.join(SOURCE_ROOT, 'out', 'Release', 'atom.exe')
+ os.environ['ATOM_SHELL_INTERNAL_RUN_AS_NODE'] = '1'
+ subprocess.check_call([node, register]);
+
+
def GenerateSymbols(options, binaries):
"""Dumps the symbols of binary and places them in the given directory."""
for directory in directories:
pdbs += glob.glob(os.path.join(directory, '*.pdb'))
+ RegisterRequiredDll();
GenerateSymbols(options, pdbs)
return 0
--- /dev/null
+var fs = require('fs');
+var path = require('path');
+var runas = require('runas');
+
+var source = path.resolve(__dirname, '..', '..', 'vendor', 'breakpad', 'msdia80.dll');
+var target = 'C:\\Program Files\\Common Files\\Microsoft Shared\\VC\\msdia80.dll';
+if (fs.existsSync(target))
+ return;
+
+var copy = 'copy "' + source + '" "' + target + '"';
+var register = 'regsvr32 "' + target + '"';
+runas('cmd', ['/K', copy + ' & ' + register + ' & exit']);