|
|
@ -20,6 +20,7 @@ |
|
|
|
var fs = require('fs'); |
|
|
|
var fs = require('fs'); |
|
|
|
var gulp = require('gulp'); |
|
|
|
var gulp = require('gulp'); |
|
|
|
var gutil = require('gulp-util'); |
|
|
|
var gutil = require('gulp-util'); |
|
|
|
|
|
|
|
var rename = require('gulp-rename'); |
|
|
|
var mkdirp = require('mkdirp'); |
|
|
|
var mkdirp = require('mkdirp'); |
|
|
|
var rimraf = require('rimraf'); |
|
|
|
var rimraf = require('rimraf'); |
|
|
|
var runSequence = require('run-sequence'); |
|
|
|
var runSequence = require('run-sequence'); |
|
|
@ -34,10 +35,19 @@ var BUILD_DIR = 'build/'; |
|
|
|
var JSDOC_DIR = 'jsdoc/'; |
|
|
|
var JSDOC_DIR = 'jsdoc/'; |
|
|
|
var L10N_DIR = 'l10n/'; |
|
|
|
var L10N_DIR = 'l10n/'; |
|
|
|
var TEST_DIR = 'test/'; |
|
|
|
var TEST_DIR = 'test/'; |
|
|
|
|
|
|
|
var EXTENSION_SRC_DIR = 'extensions/'; |
|
|
|
|
|
|
|
|
|
|
|
var makeFile = require('./make.js'); |
|
|
|
var GENERIC_DIR = BUILD_DIR + 'generic/'; |
|
|
|
var stripCommentHeaders = makeFile.stripCommentHeaders; |
|
|
|
var COMPONENTS_DIR = BUILD_DIR + 'components/'; |
|
|
|
var builder = makeFile.builder; |
|
|
|
var SINGLE_FILE_DIR = BUILD_DIR + 'singlefile/'; |
|
|
|
|
|
|
|
var MINIFIED_DIR = BUILD_DIR + 'minified/'; |
|
|
|
|
|
|
|
var FIREFOX_BUILD_DIR = BUILD_DIR + 'firefox/'; |
|
|
|
|
|
|
|
var COMMON_WEB_FILES = [ |
|
|
|
|
|
|
|
'web/images/*.{png,svg,gif,cur}', |
|
|
|
|
|
|
|
'web/debugger.js' |
|
|
|
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var builder = require('./external/builder/builder.js'); |
|
|
|
|
|
|
|
|
|
|
|
var CONFIG_FILE = 'pdfjs.config'; |
|
|
|
var CONFIG_FILE = 'pdfjs.config'; |
|
|
|
var config = JSON.parse(fs.readFileSync(CONFIG_FILE).toString()); |
|
|
|
var config = JSON.parse(fs.readFileSync(CONFIG_FILE).toString()); |
|
|
@ -76,6 +86,16 @@ function stripUMDHeaders(content) { |
|
|
|
return content.replace(reg, ''); |
|
|
|
return content.replace(reg, ''); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function stripCommentHeaders(content) { |
|
|
|
|
|
|
|
var notEndOfComment = '(?:[^*]|\\*(?!/))+'; |
|
|
|
|
|
|
|
var reg = new RegExp( |
|
|
|
|
|
|
|
'\n/\\* Copyright' + notEndOfComment + '\\*/\\s*' + |
|
|
|
|
|
|
|
'(?:/\\*' + notEndOfComment + '\\*/\\s*|//(?!#).*\n\\s*)*' + |
|
|
|
|
|
|
|
'\\s*\'use strict\';', 'g'); |
|
|
|
|
|
|
|
content = content.replace(reg, ''); |
|
|
|
|
|
|
|
return content; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function checkChromePreferencesFile(chromePrefsPath, webPrefsPath) { |
|
|
|
function checkChromePreferencesFile(chromePrefsPath, webPrefsPath) { |
|
|
|
var chromePrefs = JSON.parse(fs.readFileSync(chromePrefsPath).toString()); |
|
|
|
var chromePrefs = JSON.parse(fs.readFileSync(chromePrefsPath).toString()); |
|
|
|
var chromePrefsKeys = Object.keys(chromePrefs.properties); |
|
|
|
var chromePrefsKeys = Object.keys(chromePrefs.properties); |
|
|
@ -296,6 +316,14 @@ function checkDir(path) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function getTempFile(prefix, suffix) { |
|
|
|
|
|
|
|
mkdirp.sync(BUILD_DIR + 'tmp/'); |
|
|
|
|
|
|
|
var bytes = require('crypto').randomBytes(6).toString('hex'); |
|
|
|
|
|
|
|
var path = BUILD_DIR + 'tmp/' + prefix + bytes + suffix; |
|
|
|
|
|
|
|
fs.writeFileSync(path, ''); |
|
|
|
|
|
|
|
return path; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function createTestSource(testsName) { |
|
|
|
function createTestSource(testsName) { |
|
|
|
var source = stream.Readable({ objectMode: true }); |
|
|
|
var source = stream.Readable({ objectMode: true }); |
|
|
|
source._read = function () { |
|
|
|
source._read = function () { |
|
|
@ -484,53 +512,326 @@ gulp.task('cmaps', function () { |
|
|
|
compressCmaps(CMAP_INPUT, VIEWER_CMAP_OUTPUT, true); |
|
|
|
compressCmaps(CMAP_INPUT, VIEWER_CMAP_OUTPUT, true); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
gulp.task('bundle-firefox', ['buildnumber'], function () { |
|
|
|
gulp.task('bundle', ['buildnumber'], function () { |
|
|
|
var defines = builder.merge(DEFINES, {FIREFOX: true}); |
|
|
|
return createBundle(DEFINES).pipe(gulp.dest(BUILD_DIR)); |
|
|
|
return streamqueue({ objectMode: true }, |
|
|
|
|
|
|
|
createBundle(defines), createWebBundle(defines)) |
|
|
|
|
|
|
|
.pipe(gulp.dest(BUILD_DIR)); |
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
gulp.task('bundle-mozcentral', ['buildnumber'], function () { |
|
|
|
function preprocessCSS(source, mode, defines, cleanup) { |
|
|
|
var defines = builder.merge(DEFINES, {MOZCENTRAL: true}); |
|
|
|
var outName = getTempFile('~preprocess', '.css'); |
|
|
|
return streamqueue({ objectMode: true }, |
|
|
|
var setup = { |
|
|
|
createBundle(defines), createWebBundle(defines)) |
|
|
|
defines: defines, |
|
|
|
.pipe(gulp.dest(BUILD_DIR)); |
|
|
|
copy: [], |
|
|
|
|
|
|
|
preprocess: [], |
|
|
|
|
|
|
|
preprocessCSS: [ |
|
|
|
|
|
|
|
[mode, source, outName] |
|
|
|
|
|
|
|
] |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
builder.build(setup); |
|
|
|
|
|
|
|
var out = fs.readFileSync(outName).toString(); |
|
|
|
|
|
|
|
fs.unlinkSync(outName); |
|
|
|
|
|
|
|
if (cleanup) { |
|
|
|
|
|
|
|
// Strip out all license headers in the middle.
|
|
|
|
|
|
|
|
var reg = /\n\/\* Copyright(.|\n)*?Mozilla Foundation(.|\n)*?\*\//g; |
|
|
|
|
|
|
|
out = out.replace(reg, ''); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var i = source.lastIndexOf('/'); |
|
|
|
|
|
|
|
return createStringSource(source.substr(i + 1), out); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function preprocessHTML(source, defines) { |
|
|
|
|
|
|
|
var outName = getTempFile('~preprocess', '.html'); |
|
|
|
|
|
|
|
var setup = { |
|
|
|
|
|
|
|
defines: defines, |
|
|
|
|
|
|
|
copy: [], |
|
|
|
|
|
|
|
preprocess: [ |
|
|
|
|
|
|
|
[source, outName] |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
preprocessCSS: [] |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
builder.build(setup); |
|
|
|
|
|
|
|
var out = fs.readFileSync(outName).toString(); |
|
|
|
|
|
|
|
fs.unlinkSync(outName); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var i = source.lastIndexOf('/'); |
|
|
|
|
|
|
|
return createStringSource(source.substr(i + 1), out); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function preprocessJS(source, defines, cleanup) { |
|
|
|
|
|
|
|
var outName = getTempFile('~preprocess', '.js'); |
|
|
|
|
|
|
|
var setup = { |
|
|
|
|
|
|
|
defines: defines, |
|
|
|
|
|
|
|
copy: [], |
|
|
|
|
|
|
|
preprocess: [ |
|
|
|
|
|
|
|
[source, outName] |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
preprocessCSS: [] |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
builder.build(setup); |
|
|
|
|
|
|
|
var out = fs.readFileSync(outName).toString(); |
|
|
|
|
|
|
|
fs.unlinkSync(outName); |
|
|
|
|
|
|
|
if (cleanup) { |
|
|
|
|
|
|
|
out = stripCommentHeaders(out); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var i = source.lastIndexOf('/'); |
|
|
|
|
|
|
|
return createStringSource(source.substr(i + 1), out); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Builds the generic production viewer that should be compatible with most
|
|
|
|
|
|
|
|
// modern HTML5 browsers.
|
|
|
|
|
|
|
|
gulp.task('generic', ['buildnumber', 'locale'], function () { |
|
|
|
|
|
|
|
console.log(); |
|
|
|
|
|
|
|
console.log('### Creating generic viewer'); |
|
|
|
|
|
|
|
var defines = builder.merge(DEFINES, {GENERIC: true}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rimraf.sync(GENERIC_DIR); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return merge([ |
|
|
|
|
|
|
|
createBundle(defines).pipe(gulp.dest(GENERIC_DIR + 'build')), |
|
|
|
|
|
|
|
createWebBundle(defines).pipe(gulp.dest(GENERIC_DIR + 'web')), |
|
|
|
|
|
|
|
gulp.src(COMMON_WEB_FILES, {base: 'web/'}) |
|
|
|
|
|
|
|
.pipe(gulp.dest(GENERIC_DIR + 'web')), |
|
|
|
|
|
|
|
gulp.src('LICENSE').pipe(gulp.dest(GENERIC_DIR)), |
|
|
|
|
|
|
|
gulp.src([ |
|
|
|
|
|
|
|
'external/webL10n/l10n.js', |
|
|
|
|
|
|
|
'web/compatibility.js' |
|
|
|
|
|
|
|
]).pipe(gulp.dest(GENERIC_DIR + 'web')), |
|
|
|
|
|
|
|
gulp.src([ |
|
|
|
|
|
|
|
'web/locale/*/viewer.properties', |
|
|
|
|
|
|
|
'web/locale/locale.properties' |
|
|
|
|
|
|
|
], {base: 'web/'}).pipe(gulp.dest(GENERIC_DIR + 'web')), |
|
|
|
|
|
|
|
gulp.src(['external/bcmaps/*.bcmap', 'external/bcmaps/LICENSE'], |
|
|
|
|
|
|
|
{base: 'external/bcmaps'}) |
|
|
|
|
|
|
|
.pipe(gulp.dest(GENERIC_DIR + 'web/cmaps')), |
|
|
|
|
|
|
|
preprocessHTML('web/viewer.html', defines) |
|
|
|
|
|
|
|
.pipe(gulp.dest(GENERIC_DIR + 'web')), |
|
|
|
|
|
|
|
preprocessCSS('web/viewer.css', 'generic', defines, true) |
|
|
|
|
|
|
|
.pipe(gulp.dest(GENERIC_DIR + 'web')), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gulp.src('web/compressed.tracemonkey-pldi-09.pdf') |
|
|
|
|
|
|
|
.pipe(gulp.dest(GENERIC_DIR + 'web')), |
|
|
|
|
|
|
|
]); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
gulp.task('bundle-chromium', ['buildnumber'], function () { |
|
|
|
gulp.task('components', ['buildnumber'], function () { |
|
|
|
var defines = builder.merge(DEFINES, {CHROME: true}); |
|
|
|
console.log(); |
|
|
|
return streamqueue({ objectMode: true }, |
|
|
|
console.log('### Creating generic components'); |
|
|
|
createBundle(defines), createWebBundle(defines)) |
|
|
|
var defines = builder.merge(DEFINES, {COMPONENTS: true, GENERIC: true}); |
|
|
|
.pipe(gulp.dest(BUILD_DIR)); |
|
|
|
|
|
|
|
|
|
|
|
rimraf.sync(COMPONENTS_DIR); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var COMPONENTS_IMAGES = [ |
|
|
|
|
|
|
|
'web/images/annotation-*.svg', |
|
|
|
|
|
|
|
'web/images/loading-icon.gif', |
|
|
|
|
|
|
|
'web/images/shadow.png', |
|
|
|
|
|
|
|
'web/images/texture.png', |
|
|
|
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return merge([ |
|
|
|
|
|
|
|
createWebBundle(defines).pipe(gulp.dest(COMPONENTS_DIR)), |
|
|
|
|
|
|
|
gulp.src(COMPONENTS_IMAGES).pipe(gulp.dest(COMPONENTS_DIR + 'images')), |
|
|
|
|
|
|
|
gulp.src('web/compatibility.js').pipe(gulp.dest(COMPONENTS_DIR)), |
|
|
|
|
|
|
|
preprocessCSS('web/pdf_viewer.css', 'components', defines, true) |
|
|
|
|
|
|
|
.pipe(gulp.dest(COMPONENTS_DIR)), |
|
|
|
|
|
|
|
]); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
gulp.task('bundle-singlefile', ['buildnumber'], function () { |
|
|
|
gulp.task('singlefile', ['buildnumber'], function () { |
|
|
|
|
|
|
|
console.log(); |
|
|
|
|
|
|
|
console.log('### Creating singlefile build'); |
|
|
|
var defines = builder.merge(DEFINES, {SINGLE_FILE: true}); |
|
|
|
var defines = builder.merge(DEFINES, {SINGLE_FILE: true}); |
|
|
|
return createBundle(defines).pipe(gulp.dest(BUILD_DIR)); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gulp.task('bundle-generic', ['buildnumber'], function () { |
|
|
|
var SINGLE_FILE_BUILD_DIR = SINGLE_FILE_DIR + 'build/'; |
|
|
|
var defines = builder.merge(DEFINES, {GENERIC: true}); |
|
|
|
|
|
|
|
return streamqueue({ objectMode: true }, |
|
|
|
rimraf.sync(SINGLE_FILE_DIR); |
|
|
|
createBundle(defines), createWebBundle(defines)) |
|
|
|
|
|
|
|
.pipe(gulp.dest(BUILD_DIR)); |
|
|
|
return createBundle(defines).pipe(gulp.dest(SINGLE_FILE_BUILD_DIR)); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
gulp.task('bundle-minified', ['buildnumber'], function () { |
|
|
|
gulp.task('minified-pre', ['buildnumber', 'locale'], function () { |
|
|
|
|
|
|
|
console.log(); |
|
|
|
|
|
|
|
console.log('### Creating minified viewer'); |
|
|
|
var defines = builder.merge(DEFINES, {MINIFIED: true, GENERIC: true}); |
|
|
|
var defines = builder.merge(DEFINES, {MINIFIED: true, GENERIC: true}); |
|
|
|
return streamqueue({ objectMode: true }, |
|
|
|
|
|
|
|
createBundle(defines), createWebBundle(defines)) |
|
|
|
rimraf.sync(MINIFIED_DIR); |
|
|
|
.pipe(gulp.dest(BUILD_DIR)); |
|
|
|
|
|
|
|
|
|
|
|
return merge([ |
|
|
|
|
|
|
|
createBundle(defines).pipe(gulp.dest(MINIFIED_DIR + 'build')), |
|
|
|
|
|
|
|
createWebBundle(defines).pipe(gulp.dest(MINIFIED_DIR + 'web')), |
|
|
|
|
|
|
|
gulp.src(COMMON_WEB_FILES, {base: 'web/'}) |
|
|
|
|
|
|
|
.pipe(gulp.dest(MINIFIED_DIR + 'web')), |
|
|
|
|
|
|
|
gulp.src([ |
|
|
|
|
|
|
|
'web/locale/*/viewer.properties', |
|
|
|
|
|
|
|
'web/locale/locale.properties' |
|
|
|
|
|
|
|
], {base: 'web/'}).pipe(gulp.dest(MINIFIED_DIR + 'web')), |
|
|
|
|
|
|
|
gulp.src(['external/bcmaps/*.bcmap', 'external/bcmaps/LICENSE'], |
|
|
|
|
|
|
|
{base: 'external/bcmaps'}) |
|
|
|
|
|
|
|
.pipe(gulp.dest(MINIFIED_DIR + 'web/cmaps')), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
preprocessHTML('web/viewer.html', defines) |
|
|
|
|
|
|
|
.pipe(gulp.dest(MINIFIED_DIR + 'web')), |
|
|
|
|
|
|
|
preprocessCSS('web/viewer.css', 'minified', defines, true) |
|
|
|
|
|
|
|
.pipe(gulp.dest(MINIFIED_DIR + 'web')), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gulp.src('web/compressed.tracemonkey-pldi-09.pdf') |
|
|
|
|
|
|
|
.pipe(gulp.dest(MINIFIED_DIR + 'web')), |
|
|
|
|
|
|
|
]); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
gulp.task('bundle-components', ['buildnumber'], function () { |
|
|
|
gulp.task('firefox-pre', ['buildnumber', 'locale'], function () { |
|
|
|
var defines = builder.merge(DEFINES, {COMPONENTS: true, GENERIC: true}); |
|
|
|
console.log(); |
|
|
|
return createWebBundle(defines).pipe(gulp.dest(BUILD_DIR)); |
|
|
|
console.log('### Building Firefox extension'); |
|
|
|
|
|
|
|
var defines = builder.merge(DEFINES, {FIREFOX: true}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var FIREFOX_BUILD_CONTENT_DIR = FIREFOX_BUILD_DIR + '/content/', |
|
|
|
|
|
|
|
FIREFOX_EXTENSION_DIR = 'extensions/firefox/', |
|
|
|
|
|
|
|
FIREFOX_CONTENT_DIR = EXTENSION_SRC_DIR + '/firefox/content/'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Clear out everything in the firefox extension build directory
|
|
|
|
|
|
|
|
rimraf.sync(FIREFOX_BUILD_DIR); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return merge([ |
|
|
|
|
|
|
|
createBundle(defines).pipe(gulp.dest(FIREFOX_BUILD_CONTENT_DIR + 'build')), |
|
|
|
|
|
|
|
createWebBundle(defines).pipe(gulp.dest(FIREFOX_BUILD_CONTENT_DIR + 'web')), |
|
|
|
|
|
|
|
gulp.src(COMMON_WEB_FILES, {base: 'web/'}) |
|
|
|
|
|
|
|
.pipe(gulp.dest(FIREFOX_BUILD_CONTENT_DIR + 'web')), |
|
|
|
|
|
|
|
gulp.src(FIREFOX_EXTENSION_DIR + 'locale/**/*.properties', |
|
|
|
|
|
|
|
{base: FIREFOX_EXTENSION_DIR}) |
|
|
|
|
|
|
|
.pipe(gulp.dest(FIREFOX_BUILD_DIR)), |
|
|
|
|
|
|
|
gulp.src(['external/bcmaps/*.bcmap', 'external/bcmaps/LICENSE'], |
|
|
|
|
|
|
|
{base: 'external/bcmaps'}) |
|
|
|
|
|
|
|
.pipe(gulp.dest(FIREFOX_BUILD_CONTENT_DIR + 'web/cmaps')), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
preprocessHTML('web/viewer.html', defines) |
|
|
|
|
|
|
|
.pipe(gulp.dest(FIREFOX_BUILD_CONTENT_DIR + 'web')), |
|
|
|
|
|
|
|
preprocessCSS('web/viewer.css', 'firefox', defines, true) |
|
|
|
|
|
|
|
.pipe(gulp.dest(FIREFOX_BUILD_CONTENT_DIR + 'web')), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gulp.src(FIREFOX_CONTENT_DIR + 'PdfJs-stub.jsm') |
|
|
|
|
|
|
|
.pipe(rename('PdfJs.jsm')) |
|
|
|
|
|
|
|
.pipe(gulp.dest(FIREFOX_BUILD_CONTENT_DIR)), |
|
|
|
|
|
|
|
gulp.src(FIREFOX_CONTENT_DIR + 'PdfJsTelemetry-addon.jsm') |
|
|
|
|
|
|
|
.pipe(rename('PdfJsTelemetry.jsm')) |
|
|
|
|
|
|
|
.pipe(gulp.dest(FIREFOX_BUILD_CONTENT_DIR)), |
|
|
|
|
|
|
|
gulp.src(FIREFOX_EXTENSION_DIR + '**/*.{rdf,png,manifest}', |
|
|
|
|
|
|
|
{base: FIREFOX_EXTENSION_DIR}) |
|
|
|
|
|
|
|
.pipe(gulp.dest(FIREFOX_BUILD_DIR)), |
|
|
|
|
|
|
|
gulp.src(FIREFOX_EXTENSION_DIR + 'chrome/content.js', |
|
|
|
|
|
|
|
{base: FIREFOX_EXTENSION_DIR}) |
|
|
|
|
|
|
|
.pipe(gulp.dest(FIREFOX_BUILD_DIR)), |
|
|
|
|
|
|
|
gulp.src('LICENSE').pipe(gulp.dest(FIREFOX_BUILD_DIR)), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gulp.src(FIREFOX_EXTENSION_DIR + 'tools/l10n.js') |
|
|
|
|
|
|
|
.pipe(gulp.dest(FIREFOX_BUILD_CONTENT_DIR + '/web')), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
preprocessJS(FIREFOX_CONTENT_DIR + 'PdfStreamConverter.jsm', defines, true) |
|
|
|
|
|
|
|
.pipe(gulp.dest(FIREFOX_BUILD_CONTENT_DIR)), |
|
|
|
|
|
|
|
preprocessJS(FIREFOX_CONTENT_DIR + 'PdfJsNetwork.jsm', defines, true) |
|
|
|
|
|
|
|
.pipe(gulp.dest(FIREFOX_BUILD_CONTENT_DIR)), |
|
|
|
|
|
|
|
preprocessJS(FIREFOX_CONTENT_DIR + 'PdfjsContentUtils.jsm', defines, true) |
|
|
|
|
|
|
|
.pipe(gulp.dest(FIREFOX_BUILD_CONTENT_DIR)), |
|
|
|
|
|
|
|
preprocessJS(FIREFOX_CONTENT_DIR + 'PdfjsChromeUtils.jsm', defines, true) |
|
|
|
|
|
|
|
.pipe(gulp.dest(FIREFOX_BUILD_CONTENT_DIR)), |
|
|
|
|
|
|
|
preprocessJS(FIREFOX_EXTENSION_DIR + 'bootstrap.js', defines, true) |
|
|
|
|
|
|
|
.pipe(gulp.dest(FIREFOX_BUILD_DIR)), |
|
|
|
|
|
|
|
]); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
gulp.task('bundle', ['buildnumber'], function () { |
|
|
|
gulp.task('mozcentral-pre', ['buildnumber', 'locale'], function () { |
|
|
|
return createBundle(DEFINES).pipe(gulp.dest(BUILD_DIR)); |
|
|
|
console.log(); |
|
|
|
|
|
|
|
console.log('### Building mozilla-central extension'); |
|
|
|
|
|
|
|
var defines = builder.merge(DEFINES, {MOZCENTRAL: true}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var MOZCENTRAL_DIR = BUILD_DIR + 'mozcentral/', |
|
|
|
|
|
|
|
MOZCENTRAL_EXTENSION_DIR = MOZCENTRAL_DIR + 'browser/extensions/pdfjs/', |
|
|
|
|
|
|
|
MOZCENTRAL_CONTENT_DIR = MOZCENTRAL_EXTENSION_DIR + 'content/', |
|
|
|
|
|
|
|
FIREFOX_EXTENSION_DIR = 'extensions/firefox/', |
|
|
|
|
|
|
|
MOZCENTRAL_L10N_DIR = MOZCENTRAL_DIR + 'browser/locales/en-US/pdfviewer/', |
|
|
|
|
|
|
|
FIREFOX_CONTENT_DIR = EXTENSION_SRC_DIR + '/firefox/content/'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Clear out everything in the firefox extension build directory
|
|
|
|
|
|
|
|
rimraf.sync(MOZCENTRAL_DIR); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return merge([ |
|
|
|
|
|
|
|
createBundle(defines).pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR + 'build')), |
|
|
|
|
|
|
|
createWebBundle(defines).pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR + 'web')), |
|
|
|
|
|
|
|
gulp.src(COMMON_WEB_FILES, {base: 'web/'}) |
|
|
|
|
|
|
|
.pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR + 'web')), |
|
|
|
|
|
|
|
gulp.src(['external/bcmaps/*.bcmap', 'external/bcmaps/LICENSE'], |
|
|
|
|
|
|
|
{base: 'external/bcmaps'}) |
|
|
|
|
|
|
|
.pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR + 'web/cmaps')), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
preprocessHTML('web/viewer.html', defines) |
|
|
|
|
|
|
|
.pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR + 'web')), |
|
|
|
|
|
|
|
preprocessCSS('web/viewer.css', 'mozcentral', defines, true) |
|
|
|
|
|
|
|
.pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR + 'web')), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gulp.src(FIREFOX_CONTENT_DIR + 'PdfJsTelemetry.jsm') |
|
|
|
|
|
|
|
.pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR)), |
|
|
|
|
|
|
|
gulp.src(FIREFOX_EXTENSION_DIR + 'chrome-mozcentral.manifest') |
|
|
|
|
|
|
|
.pipe(rename('chrome.manifest')) |
|
|
|
|
|
|
|
.pipe(gulp.dest(MOZCENTRAL_EXTENSION_DIR)), |
|
|
|
|
|
|
|
gulp.src(FIREFOX_EXTENSION_DIR + 'locale/en-US/*.properties', |
|
|
|
|
|
|
|
{base: FIREFOX_EXTENSION_DIR}) |
|
|
|
|
|
|
|
.pipe(gulp.dest(MOZCENTRAL_L10N_DIR)), |
|
|
|
|
|
|
|
gulp.src(FIREFOX_EXTENSION_DIR + 'README.mozilla') |
|
|
|
|
|
|
|
.pipe(gulp.dest(MOZCENTRAL_EXTENSION_DIR)), |
|
|
|
|
|
|
|
gulp.src('LICENSE').pipe(gulp.dest(MOZCENTRAL_EXTENSION_DIR)), |
|
|
|
|
|
|
|
gulp.src(FIREFOX_EXTENSION_DIR + 'tools/l10n.js') |
|
|
|
|
|
|
|
.pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR + '/web')), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
preprocessJS(FIREFOX_CONTENT_DIR + 'PdfJs.jsm', defines, true) |
|
|
|
|
|
|
|
.pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR)), |
|
|
|
|
|
|
|
preprocessJS(FIREFOX_CONTENT_DIR + 'PdfStreamConverter.jsm', defines, true) |
|
|
|
|
|
|
|
.pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR)), |
|
|
|
|
|
|
|
preprocessJS(FIREFOX_CONTENT_DIR + 'PdfJsNetwork.jsm', defines, true) |
|
|
|
|
|
|
|
.pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR)), |
|
|
|
|
|
|
|
preprocessJS(FIREFOX_CONTENT_DIR + 'PdfjsContentUtils.jsm', defines, true) |
|
|
|
|
|
|
|
.pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR)), |
|
|
|
|
|
|
|
preprocessJS(FIREFOX_CONTENT_DIR + 'PdfjsChromeUtils.jsm', defines, true) |
|
|
|
|
|
|
|
.pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR)), |
|
|
|
|
|
|
|
]); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gulp.task('chromium-pre', ['buildnumber', 'locale'], function () { |
|
|
|
|
|
|
|
console.log(); |
|
|
|
|
|
|
|
console.log('### Building Chromium extension'); |
|
|
|
|
|
|
|
var defines = builder.merge(DEFINES, {CHROME: true}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var CHROME_BUILD_DIR = BUILD_DIR + '/chromium/', |
|
|
|
|
|
|
|
CHROME_BUILD_CONTENT_DIR = CHROME_BUILD_DIR + '/content/'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Clear out everything in the chrome extension build directory
|
|
|
|
|
|
|
|
rimraf.sync(CHROME_BUILD_DIR); |
|
|
|
|
|
|
|
return merge([ |
|
|
|
|
|
|
|
createBundle(defines).pipe(gulp.dest(CHROME_BUILD_CONTENT_DIR + 'build')), |
|
|
|
|
|
|
|
createWebBundle(defines).pipe(gulp.dest(CHROME_BUILD_CONTENT_DIR + 'web')), |
|
|
|
|
|
|
|
gulp.src(COMMON_WEB_FILES, {base: 'web/'}) |
|
|
|
|
|
|
|
.pipe(gulp.dest(CHROME_BUILD_CONTENT_DIR + 'web')), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gulp.src('external/webL10n/l10n.js') |
|
|
|
|
|
|
|
.pipe(gulp.dest(CHROME_BUILD_CONTENT_DIR + 'web')), |
|
|
|
|
|
|
|
gulp.src([ |
|
|
|
|
|
|
|
'web/locale/*/viewer.properties', |
|
|
|
|
|
|
|
'web/locale/locale.properties' |
|
|
|
|
|
|
|
], {base: 'web/'}).pipe(gulp.dest(CHROME_BUILD_CONTENT_DIR + 'web')), |
|
|
|
|
|
|
|
gulp.src(['external/bcmaps/*.bcmap', 'external/bcmaps/LICENSE'], |
|
|
|
|
|
|
|
{base: 'external/bcmaps'}) |
|
|
|
|
|
|
|
.pipe(gulp.dest(CHROME_BUILD_CONTENT_DIR + 'web/cmaps')), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
preprocessHTML('web/viewer.html', defines) |
|
|
|
|
|
|
|
.pipe(gulp.dest(CHROME_BUILD_CONTENT_DIR + 'web')), |
|
|
|
|
|
|
|
preprocessCSS('web/viewer.css', 'chrome', defines, true) |
|
|
|
|
|
|
|
.pipe(gulp.dest(CHROME_BUILD_CONTENT_DIR + 'web')), |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gulp.src('LICENSE').pipe(gulp.dest(CHROME_BUILD_DIR)), |
|
|
|
|
|
|
|
gulp.src('extensions/chromium/*.{json,html,js,css,png}') |
|
|
|
|
|
|
|
.pipe(gulp.dest(CHROME_BUILD_DIR)), |
|
|
|
|
|
|
|
gulp.src('extensions/chromium/**/*.{json,html,js,css,png}', |
|
|
|
|
|
|
|
{base: 'extensions/chromium/'}) |
|
|
|
|
|
|
|
.pipe(gulp.dest(CHROME_BUILD_DIR)), |
|
|
|
|
|
|
|
]); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
gulp.task('jsdoc', function (done) { |
|
|
|
gulp.task('jsdoc', function (done) { |
|
|
@ -723,6 +1024,8 @@ gulp.task('importl10n', function(done) { |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// Getting all shelljs registered tasks and register them with gulp
|
|
|
|
// Getting all shelljs registered tasks and register them with gulp
|
|
|
|
|
|
|
|
require('./make.js'); |
|
|
|
|
|
|
|
|
|
|
|
var gulpContext = false; |
|
|
|
var gulpContext = false; |
|
|
|
for (var taskName in global.target) { |
|
|
|
for (var taskName in global.target) { |
|
|
|
if (taskName in gulp.tasks) { |
|
|
|
if (taskName in gulp.tasks) { |
|
|
|