diff --git a/README.md b/README.md index b191927..99097f1 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ npm install minidump ``` -## Building +## Building (for development) * `git clone --recurse-submodules https://github.com/electron/node-minidump` * `npm install` diff --git a/build.js b/build.js index 37959f2..df06052 100644 --- a/build.js +++ b/build.js @@ -1,11 +1,19 @@ const fs = require('fs') const path = require('path') -const { spawnSync } = require('child_process') +const childProcess = require('child_process') + +function spawnSync (...args) { + const result = childProcess.spawnSync(...args) + if (result.status !== 0) { + process.exit(result.status) + } +} const buildDir = path.join(__dirname, 'build') if (!fs.existsSync(buildDir)) { fs.mkdirSync(buildDir, { recursive: true }) } + spawnSync(path.join(__dirname, 'deps', 'breakpad', 'configure'), [], { cwd: buildDir, env: { @@ -18,6 +26,13 @@ const targets = ['src/processor/minidump_stackwalk', 'src/processor/minidump_dum if (process.platform === 'linux') { targets.push('src/tools/linux/dump_syms/dump_syms') } + spawnSync('make', ['-C', buildDir, '-j', require('os').cpus().length, ...targets], { stdio: 'inherit' }) + +if (process.platform === 'darwin') { + spawnSync('xcodebuild', ['-project', path.join(__dirname, 'deps', 'breakpad', 'src', 'tools', 'mac', 'dump_syms', 'dump_syms.xcodeproj'), 'build'], { + stdio: 'inherit' + }) +} diff --git a/lib/minidump.js b/lib/minidump.js index e949b46..9483b26 100644 --- a/lib/minidump.js +++ b/lib/minidump.js @@ -9,7 +9,7 @@ const commands = { minidump_dump: path.resolve(__dirname, '..', 'build', 'src', 'processor', 'minidump_dump') + exe, dump_syms: (() => { if (process.platform === 'darwin') { - return path.resolve(__dirname, '..', 'build', 'src', 'tools', 'mac', 'dump_syms', 'dump_syms_mac') + return path.resolve(__dirname, '..', 'deps', 'breakpad', 'src', 'tools', 'mac', 'dump_syms', 'build', 'Release', 'dump_syms') } else if (process.platform === 'linux') { return path.resolve(__dirname, '..', 'build', 'src', 'tools', 'linux', 'dump_syms', 'dump_syms') } diff --git a/test/minidump-test.js b/test/minidump-test.js index 61ca4d5..1e15fd2 100644 --- a/test/minidump-test.js +++ b/test/minidump-test.js @@ -74,8 +74,6 @@ describe('minidump', function () { describe('dumpSymbol()', function () { it('calls back with a minidump', function (done) { - if (process.platform !== 'linux') return this.skip() - downloadElectron(function (error, binaryPath) { if (error) return done(error) minidump.dumpSymbol(binaryPath, function (error, minidump) {