| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- var os = require('os');
- var path = require('path');
- // get the root folder
- var atomicRoot = path.resolve(__dirname, "../..") + "/";
- // patch in our local node_modules
- process.env.NODE_PATH = atomicRoot + "Build/node_modules/";
- require('module').Module._initPaths();
- var fs = require('fs-extra');
- /// Returns a list of all script packages, regardless of platform
- function getScriptPackages() {
- var srcpath = atomicRoot + "Script/Packages/";
- return fs.readdirSync(srcpath).filter(function(file) {
- return fs.statSync(path.join(srcpath, file)).isDirectory() && fs.existsSync(srcpath + "/" + file + "/Package.json");
- });
- }
- // return an object with package name keys and module name lists as values
- function getScriptModules(platform) {
- modules = {};
- var packages = getScriptPackages();
- for (var i in packages) {
- var pkg = JSON.parse(fs.readFileSync(atomicRoot + "Script/Packages/" + packages[i] + "/Package.json"));
- if (pkg.platforms && pkg.platforms.indexOf(platform) == -1)
- continue;
- for (var j in pkg.modules) {
- var moduleName = pkg.modules[j];
- if (pkg.moduleExclude && pkg.moduleExclude[platform])
- if (pkg.moduleExclude[platform].indexOf(moduleName) != -1)
- continue;
- if (!modules[pkg.name])
- modules[pkg.name] = [];
- modules[pkg.name].push(moduleName);
- }
- }
- return modules;
- }
- function getGenScriptRootDir(platform) {
- return atomicRoot + "Artifacts/Build/Source/Generated/" + platform + "/";
- }
- // Get a list of script source filenames for a given platform
- function getGenScriptFilenames(platform) {
- var filenames = [];
- var scriptGenRoot = getGenScriptRootDir(platform);
- var modules = getScriptModules(platform);
- for (var pkgName in modules) {
- var jsPackageFolder = scriptGenRoot + "Javascript/Packages/" + pkgName + "/";
- // the JS package sources
- filenames.push(jsPackageFolder + "JSPackage" + pkgName + ".cpp");
- for (var i in modules[pkgName]) {
- filenames.push(jsPackageFolder + "JSModule" + modules[pkgName][i] + ".cpp");
- }
- }
- return filenames;
- }
- function createGenScriptFiles(platform) {
- var scriptFiles = getGenScriptFilenames(platform);
- for (var i in scriptFiles) {
- fs.ensureFileSync(scriptFiles[i]);
- }
- }
- function cleanCreateDir(directory) {
- testRemoveDir(directory);
- testCreateDir(directory);
- }
- function testCreateDir(directory) {
- if (fs.existsSync(directory)) {
- fail("Path already exists: " + directory);
- }
- jake.mkdirP(directory);
- if (!fs.existsSync(directory)) {
- fail("Unable to create path: " + directory);
- }
- }
- function testRemoveDir(path) {
- if (fs.existsSync(path)) {
- jake.rmRf(path);
- }
- if (fs.existsSync(path)) {
- fail("Unable to remove path: " + path);
- }
- }
- exports.atomicRoot = atomicRoot;
- exports.artifactsRoot = atomicRoot + "Artifacts/";
- exports.cleanCreateDir = cleanCreateDir;
- exports.testCreateDir = testCreateDir;
- exports.testRemoveDir = testRemoveDir;
- exports.getScriptPackages = getScriptPackages;
- exports.getScriptModules = getScriptModules;
- exports.getGenScriptFilenames = getGenScriptFilenames;
- exports.createGenScriptFiles = createGenScriptFiles;
- exports.getGenScriptRootDir = getGenScriptRootDir;
|