Browse Source

Adding custom.config.json for custom build

David Catuhe 8 years ago
parent
commit
083fd423ff
2 changed files with 221 additions and 0 deletions
  1. 200 0
      Tools/Gulp/custom.config.json
  2. 21 0
      Tools/Gulp/gulpfile.js

+ 200 - 0
Tools/Gulp/custom.config.json

@@ -0,0 +1,200 @@
+{
+  "build": {
+    "filename": "babylon.custom.max.js",
+    "minFilename": "babylon.custom.js",
+    "outputDirectory": "../../dist/preview release",
+    "srcOutputDirectory": "../../src/"
+  },
+  "core": {
+    "typescript": [
+      "../../src/**/*.ts",
+      "!../../src/**/*.d.ts"
+    ],
+    "files": [
+      "../../src/Math/babylon.math.js",
+      "../../src/babylon.mixins.js",
+      "../../src/Tools/babylon.decorators.js",
+      "../../src/Tools/babylon.observable.js",
+      "../../src/Tools/babylon.database.js",
+      "../../src/Tools/babylon.tools.tga.js",
+      "../../src/Tools/babylon.smartArray.js",
+      "../../src/Tools/babylon.stringDictionary.js",
+      "../../src/Tools/babylon.tools.js",
+      "../../src/States/babylon.alphaCullingState.js",
+      "../../src/States/babylon.depthCullingState.js",
+      "../../src/States/babylon.stencilState.js",
+      "../../src/babylon.engine.js",
+      "../../src/babylon.node.js",
+      "../../src/Tools/babylon.filesInput.js",
+      "../../src/Collisions/babylon.pickingInfo.js",
+      "../../src/Culling/babylon.boundingSphere.js",
+      "../../src/Culling/babylon.boundingBox.js",
+      "../../src/Culling/babylon.boundingInfo.js",
+      "../../src/Culling/babylon.ray.js",
+      "../../src/Mesh/babylon.abstractMesh.js",
+      "../../src/Lights/babylon.light.js",
+      "../../src/Lights/babylon.pointLight.js",
+      "../../src/Lights/babylon.spotLight.js",
+      "../../src/Lights/babylon.hemisphericLight.js",
+      "../../src/Lights/babylon.directionalLight.js",
+      "../../src/Lights/Shadows/babylon.shadowGenerator.js",
+      "../../src/Collisions/babylon.collider.js",
+      "../../src/Collisions/babylon.collisionCoordinator.js",
+      "../../src/Cameras/babylon.camera.js",
+      "../../src/Cameras/babylon.cameraInputsManager.js",
+      "../../src/Cameras/Inputs/babylon.freecamera.input.mouse.js",
+      "../../src/Cameras/Inputs/babylon.freecamera.input.keyboard.js",
+      "../../src/Cameras/Inputs/babylon.freecamera.input.touch.js",
+      "../../src/Cameras/Inputs/babylon.freecamera.input.deviceorientation.js",
+      "../../src/Cameras/Inputs/babylon.freecamera.input.gamepad.js",
+      "../../src/Cameras/Inputs/babylon.arcrotatecamera.input.keyboard.js",
+      "../../src/Cameras/Inputs/babylon.arcrotatecamera.input.mousewheel.js",
+      "../../src/Cameras/Inputs/babylon.arcrotatecamera.input.pointers.js",
+      "../../src/Cameras/Inputs/babylon.arcrotatecamera.input.gamepad.js",
+      "../../src/Cameras/Inputs/babylon.arcrotatecamera.input.vrdeviceorientation.js",
+      "../../src/Cameras/babylon.targetCamera.js",
+      "../../src/Cameras/babylon.freeCamera.js",
+      "../../src/Cameras/babylon.freeCameraInputsManager.js",
+      "../../src/Cameras/babylon.followCamera.js",
+      "../../src/Cameras/babylon.touchCamera.js",
+      "../../src/Cameras/babylon.arcRotateCamera.js",
+      "../../src/Cameras/babylon.arcRotateCameraInputsManager.js",
+      "../../src/Rendering/babylon.renderingManager.js",
+      "../../src/Rendering/babylon.renderingGroup.js",
+      "../../src/babylon.scene.js",
+      "../../src/Mesh/babylon.buffer.js",
+      "../../src/Mesh/babylon.vertexBuffer.js",
+      "../../src/Mesh/babylon.instancedMesh.js",
+      "../../src/Mesh/babylon.mesh.js",
+      "../../src/Mesh/babylon.subMesh.js",
+      "../../src/Mesh/babylon.meshBuilder.js",
+      "../../src/Materials/Textures/babylon.baseTexture.js",
+      "../../src/Materials/Textures/babylon.texture.js",
+      "../../src/Materials/Textures/babylon.cubeTexture.js",
+      "../../src/Materials/Textures/babylon.renderTargetTexture.js",
+      "../../src/Materials/Textures/Procedurals/babylon.proceduralTexture.js",
+      "../../src/Materials/Textures/babylon.mirrorTexture.js",
+      "../../src/Materials/Textures/babylon.refractionTexture.js",
+      "../../src/Materials/Textures/babylon.dynamicTexture.js",
+      "../../src/Materials/Textures/babylon.videoTexture.js",
+      "../../src/Materials/Textures/Procedurals/babylon.customProceduralTexture.js",
+      "../../src/Materials/babylon.effect.js",
+      "../../src/Materials/babylon.materialHelper.js",
+      "../../src/Materials/babylon.fresnelParameters.js",
+      "../../src/Materials/babylon.material.js",
+      "../../src/Materials/babylon.standardMaterial.js",
+      "../../src/Materials/babylon.multiMaterial.js",
+      "../../src/Loading/babylon.sceneLoader.js",
+      "../../src/Loading/Plugins/babylon.babylonFileLoader.js",
+      "../../src/Sprites/babylon.spriteManager.js",
+      "../../src/Sprites/babylon.sprite.js",
+      "../../src/Layer/babylon.layer.js",
+      "../../src/Particles/babylon.particle.js",
+      "../../src/Particles/babylon.particleSystem.js",
+      "../../src/Animations/babylon.animation.js",
+      "../../src/Animations/babylon.animatable.js",
+      "../../src/Animations/babylon.easing.js",
+      "../../src/Bones/babylon.bone.js",
+      "../../src/Bones/babylon.boneIKController.js",
+      "../../src/Bones/babylon.boneLookController.js",
+      "../../src/Bones/babylon.skeleton.js",
+      "../../src/PostProcess/babylon.postProcess.js",
+      "../../src/PostProcess/babylon.postProcessManager.js",
+      "../../src/PostProcess/babylon.passPostProcess.js",
+      "../../src/Physics/babylon.physicsJoint.js",
+      "../../src/Physics/babylon.physicsImpostor.js",
+      "../../src/Physics/babylon.physicsEngine.js",
+      "../../src/Mesh/babylon.mesh.vertexData.js",
+      "../../src/Tools/babylon.tags.js",
+      "../../src/Tools/babylon.andOrNotEvaluator.js",
+      "../../src/PostProcess/RenderPipeline/babylon.postProcessRenderPass.js",
+      "../../src/PostProcess/RenderPipeline/babylon.postProcessRenderEffect.js",
+      "../../src/PostProcess/RenderPipeline/babylon.postProcessRenderPipeline.js",
+      "../../src/PostProcess/RenderPipeline/babylon.postProcessRenderPipelineManager.js",
+      "../../src/Rendering/babylon.boundingBoxRenderer.js",
+      "../../src/Actions/babylon.condition.js",
+      "../../src/Actions/babylon.action.js",
+      "../../src/Actions/babylon.actionManager.js",
+      "../../src/Actions/babylon.interpolateValueAction.js",
+      "../../src/Actions/babylon.directActions.js",
+      "../../src/Mesh/babylon.geometry.js",
+      "../../src/Mesh/babylon.groundMesh.js",
+      "../../src/Mesh/babylon.instancedMesh.js",
+      "../../src/Mesh/babylon.linesMesh.js",
+      "../../src/Tools/babylon.loadingScreen.js",
+      "../../src/Audio/babylon.audioEngine.js",
+      "../../src/Audio/babylon.sound.js",
+      "../../src/Audio/babylon.soundtrack.js",
+      "../../src/Layer/babylon.highlightlayer.js",
+      "../../src/Math/babylon.math.SIMD.js",
+      "../../src/Tools/babylon.rectPackingMap.js",
+      "../../src/Tools/babylon.dynamicFloatArray.js",
+      "../../src/Materials/Textures/babylon.fontTexture.js",
+      "../../src/Materials/Textures/babylon.mapTexture.js",
+      "../../src/Materials/babylon.shaderMaterial.js",
+      "../../src/Tools/babylon.tools.dds.js",
+      "../../src/Physics/Plugins/babylon.cannonJSPlugin.js",
+      "../../src/Physics/Plugins/babylon.oimoJSPlugin.js",
+      "../../src/PostProcess/babylon.displayPassPostProcess.js",
+      "../../src/Mesh/babylon.meshSimplification.js",
+      "../../src/Tools/babylon.sceneSerializer.js",
+      "../../src/Tools/babylon.earcut.js",
+      "../../src/Mesh/babylon.csg.js",
+      "../../src/PostProcess/babylon.vrDistortionCorrectionPostProcess.js",
+      "../../src/Tools/babylon.virtualJoystick.js",
+      "../../src/Cameras/babylon.virtualJoysticksCamera.js",      
+      "../../src/Cameras/Inputs/babylon.freecamera.input.virtualjoystick.js",
+      "../../src/PostProcess/babylon.anaglyphPostProcess.js",
+      "../../src/Rendering/babylon.outlineRenderer.js",
+      "../../src/Tools/babylon.assetsManager.js",
+      "../../src/Cameras/VR/babylon.vrCameraMetrics.js",
+      "../../src/Cameras/VR/babylon.webVRCamera.js",
+      "../../src/Tools/babylon.sceneOptimizer.js",
+      "../../src/Mesh/babylon.meshLODLevel.js",
+      "../../src/Materials/Textures/babylon.rawTexture.js",
+      "../../src/Mesh/babylon.polygonMesh.js",
+      "../../src/Culling/Octrees/babylon.octree.js",
+      "../../src/Culling/Octrees/babylon.octreeBlock.js",
+      "../../src/PostProcess/babylon.blurPostProcess.js",
+      "../../src/PostProcess/babylon.refractionPostProcess.js",
+      "../../src/PostProcess/babylon.blackAndWhitePostProcess.js",
+      "../../src/PostProcess/babylon.convolutionPostProcess.js",
+      "../../src/PostProcess/babylon.filterPostProcess.js",
+      "../../src/PostProcess/babylon.fxaaPostProcess.js",
+      "../../src/PostProcess/babylon.stereoscopicInterlacePostProcess.js",
+      "../../src/LensFlare/babylon.lensFlare.js",
+      "../../src/LensFlare/babylon.lensFlareSystem.js",
+      "../../src/Cameras/babylon.deviceOrientationCamera.js",
+      "../../src/Cameras/VR/babylon.vrDeviceOrientationCamera.js",
+      "../../src/Cameras/babylon.universalCamera.js",
+      "../../src/Tools/babylon.gamepads.js",
+      "../../src/Cameras/babylon.gamepadCamera.js",
+      "../../src/Audio/babylon.analyser.js",
+      "../../src/Rendering/babylon.depthRenderer.js",
+      "../../src/PostProcess/babylon.ssaoRenderingPipeline.js",
+      "../../src/PostProcess/babylon.volumetricLightScatteringPostProcess.js",
+      "../../src/PostProcess/babylon.lensRenderingPipeline.js",
+      "../../src/PostProcess/babylon.colorCorrectionPostProcess.js",
+      "../../src/Cameras/babylon.stereoscopicCameras.js",
+      "../../src/PostProcess/babylon.hdrRenderingPipeline.js",
+      "../../src/Rendering/babylon.edgesRenderer.js",
+      "../../src/PostProcess/babylon.tonemapPostProcess.js",
+      "../../src/Probes/babylon.reflectionProbe.js",
+      "../../src/Particles/babylon.solidParticle.js",
+      "../../src/Particles/babylon.solidParticleSystem.js",
+      "../../src/Tools/HDR/babylon.tools.cubemapToSphericalPolynomial.js",
+      "../../src/Tools/HDR/babylon.tools.panoramaToCubemap.js",
+      "../../src/Tools/HDR/babylon.tools.hdr.js",
+      "../../src/Tools/HDR/babylon.tools.pmremgenerator.js",
+      "../../src/Materials/Textures/babylon.hdrCubeTexture.js",
+      "../../src/Debug/babylon.skeletonViewer.js",
+      "../../src/Debug/babylon.axesViewer.js",
+      "../../src/Debug/babylon.boneAxesViewer.js",
+      "../../src/Materials/Textures/babylon.colorGradingTexture.js",
+      "../../src/Materials/babylon.colorCurves.js",
+      "../../src/Materials/babylon.pbrMaterial.js",      
+      "../../src/Debug/babylon.debugLayer.js",
+      "../../src/PostProcess/babylon.standardRenderingPipeline.js"
+    ]
+  }
+}

+ 21 - 0
Tools/Gulp/gulpfile.js

@@ -20,6 +20,7 @@ var webserver = require('gulp-webserver');
 var path = require('path');
 var path = require('path');
 
 
 var config = require("./config.json");
 var config = require("./config.json");
+var customConfig = require("./custom.config.json");
 
 
 var debug = require('gulp-debug');
 var debug = require('gulp-debug');
 var includeShadersStream;
 var includeShadersStream;
@@ -165,6 +166,26 @@ gulp.task("build", ["workers", "shaders"], function () {
         .pipe(gulp.dest(config.build.outputDirectory));
         .pipe(gulp.dest(config.build.outputDirectory));
 });
 });
 
 
+gulp.task("build-custom", ["shaders"], function () {
+    return merge2(
+        gulp.src(customConfig.core.files).        
+            pipe(expect.real({ errorOnFailure: true }, customConfig.core.files)),  
+        shadersStream,
+        includeShadersStream
+        )
+        .pipe(concat(customConfig.build.filename))
+        .pipe(cleants())
+        .pipe(replace(extendsSearchRegex, ""))
+        .pipe(replace(decorateSearchRegex, ""))
+        .pipe(addModuleExports("BABYLON"))
+        .pipe(gulp.dest(customConfig.build.outputDirectory))
+        .pipe(rename(customConfig.build.minFilename))
+        .pipe(uglify())
+        .pipe(optimisejs())
+        .pipe(gulp.dest(customConfig.build.outputDirectory));
+});
+
+
 /*
 /*
 * Compiles all typescript files and creating a js and a declaration file.
 * Compiles all typescript files and creating a js and a declaration file.
 */
 */