1055 lines
38 KiB
JavaScript
1055 lines
38 KiB
JavaScript
/*global module */
|
|
module.exports = function (grunt) {
|
|
var path = require('path');
|
|
var ENV = grunt.option('env') || 'development'; // pass --env=production to compile minified css
|
|
var fs = require('fs');
|
|
var libRoot = path.resolve('./src/lib');
|
|
var buildLibDest = path.resolve('./src/build');
|
|
var releaseDirLibs = path.resolve('./build');
|
|
var tmpdir = "./tmp/";
|
|
var outprop = "amdoutput";
|
|
var outdir = "./builddelite/";
|
|
var deploydir = './deploy/';
|
|
|
|
var appDir = './src/lib/xapp-build/sdk';
|
|
var srcDir = './src/lib/xibm/ibm/';
|
|
|
|
var common = {
|
|
options: { banner: '<%= ' + outprop + '.header%>' },
|
|
src: '<%= ' + outprop + '.modules.abs %>',
|
|
dest: outdir + '<%= ' + outprop + '.layerPath %>'
|
|
};
|
|
|
|
// Project configuration.
|
|
grunt.initConfig({
|
|
pkg: grunt.file.readJSON("package.json"),
|
|
cssmin: {
|
|
xtest: {
|
|
options: {
|
|
},
|
|
files: {
|
|
'src/lib/xtest/xtest.min.css':
|
|
[
|
|
|
|
|
|
'./src/css/elusive-icons/elusive-webfont.css',
|
|
|
|
|
|
'./src/css/commons/Widgets.css',
|
|
|
|
|
|
'./src/css/commons/Loading.css',
|
|
|
|
'./src/css/commons/grid.css',
|
|
|
|
'./src/css/commons/XFILE.css',
|
|
|
|
'./src/css/commons/bootstrap.css',
|
|
|
|
'./src/css/xfile/fileGridView.css',
|
|
'./src/css/xfile/Layout.css',
|
|
'./src/css/xfile/quicklook.css',
|
|
|
|
|
|
'./src/css/xcf/Layout.css',
|
|
'./src/css/xcf/GridView.css',
|
|
|
|
'./src/css/xcf/ConsoleView.css',
|
|
'./src/css/commons/XCF.css',
|
|
|
|
'./src/css/commons/bootstrap.css',
|
|
'./src/css/commons/Progress.css',
|
|
'./src/css/json_editor/jsoneditor.css',
|
|
|
|
'./src/css/xcf/Icons.css',
|
|
'./src/css/fonts/stylesheet.css',
|
|
'./src/lib/external/jQuery/plugins/tooltipster/css/tooltipster.css',
|
|
'./src/lib/external/jQuery/plugins/tooltipster/css/themes/tooltipster-light.css',
|
|
'./src/theme/html-white/dist/css/application.css',
|
|
'./src/css/commons/stylesheets/bootstrap-override.css',
|
|
'./src/lib/external/messenger_latest/build/css/messenger-theme-flat.css',
|
|
'./src/lib/external/bootstrap-select/dist/css/bootstrap-select.css',
|
|
'./src/lib/external/bootstrap3-dialog/dist/css/bootstrap-dialog.css',
|
|
'./src/lib/external/font-awesome-picker/dist/css/fontawesome-iconpicker.min.css',
|
|
'./src/lib/external/bootstrap3-editable/css/bootstrap-editable.css'
|
|
]
|
|
}
|
|
},
|
|
xcf: {
|
|
options: {
|
|
},
|
|
files: {
|
|
'src/xcf/xcf.min.css':[
|
|
'./src/css/elusive-icons/elusive-webfont.css',
|
|
'./src/css/font-awesome/css/font-awesome.css',
|
|
'./src/css/commons/Widgets.css',
|
|
'./src/css/commons/Loading.css',
|
|
'./src/css/commons/XFILE.css',
|
|
'./src/css/xcf/main.css',
|
|
'./src/fonts/stylesheet.css',
|
|
'./src/css/commons/bootstrap.css',
|
|
'./src/css/xfile/fileGridView.css',
|
|
'./src/css/xfile/Layout.css',
|
|
'./src/css/xfile/quicklook.css',
|
|
'./src/css/xcf/Layout.css',
|
|
'./src/css/xcf/GridView.css',
|
|
'./src/css/xcf/ConsoleView.css',
|
|
'./src/css/commons/bootstrap.css',
|
|
'./src/css/json_editor/jsoneditor.css',
|
|
'./src/css/xcf/Icons.css',
|
|
'./src/css/xide/xideve.css',
|
|
'./src/css/fonts/stylesheet.css',
|
|
'./src/css/commons/stylesheets/bootstrap-override.css',
|
|
'./src/lib/external/messenger_latest/build/css/messenger-theme-flat.css',
|
|
'./src/lib/external/bootstrap-select/dist/css/bootstrap-select.css',
|
|
'./src/lib/external/bootstrap3-dialog/dist/css/bootstrap-dialog.css',
|
|
'./src/lib/external/font-awesome-picker/dist/css/fontawesome-iconpicker.min.css',
|
|
'./src/lib/external/bootstrap3-editable/css/bootstrap-editable.css',
|
|
'./src/lib/dijit/themes/claro/claro.css'
|
|
]
|
|
}
|
|
},
|
|
xbox: {
|
|
options: {
|
|
},
|
|
files: {
|
|
'src/xbox/xbox.min.css':[
|
|
'./src/css/elusive-icons/elusive-webfont.css',
|
|
'./src/css/font-awesome/css/font-awesome.css',
|
|
'./src/css/commons/Widgets.css',
|
|
'./src/css/commons/Loading.css',
|
|
'./src/css/commons/XFILE.css',
|
|
'./src/css/xfile/fileGridView.css',
|
|
'./src/css/xfile/Layout.css',
|
|
'./src/css/xfile/quicklook.css',
|
|
'./src/css/commons/bootstrap.css',
|
|
'./src/css/commons/stylesheets/bootstrap-override.css',
|
|
'./src/lib/external/messenger_latest/build/css/messenger-theme-flat.css',
|
|
'./src/lib/external/bootstrap-select/dist/css/bootstrap-select.css',
|
|
'./src/lib/external/bootstrap3-dialog/dist/css/bootstrap-dialog.css'
|
|
]
|
|
}
|
|
},
|
|
xfile:{
|
|
options: {
|
|
},
|
|
files: {
|
|
'src/build/xfile/xfile.min.css':[
|
|
'./src/css/xfile/main_lib.css'
|
|
]
|
|
}
|
|
}
|
|
},
|
|
shell: {
|
|
themeTransparent: {
|
|
command: [
|
|
'cd src/theme',
|
|
'grunt --gruntfile GruntfileAcc.js --target=html-transparent-small dist-compass',
|
|
'cp html-transparent-small/dist/css/application.css ../css/theme-transparent.css'
|
|
].join('&&'),
|
|
|
|
options: {
|
|
stderr: false
|
|
|
|
}
|
|
},
|
|
themeWhite: {
|
|
command: [
|
|
'cd src/theme',
|
|
'ls',
|
|
'grunt --gruntfile GruntfileAcc.js --target=html-white dist-compass',
|
|
'cp html-white/dist/css/application.css ../css/theme-white.css'
|
|
].join('&&'),
|
|
|
|
options: {
|
|
stderr: false
|
|
|
|
}
|
|
}
|
|
},
|
|
dojo: {
|
|
xgrid: {
|
|
options: {
|
|
profile: './xgrid/layer.profile.js', // Profile for build
|
|
profiles: [], // Optional: Array of Profiles for build
|
|
releaseDir: releaseDirLibs+'/xgrid',
|
|
require: 'xgrid/main.js', // Optional: Module to require for the build (Default: nothing)
|
|
dojoConfig: './dojoBuildLibConfig.js',
|
|
ignoreErrors:true
|
|
// Optional: Array of locations of package.json (Default: nothing)
|
|
}
|
|
},
|
|
options: {
|
|
// You can also specify options to be used in all your tasks
|
|
dojo: 'dojo/dojo.js', // Path to dojo.js file in dojo source
|
|
load: 'build', // Optional: Utility to bootstrap (Default: 'build')
|
|
profile: 'app.profile.js', // Profile for build
|
|
profiles: [], // Optional: Array of Profiles for build
|
|
appConfigFile: '', // Optional: Config file for dojox/app
|
|
package: '', // Optional: Location to search package.json (Default: nothing)
|
|
packages: [], // Optional: Array of locations of package.json (Default: nothing)
|
|
require: '', // Optional: Module to require for the build (Default: nothing)
|
|
requires: [], // Optional: Array of modules to require for the build (Default: nothing)
|
|
action: 'release', // Optional: Build action, release, help. clean has been deprecated.
|
|
cwd: libRoot, // Directory to execute build within
|
|
dojoConfig: './dojoBuildLibConfig.js', // Optional: Location of dojoConfig (Default: null),
|
|
// Optional: Base Path to pass at the command line
|
|
// Takes precedence over other basePaths
|
|
// Default: null
|
|
basePath: '.'
|
|
}
|
|
},
|
|
requirejs: {
|
|
/**
|
|
* Grunt task to compile wcDocker as all-in-one and non-minified library
|
|
* into Build/wcDocker.js
|
|
*/
|
|
test: {
|
|
options: {
|
|
baseUrl: './src/lib/',
|
|
out: './src/lib/xwire/build/xwirer.js',
|
|
optimize: 'none',
|
|
//name: 'libs/almond',
|
|
//require-js bootstrap
|
|
include: [
|
|
'xwire/r.layer.js'
|
|
],
|
|
stubModules: [],
|
|
wrap: false,
|
|
paths: {
|
|
dojo: "empty:",
|
|
xdojo: "empty:",
|
|
xide: "empty:"
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
},
|
|
copy: {
|
|
dist_xbox:{
|
|
expand: true,
|
|
src: '**/*',
|
|
dest: './dist/src/xbox',
|
|
cwd: './src/xbox'
|
|
},
|
|
dist_ext:{
|
|
expand: true,
|
|
src: '**/*',
|
|
dest: './dist/src/ext',
|
|
cwd: './src/ext'
|
|
},
|
|
dist_build:{
|
|
expand: true,
|
|
src: '**/*',
|
|
dest: './dist/src/build',
|
|
cwd: './src/build'
|
|
},
|
|
dist_xcf:{
|
|
expand: true,
|
|
src: '**/*',
|
|
dest: './dist/src/xcf',
|
|
cwd: './src/xcf'
|
|
},
|
|
"dist_themes":{
|
|
src:[
|
|
'html-transparent/dist/css/*.css',
|
|
'html-white/dist/css/*.css',
|
|
'html-gray/dist/css/*.css',
|
|
'html-blue/dist/css/*.css'
|
|
],
|
|
dest:'./dist/src/theme',
|
|
expand: true,
|
|
flatten: false,
|
|
cwd:'./src/theme'
|
|
|
|
},
|
|
lib: {
|
|
expand: true,
|
|
src: srcDir + '/**',
|
|
dest: appDir + '/sdk'
|
|
},
|
|
plugins: {
|
|
expand: true,
|
|
cwd: tmpdir,
|
|
src: "<%= " + outprop + ".plugins.rel %>",
|
|
dest: outdir,
|
|
dot: true
|
|
},
|
|
deploy: {
|
|
expand: true,
|
|
cwd: outdir + '<%= amdloader.baseUrl %>',
|
|
src: '**/*',
|
|
dest: deploydir,
|
|
dot: true
|
|
},
|
|
xapp:{
|
|
expand: true,
|
|
cwd: outdir + '<%= amdloader.baseUrl %>',
|
|
src: '**/*',
|
|
dest: './src/lib/xapp/build',
|
|
dot: false
|
|
}
|
|
},
|
|
clean: {
|
|
erase: [outdir],//.concat(libDirsBuild),
|
|
finish: [tmpdir]
|
|
},
|
|
uglify: {
|
|
options: {
|
|
banner: "/* My Custom banner */" + "<%= " + outprop + ".header%>",
|
|
sourceMap: true
|
|
},
|
|
dist: {
|
|
src: "<%= " + outprop + ".modules.abs %>",
|
|
dest: outdir + "<%= " + outprop + ".layerPath %>"
|
|
}
|
|
},
|
|
amdreportjson: {
|
|
dir: outdir
|
|
},
|
|
amdloader: {
|
|
// Everything should be relative to baseUrl
|
|
inlineText: true,
|
|
baseUrl: "./src/lib/",
|
|
// Here goes the config for the amd plugins build process (has, i18n, ecma402...).
|
|
config: {
|
|
'delite/theme': {
|
|
theme: 'bootstrap'
|
|
},
|
|
'requirejs-dplugins/i18n': { locale: 'en-en' },
|
|
"requirejs-dplugins/has": {
|
|
'xcf-ui': false,
|
|
'drivers':false,
|
|
'xexpression':false,
|
|
'xblox-ui':false,
|
|
'xideve':false,
|
|
'xcf':true,
|
|
'php':false,
|
|
'xace':false,
|
|
'filtrex':false,
|
|
'plugins':false,
|
|
'xreload':false,
|
|
'xnode-ui':false,
|
|
'host-node':false,
|
|
'electron':true
|
|
},
|
|
map: {
|
|
'*': {
|
|
'deliteful/Button': 'xdeliteful/Button',
|
|
'deliteful/Slider': 'xdeliteful/Slider',
|
|
'delite/Container': 'xdelite/Container'
|
|
}
|
|
}
|
|
},
|
|
paths: {
|
|
'requirejs-dplugins':'xibm/ibm/requirejs-dplugins',
|
|
'xaction':'xaction/src',
|
|
'xdojo':'xdojo/delite',
|
|
'delite':'xibm/ibm/delite',
|
|
'decor':'xibm/ibm/decor',
|
|
'dpointer':'xibm/ibm/dpointer',
|
|
'deliteful':'xibm/ibm/deliteful',
|
|
'xdeliteful':'xibm/xibm/deliteful',
|
|
'xdelite':'xibm/xibm/delite',
|
|
'requirejs-domready':'xibm/ibm/requirejs-domready',
|
|
'requirejs-text':'xibm/ibm/requirejs-text',
|
|
'jquery':'xibm/ibm/jquery/',
|
|
'lie':'xibm/ibm/lie',
|
|
'ecma402':'xibm/ibm/ecma402'
|
|
},
|
|
packages: [
|
|
{
|
|
name: 'xapp',
|
|
location: 'xapp'
|
|
},
|
|
{
|
|
name: 'xide',
|
|
location: 'xide'
|
|
},
|
|
{
|
|
name: 'requirejs-dplugins',
|
|
location: 'xibm/ibm/requirejs-dplugins'
|
|
}
|
|
]
|
|
},
|
|
// The common build config
|
|
amdbuild: {
|
|
map: {
|
|
jquery: {
|
|
"jquery/src/selector": "jquery/src/selector-native" // don't pull in sizzle
|
|
}
|
|
},
|
|
paths: {
|
|
'angular': 'angular/angular',
|
|
'angular-loader': 'angular-loader/angular-loader',
|
|
'jquery':'xibm/ibm/jquery/dist/jquery',
|
|
'requirejs-dplugins':'xibm/ibm/requirejs-dplugins'
|
|
},
|
|
packages: [
|
|
{
|
|
name: 'xapp',
|
|
location: 'xapp'
|
|
},
|
|
{
|
|
name: 'xide',
|
|
location: 'xide'
|
|
},
|
|
{
|
|
name: 'requirejs-dplugins',
|
|
location: 'xibm/ibm/requirejs-dplugins'
|
|
}
|
|
],
|
|
// dir is the destination of processed files.
|
|
dir: tmpdir,
|
|
//buildPlugin: true,
|
|
|
|
// List of plugins that the build should not try to resolve at build time.
|
|
runtimePlugins: [],
|
|
layers: [
|
|
{
|
|
name: 'main_build',
|
|
include: [
|
|
"xapp/mainr"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
concat: {
|
|
options: { separator: ';\n' },
|
|
dist: common
|
|
},
|
|
config: {
|
|
target: grunt.option('target') || 'html-transparent', // pass --target=html-transparent. possible targets: html-transparent, html-transparent-dark, html-white
|
|
srcFolder: './src/css/commons/sass',
|
|
distFolder: './src/css/commons/stylesheets'
|
|
},
|
|
sass: {
|
|
options: {
|
|
lineNumbers:true,
|
|
importer: function(url, prev, done) {
|
|
var urlPrefix ="";
|
|
if ((/^CSS:/.test(url))) { // if indexOf == true then url.indexOf == 0 == false
|
|
//fix vendor bug
|
|
url = url.replace('../../','');
|
|
return {
|
|
contents: fs.readFileSync(urlPrefix+url.replace('CSS:.', '') + '.css').toString()
|
|
};
|
|
} else {
|
|
return {
|
|
file: url
|
|
};
|
|
}
|
|
},
|
|
sourcemap: 'inline'
|
|
},
|
|
dist: {
|
|
files: [
|
|
{
|
|
expand: true,
|
|
cwd: './src/css/commons/sass/',
|
|
src: ['*.scss'],
|
|
dest: './src/css/commons/stylesheets/',
|
|
ext: '.css'
|
|
}]
|
|
},
|
|
_dist: {
|
|
options: {
|
|
outputStyle: 'expanded',
|
|
precision: 10
|
|
},
|
|
files: {
|
|
"<%= config.distFolder %>/css/application.css":"<%= config.srcFolder %>/sass/application.scss"
|
|
}
|
|
},
|
|
min: {
|
|
options: {
|
|
outputStyle: 'compressed'
|
|
},
|
|
files: {
|
|
"<%= config.distFolder %>/css/application.min.css":"<%= config.srcFolder %>/sass/application.scss"
|
|
}
|
|
}
|
|
},
|
|
watch: {
|
|
syncSass: {
|
|
files: ['<%= config.srcFolder %>/sass/**.scss', '<%= config.srcFolder %>/sass/**.sass'],
|
|
tasks: ['copy:syncTransparentDarkStyles', 'copy:syncWhiteStyles']
|
|
},
|
|
sass: {
|
|
files: [
|
|
'./src/css/commons/sass/**.scss'
|
|
],
|
|
tasks: ['sass:dist']
|
|
}
|
|
|
|
},
|
|
release: {
|
|
options: {
|
|
bump: true, //default: true
|
|
changelog: false, //default: false
|
|
changelogText: '<%= version %>\n', //default: '### <%= version %> - <%= grunt.template.today("yyyy-mm-dd") %>\n'
|
|
file: './dist/package.json', //default: package.json
|
|
add: false, //default: true
|
|
commit: false, //default: true
|
|
tag: false, //default: true
|
|
push: false, //default: true
|
|
pushTags: false, //default: true
|
|
npm: true, //default: true
|
|
npmtag: false, //default: no tag
|
|
indentation: '\t', //default: ' ' (two spaces)
|
|
folder: './dist', //default project root
|
|
tagName: 'some-tag-<%= version %>', //default: '<%= version %>'
|
|
commitMessage: 'check out my release <%= version %>', //default: 'release <%= version %>'
|
|
tagMessage: 'tagging version <%= version %>', //default: 'Version <%= version %>',
|
|
beforeBump: [], // optional grunt tasks to run before file versions are bumped
|
|
afterBump: [], // optional grunt tasks to run after file versions are bumped
|
|
beforeRelease: [], // optional grunt tasks to run after release version is bumped up but before release is packaged
|
|
afterRelease: [], // optional grunt tasks to run after release is packaged
|
|
updateVars: [], // optional grunt config objects to update (this will update/set the version property on the object specified)
|
|
_github: {
|
|
apiRoot: 'https://git.example.com/v3', // Default: https://github.com
|
|
repo: 'geddski/grunt-release', //put your user/repo here
|
|
accessTokenVar: 'GITHUB_ACCESS_TOKE', //ENVIRONMENT VARIABLE that contains GitHub Access Token
|
|
|
|
// Or you can use username and password env variables, we discourage you to do so
|
|
usernameVar: 'GITHUB_USERNAME', //ENVIRONMENT VARIABLE that contains GitHub username
|
|
passwordVar: 'GITHUB_PASSWORD' //ENVIRONMENT VARIABLE that contains GitHub password
|
|
}
|
|
}
|
|
}
|
|
|
|
});
|
|
|
|
grunt.loadTasks("./tasks/");
|
|
grunt.loadNpmTasks('grunt-sass');
|
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
|
|
|
// Load plugins
|
|
grunt.loadNpmTasks("grunt-contrib-jshint");
|
|
grunt.loadNpmTasks("grunt-contrib-less");
|
|
grunt.loadNpmTasks("grunt-contrib-uglify");
|
|
grunt.loadNpmTasks("grunt-extend-config");
|
|
grunt.loadNpmTasks('grunt-contrib-clean');
|
|
grunt.loadNpmTasks("grunt-contrib-copy");
|
|
grunt.loadNpmTasks('grunt-contrib-requirejs');
|
|
grunt.loadNpmTasks('grunt-shell');
|
|
grunt.loadNpmTasks('grunt-dojo');
|
|
grunt.registerTask('themes', ['shell:themes']);
|
|
grunt.loadNpmTasks('grunt-contrib-cssmin');
|
|
grunt.loadNpmTasks("grunt-contrib-concat");
|
|
grunt.loadNpmTasks('grunt-git');
|
|
grunt.loadNpmTasks('grunt-release');
|
|
grunt.registerTask('buildXFILE',null, function () {
|
|
var packageName= 'xfile';
|
|
var optimize = grunt.option('uglify') ===true ? 'uglify2' : 'none';
|
|
|
|
var all = false;
|
|
var allPackages = [
|
|
'xide',
|
|
'xlang',
|
|
'dojo',
|
|
'xwire',
|
|
'xblox',
|
|
'xideve',
|
|
'xwire',
|
|
'dcl',
|
|
'xaction',
|
|
'xblox',
|
|
'dstore',
|
|
'xcf',
|
|
'delite',
|
|
'decor',
|
|
'wcDocker',
|
|
'xdocker',
|
|
'dgrid',
|
|
'xgrid',
|
|
'requirejs-domready'
|
|
];
|
|
|
|
var paths = {
|
|
'requirejs-dplugins/':'xibm/ibm/requirejs-dplugins/'
|
|
};
|
|
|
|
var main = 'mainr.js';
|
|
var _main = grunt.option('main');
|
|
if(_main){
|
|
main = _main + '.js';
|
|
}
|
|
if(all!==true) {
|
|
for (var i = 0; i < allPackages.length; i++) {
|
|
var path = allPackages[i];
|
|
if (path !== packageName) {
|
|
paths[path] = "empty:";
|
|
}
|
|
}
|
|
}
|
|
grunt.extendConfig({
|
|
requirejs: {
|
|
'buildLib':{
|
|
options: {
|
|
baseUrl: './src/lib/',
|
|
out: './src/lib/' + packageName +'/build/' + packageName + 'r.js',
|
|
optimize: optimize,
|
|
include: [
|
|
packageName + '/' + main
|
|
],
|
|
exclude: [
|
|
|
|
],
|
|
stubModules: [],
|
|
wrap: false,
|
|
paths: paths,
|
|
packages: [
|
|
{
|
|
name: 'requirejs-dplugins',
|
|
location: 'xibm/ibm/requirejs-dplugins'
|
|
},
|
|
{
|
|
name: 'delite',
|
|
location: 'xibm/ibm/delite'
|
|
},
|
|
{
|
|
name: 'decor',
|
|
location: 'xibm/ibm/decor'
|
|
},
|
|
{
|
|
name: 'requirejs-domready',
|
|
location: 'xibm/ibm/requirejs-domready'
|
|
},
|
|
{
|
|
name: 'wcDocker',
|
|
location: 'wcDocker/src'
|
|
},
|
|
{
|
|
name: 'xgrid',
|
|
location: 'xgrid'
|
|
},
|
|
{
|
|
name: 'dgrid',
|
|
location: 'dgrid'
|
|
},
|
|
{
|
|
name: 'xide',
|
|
location: 'xide'
|
|
},
|
|
{
|
|
name: 'xace',
|
|
location: 'xace'
|
|
},
|
|
{
|
|
name: 'xaction',
|
|
location: 'xaction/src'
|
|
},
|
|
{
|
|
name: 'xdocker',
|
|
location: 'xdocker'
|
|
},
|
|
{
|
|
name: 'xfile',
|
|
location: 'xfile'
|
|
},
|
|
{
|
|
name: 'dstore',
|
|
location: 'dstore'
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
});
|
|
grunt.task.run('requirejs:buildLib');
|
|
grunt.task.run('cssmin:xfile');
|
|
});
|
|
|
|
grunt.registerTask('buildLayerR',null, function () {
|
|
|
|
var packageName= grunt.option('package');
|
|
var optimize = grunt.option('uglify') ===true ? 'uglify2' : 'none';
|
|
var all = grunt.option('all') === true ? true : false;
|
|
var allPackages = [
|
|
'xide',
|
|
'xlang',
|
|
'dojo',
|
|
'xwire',
|
|
'xblox',
|
|
'xideve',
|
|
'xwire',
|
|
'dcl',
|
|
'xaction',
|
|
'xblox',
|
|
'dstore',
|
|
'xcf',
|
|
'delite',
|
|
'decor',
|
|
'wcDocker',
|
|
'xdocker',
|
|
'dgrid',
|
|
'xgrid',
|
|
//'xdojo',
|
|
'requirejs-domready'
|
|
];
|
|
var paths = {
|
|
'requirejs-dplugins/':'xibm/ibm/requirejs-dplugins/'
|
|
};
|
|
|
|
var main = 'main.js';
|
|
var _main = grunt.option('main');
|
|
if(_main){
|
|
main = _main + '.js';
|
|
}
|
|
if(all!==true) {
|
|
for (var i = 0; i < allPackages.length; i++) {
|
|
console.error('remove package');
|
|
var path = allPackages[i];
|
|
if (path !== packageName) {
|
|
paths[path] = "empty:";
|
|
}
|
|
}
|
|
}
|
|
grunt.extendConfig({
|
|
requirejs: {
|
|
'buildLib':{
|
|
options: {
|
|
baseUrl: './src/lib/',
|
|
out: './src/lib/' + packageName +'/build/' + packageName + 'r.js',
|
|
optimize: optimize,
|
|
include: [
|
|
packageName + '/' + main
|
|
],
|
|
exclude: [
|
|
|
|
],
|
|
stubModules: [],
|
|
wrap: false,
|
|
paths: paths,
|
|
packages: [
|
|
{
|
|
name: 'requirejs-dplugins',
|
|
location: 'xibm/ibm/requirejs-dplugins'
|
|
},
|
|
{
|
|
name: 'delite',
|
|
location: 'xibm/ibm/delite'
|
|
},
|
|
{
|
|
name: 'decor',
|
|
location: 'xibm/ibm/decor'
|
|
},
|
|
{
|
|
name: 'requirejs-domready',
|
|
location: 'xibm/ibm/requirejs-domready'
|
|
},
|
|
{
|
|
name: 'wcDocker',
|
|
location: 'wcDocker/src'
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
});
|
|
grunt.task.run('requirejs:buildLib');
|
|
});
|
|
|
|
/**
|
|
* delite package
|
|
*/
|
|
grunt.registerTask('buildDelite',null, function () {
|
|
libRoot +='/xibm/ibm/';
|
|
var packageName= grunt.option('package');
|
|
var optimize = grunt.option('uglify') ===true ? 'uglify2' : 'none';
|
|
var packageSourcePrefix = "/";
|
|
try {
|
|
packageSourcePrefix = fs.lstatSync(libRoot + '/' + packageName + '/src') ? '/src/' : '/';
|
|
}catch(e){}
|
|
|
|
var allPackages = [
|
|
'xide',
|
|
'xlang',
|
|
'dojo',
|
|
'xwire',
|
|
'xblox',
|
|
'xideve',
|
|
'xwire',
|
|
'dcl',
|
|
'xaction',
|
|
'xblox',
|
|
'xcf',
|
|
'delite',
|
|
'decor',
|
|
'requirejs-domready',
|
|
'dpointer'
|
|
];
|
|
|
|
var paths = {
|
|
|
|
};
|
|
|
|
var main = 'main.js';
|
|
var _main = grunt.option('main');
|
|
if(_main){
|
|
main = _main + '.js';
|
|
}
|
|
|
|
for (var i = 0; i < allPackages.length; i++) {
|
|
var path = allPackages[i];
|
|
if(path!==packageName){
|
|
paths[path] = "empty:";
|
|
}
|
|
}
|
|
grunt.extendConfig({
|
|
requirejs: {
|
|
'buildLib':{
|
|
options: {
|
|
optimize: optimize,
|
|
baseUrl: './src/lib/xibm/ibm/',
|
|
out: './src/lib/xibm/xibm/' + packageName +'/build/' + packageName + 'r.js',
|
|
include: [
|
|
'../xibm/' +packageName + '/' + main
|
|
],
|
|
exclude: [
|
|
"dojo/dojo", "dojo/has", "dcl/dcl"
|
|
],
|
|
stubModules: [],
|
|
wrap: false,
|
|
paths: paths,
|
|
packages: [
|
|
|
|
]
|
|
}
|
|
}
|
|
}
|
|
});
|
|
grunt.task.run('requirejs:buildLib');
|
|
});
|
|
|
|
grunt.registerTask('buildLayer',null, function () {
|
|
var packageName= grunt.option('package');
|
|
var packageBuildDirectory = './build' +'/'+packageName+'/'+packageName;
|
|
var packageSourcePrefix = "/";
|
|
try {
|
|
packageSourcePrefix = fs.lstatSync(libRoot + '/' + packageName + '/src') ? '/src/' : '/';
|
|
}catch(e){}
|
|
|
|
var packages = [];
|
|
var p = {};
|
|
p.name = packageName;
|
|
p.location = packageName + packageSourcePrefix;
|
|
packages.push(p);
|
|
|
|
grunt.extendConfig({
|
|
dojo: {
|
|
'buildLib': {
|
|
options: {
|
|
profile: './' + packageName + packageSourcePrefix + '/layer.profile.js', // Profile for build
|
|
profiles: [], // Optional: Array of Profiles for build
|
|
releaseDir: releaseDirLibs+'/' + packageName,
|
|
require: packageName + packageSourcePrefix + '/main.js', // Optional: Module to require for the build (Default: nothing)
|
|
dojoConfig: './dojoBuildLibConfig.js',
|
|
ignoreErrors:true,
|
|
package: packageName + '',
|
|
action: 'release'
|
|
}
|
|
}
|
|
}
|
|
});
|
|
grunt.extendConfig({
|
|
copy: {
|
|
'build': {
|
|
src:packageName +'.js',
|
|
expand: true,
|
|
flatten: false,
|
|
dest: buildLibDest + '/' + packageName + '/',
|
|
cwd:packageBuildDirectory
|
|
}
|
|
}
|
|
});
|
|
grunt.task.run('dojo:buildLib');
|
|
grunt.task.run('copy:build');
|
|
});
|
|
|
|
grunt.registerTask('buildDeliteApp',null, function () {
|
|
var packageName= grunt.option('package');
|
|
var optimize = grunt.option('uglify') ===true ? 'uglify2' : 'none';
|
|
var allPackages = [
|
|
'xide',
|
|
'xlang',
|
|
'dojo',
|
|
'xwire',
|
|
'xblox',
|
|
'xideve',
|
|
'xwire',
|
|
'dcl',
|
|
'xaction',
|
|
'xblox',
|
|
'dstore',
|
|
'xcf',
|
|
'delite',
|
|
'decor',
|
|
'requirejs-domready',
|
|
'xapp',
|
|
'xnode',
|
|
'xfile',
|
|
'xdeliteful'
|
|
];
|
|
|
|
var paths = {
|
|
'requirejs-dplugins/':'xibm/ibm/requirejs-dplugins/',
|
|
'requirejs-text':'xibm/ibm/requirejs-text',
|
|
'requirejs-domready':'xibm/ibm/requirejs-domready',
|
|
'xaction':'xaction/src',
|
|
'xdojo':'xdojo/delite',
|
|
'dpointer':'xibm/ibm/dpointer',
|
|
'decor':'xibm/ibm/decor',
|
|
'delite':'xibm/ibm/delite',
|
|
'deliteful':'xibm/ibm/deliteful',
|
|
'xdeliteful':'xibm/xibm/deliteful',
|
|
"nxapp":"../xassdsd"
|
|
};
|
|
|
|
var main = 'main.js';
|
|
var _main = grunt.option('main');
|
|
if(_main){
|
|
main = _main + '.js';
|
|
}
|
|
grunt.extendConfig({
|
|
requirejs: {
|
|
'buildLib':{
|
|
options: {
|
|
baseUrl: './src/lib/',
|
|
out: './src/lib/' + packageName +'/build/' + packageName + 'r.js',
|
|
optimize: optimize,
|
|
include: [
|
|
packageName + '/' + main
|
|
],
|
|
exclude: [
|
|
'delite/theme'
|
|
],
|
|
stubModules: [],
|
|
wrap: false,
|
|
paths: paths,
|
|
mainConfigFile:'src/lib/xibm/build_config.js',
|
|
packages: [
|
|
{
|
|
name: 'requirejs-dplugins',
|
|
location: 'xibm/ibm/requirejs-dplugins'
|
|
},
|
|
{
|
|
name: 'delite',
|
|
location: 'xibm/ibm/delite'
|
|
},
|
|
{
|
|
name: 'dcl2',
|
|
location: 'xibm/ibm/dcl2'
|
|
},
|
|
{
|
|
name: 'decor',
|
|
location: 'xibm/ibm/decor'
|
|
},
|
|
{
|
|
name: 'requirejs-domready',
|
|
location: 'xibm/ibm/requirejs-domready'
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
});
|
|
grunt.task.run('requirejs:buildLib');
|
|
});
|
|
|
|
grunt.registerTask('themes', [
|
|
'shell:claro',
|
|
'shell:themeWhite',
|
|
'shell:themeTransparent'
|
|
]);
|
|
|
|
// The main build task.
|
|
grunt.registerTask("amdbuild2", function (amdloader) {
|
|
console.error('-');
|
|
function useAmdDepsScan(name) {
|
|
var layerToGetDeps = [
|
|
"delite/layer",
|
|
"decor/layer",
|
|
"deliteful/layer",
|
|
"ecma402/layer",
|
|
"dtreemap/layer"
|
|
];
|
|
return layerToGetDeps.indexOf(name) >= 0;
|
|
}
|
|
|
|
// Create tasks list
|
|
var tasksList = [];
|
|
var name = this.name;
|
|
var layers = grunt.config(name).layers;
|
|
|
|
layers.forEach(function (layer) {
|
|
if (useAmdDepsScan(layer.name)) {
|
|
tasksList.push("amddepsscan:" + layer.name + ":" + name + ":" + amdloader);
|
|
} else {
|
|
tasksList.push("amddirscan:" + layer.name + ":" + name + ":" + amdloader);
|
|
}
|
|
tasksList.push("amdserialize:" + layer.name + ":" + name + ":" + amdloader + ":" + outprop);
|
|
tasksList.push("uglify");
|
|
tasksList.push("correctSourceMap:" + layer.name + ":" + name + ":" + outdir);
|
|
// Remove references to useless html template before copying plugins files.
|
|
tasksList.push("filterPluginFiles:\\.(html|json)\\.js$:" + outprop);
|
|
tasksList.push("copy:plugins");
|
|
});
|
|
/*
|
|
console.error('name : ' + name);
|
|
var name = this.name,
|
|
layers = grunt.config(name).layers;
|
|
|
|
grunt.task.run("clean:erase");
|
|
|
|
// Run all the tasks for all the layers with the right arguments.
|
|
layers.forEach(function (layer) {
|
|
grunt.task.run("amddepsscan:" + layer.name + ":" + name + ":" + amdloader);
|
|
grunt.task.run("amdshim:" + layer.name + ":" + name + ":" + amdloader);
|
|
grunt.task.run("amdserialize:" + layer.name + ":" + name + ":" + amdloader + ":" + outprop);
|
|
// Generate a minified layer only if the name ends with ".min".
|
|
if (layer.name.search(/\.min$/) !== -1) {
|
|
//grunt.task.run("uglify");
|
|
} else {
|
|
//grunt.task.run("concat");
|
|
}
|
|
grunt.task.run("copy:plugins");
|
|
});
|
|
|
|
*/
|
|
grunt.task.run("amdreportjson:" + name);
|
|
});
|
|
|
|
|
|
grunt.registerTask('amdbuild', function (amdloader) {
|
|
var name = this.name, layers = grunt.config(name).layers;
|
|
layers.forEach(function (layer) {
|
|
grunt.task.run("amdshim:" + layer.name + ":" + name + ":" + amdloader);
|
|
//console.log('amddepsscan:' + layer.name + ':' + name + ':' + amdloader);
|
|
grunt.task.run('amddepsscan:' + layer.name + ':' + name + ':' + amdloader);
|
|
grunt.task.run('amdserialize:' + layer.name + ':' + name + ':' + outprop);
|
|
grunt.task.run('concat');
|
|
//grunt.task.run('closure-compiler');
|
|
//grunt.task.run("uglify");
|
|
grunt.task.run('copy:plugins');
|
|
grunt.task.run("amdreportjson:" + name);
|
|
});
|
|
});
|
|
grunt.loadNpmTasks("grunt-amd-build");
|
|
grunt.registerTask('update-dist', [
|
|
'copy:dist_xbox',
|
|
'copy:dist_xcf',
|
|
'copy:dist_ext',
|
|
'copy:dist_build',
|
|
'copy:dist_themes',
|
|
'release'
|
|
]);
|
|
grunt.registerTask('build-xapp', [
|
|
'amdbuild:amdloader',
|
|
'copy:xapp'
|
|
//'amdreportjson:amdbuild'
|
|
//'clean:finish'
|
|
]);
|
|
}; |