Explorar o código

Add more config

sebavan %!s(int64=4) %!d(string=hai) anos
pai
achega
6f1beb3e63

+ 9 - 2
Tools/Config/config.js

@@ -23,6 +23,10 @@ const tempTypingsFilePath = path.join(tempFolder, tempTypingsFileName);
 
 const tscPath = path.resolve(rootFolder, "node_modules/typescript/bin/tsc");
 
+const sharedUiComponentsFilesGlob = config.build.sharedUiComponentsSrc + "/**/*";
+const sharedUiComponentsSrcPath = path.join(rootFolder, config.build.sharedUiComponentsSrc);
+const es6SharedUiComponentsSrcPath = path.join(sourceES6Folder, config.build.sharedUiComponentsSrc);
+
 config.computed = {
     rootFolder,
     tempFolder,
@@ -39,7 +43,10 @@ config.computed = {
     tempTypingsFileName,
     tempTypingsAMDFilePath,
     tempTypingsFilePath,
-    tscPath
+    tscPath,
+    sharedUiComponentsFilesGlob,
+    sharedUiComponentsSrcPath,
+    es6SharedUiComponentsSrcPath,
 }
 
 config.additionalNpmPackages.forEach(package => {
@@ -90,7 +97,7 @@ allModules.map(function(module) {
     const packageJSONPath = settings.build.packageJSON ? 
         path.join(rootFolder, settings.build.packageJSON) : 
         path.join(distDirectory, 'package.json');
-
+    
     settings.computed = {
         mainDirectory,
         distDirectory,

+ 6 - 5
Tools/Config/config.json

@@ -36,7 +36,8 @@
             "BABYLON"
         ],
         "typedocJSON": "../../.temp/babylon.typedoc.json",
-        "typedocValidationBaseline": "../../dist/preview release/typedocValidationBaseline.json"
+        "typedocValidationBaseline": "../../dist/preview release/typedocValidationBaseline.json",
+        "sharedUiComponentsSrc": "sharedUiComponents"
     },
     "modules": [
         "core",
@@ -543,6 +544,7 @@
                 "re-resizable",
                 "glTF"
             ],
+            "sharedUiComponents": "src/sharedUiComponents/",
             "umd": {
                 "packageName": "babylonjs-inspector",
                 "webpackRoot": "INSPECTOR",
@@ -572,8 +574,7 @@
                 "webpackBuild": true,
                 "buildDependencies": [
                     "node_modules/re-resizable/lib/index.es5.js",
-                    "Tools/**/*",
-                    "sharedUiComponents/**/*"
+                    "Tools/**/*"
                 ],
                 "packageName": "@babylonjs/inspector",
                 "readme": "dist/preview release/inspector/readme-es6.md",
@@ -607,6 +608,7 @@
                 "glTF",
                 "file-saver"
             ],
+            "sharedUiComponents": "src/sharedUiComponents/",
             "umd": {
                 "packageName": "babylonjs-node-editor",
                 "webpackRoot": "NODEEDITOR",
@@ -627,8 +629,7 @@
                 "webpackBuild": true,
                 "buildDependencies": [
                     "node_modules/re-resizable/lib/index.es5.js",
-                    "Tools/**/*",
-                    "sharedUiComponents/**/*"
+                    "Tools/**/*"
                 ],
                 "packageName": "@babylonjs/node-editor",
                 "readme": "dist/preview release/nodeEditor/readme-es6.md",

+ 18 - 11
Tools/Gulp/tasks/gulpTasks-librariesES6.js

@@ -79,6 +79,11 @@ var dep = function(settings) {
             const dependencyPath = path.join(config.computed.rootFolder, pathName);
             copyPaths.push(dependencyPath);
         }
+
+        if (settings.build.sharedUiComponents) {
+            const dependencyPath = path.join(config.computed.rootFolder, config.computed.sharedUiComponentsFilesGlob);
+            copyPaths.push(dependencyPath);
+        }
     }
 
     return gulp.src(copyPaths, { base: config.computed.rootFolder })
@@ -268,15 +273,17 @@ var copyWebpackDist = function(settings, module) {
 /**
  * Generate our required symlinked for the shared components.
  */
-var generateSymlink = function(done) {
-    var sharedUiComponents = path.resolve(__dirname, "../../../.temp/sourceES6/sharedUiComponents/");
-    var inspectorSharedUiComponents = path.resolve(__dirname, "../../../.temp/sourceES6/inspector/src/sharedUiComponents/");
-    var nodeEditorSharedUiComponents = path.resolve(__dirname, "../../../.temp/sourceES6/nodeEditor/src/sharedUiComponents/");
-
-    symlinkDir(sharedUiComponents, inspectorSharedUiComponents).then(() => {
-        symlinkDir(sharedUiComponents, nodeEditorSharedUiComponents).then(() => {
-             done();
-        });
+var generateSharedUiComponents = function(settings, done) {
+    if (!settings.build.sharedUiComponents) {
+        done();
+        return;
+    }
+
+    var es6SrcSharedUiComponents = config.computed.es6SharedUiComponentsSrcPath;
+    var es6SharedUiComponents = path.resolve(settings.computed.sourceES6Directory, settings.build.sharedUiComponents);
+
+    symlinkDir(es6SrcSharedUiComponents, es6SharedUiComponents).then(() => {
+        done();
     });
 };
 
@@ -294,7 +301,7 @@ function buildES6Library(settings, module) {
     }
     var copySource = function() { return source(settings); };
     var dependencies = function() { return dep(settings); };
-    var symlink = function(cb) { return generateSymlink(cb); };
+    var sharedUiComponents = function(cb) { return generateSharedUiComponents(settings, cb); };
     var adaptSourceImportPaths = function() { return modifySourcesImports(settings); };
     var adaptSourceConstants = function() { return modifySourcesConstants(settings); };
     var adaptTsConfigImportPaths = function(cb) { return modifyTsConfig(settings, cb); };
@@ -315,7 +322,7 @@ function buildES6Library(settings, module) {
         ];
     }
 
-    tasks.push(...cleanAndShaderTasks, copySource, dependencies, symlink, adaptSourceImportPaths, adaptSourceConstants, adaptTsConfigImportPaths, ...buildSteps);
+    tasks.push(...cleanAndShaderTasks, copySource, dependencies, sharedUiComponents, adaptSourceImportPaths, adaptSourceConstants, adaptTsConfigImportPaths, ...buildSteps);
 
     return gulp.series.apply(this, tasks);
 }

+ 43 - 10
Tools/Gulp/tasks/gulpTasks-symlink.js

@@ -3,17 +3,50 @@ var gulp = require("gulp");
 var symlinkDir = require('symlink-dir')
 var path = require('path')
 
+// Import Build Config
+var config = require("../../Config/config.js");
+
 /**
  * Generate our required symlinked for the shared components.
  */
-gulp.task("generate-symlinks", function(done) {
-    var sharedUiComponents = path.resolve(__dirname, "../../../sharedUiComponents/");
-    var inspectorSharedUiComponents = path.resolve(__dirname, "../../../inspector/src/sharedUiComponents/");
-    var nodeEditorSharedUiComponents = path.resolve(__dirname, "../../../nodeEditor/src/sharedUiComponents/");
-
-    symlinkDir(sharedUiComponents, inspectorSharedUiComponents).then(() => {
-        symlinkDir(sharedUiComponents, nodeEditorSharedUiComponents).then(() => {
-             done();
-        });
+var generateSharedUiComponents = function(settings, done) {
+    if (!settings.build.sharedUiComponents) {
+        done();
+        return;
+    }
+
+    var sharedUiComponents = config.computed.sharedUiComponentsSrcPath;
+    var umdSharedUiComponents = path.resolve(settings.computed.mainDirectory, settings.build.sharedUiComponents);
+
+    symlinkDir(sharedUiComponents, umdSharedUiComponents).then(() => {
+        done();
     });
-});
+};
+
+/**
+ * Dynamic build SymLinks.
+ */
+function buildSymLinks(settings) {
+    // Creates the required tasks.
+    var tasks = [];
+
+    var sharedUiComponents = function(cb) { return generateSharedUiComponents(settings, cb); };
+
+    tasks.push(sharedUiComponents);
+
+    return gulp.series.apply(this, tasks);
+}
+
+/**
+ * Dynamic symlinks creation.
+ */
+config.modules.map(function(module) {
+    const settings = config[module];
+    gulp.task(module + "-symlinks", buildSymLinks(settings));
+});
+
+/**
+ * Build all es 6 libs.
+ */
+gulp.task("generate-symlinks", gulp.series(config.modules.map((module) => module + "-symlinks")));
+