mirror of
https://github.com/musix-org/musix-oss
synced 2024-12-23 22:33:17 +00:00
114 lines
4.5 KiB
JavaScript
114 lines
4.5 KiB
JavaScript
|
/*
|
||
|
Copyright 2013 Daniel Wirtz <dcode@dcode.io>
|
||
|
|
||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
you may not use this file except in compliance with the License.
|
||
|
You may obtain a copy of the License at
|
||
|
|
||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||
|
|
||
|
Unless required by applicable law or agreed to in writing, software
|
||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
See the License for the specific language governing permissions and
|
||
|
limitations under the License.
|
||
|
*/
|
||
|
|
||
|
var MetaScript = require("metascript"),
|
||
|
path = require("path"),
|
||
|
fs = require("fs");
|
||
|
|
||
|
var rootDir = path.join(__dirname, ".."),
|
||
|
srcDir = path.join(__dirname, "..", "src"),
|
||
|
distDir = path.join(__dirname, "..", "dist"),
|
||
|
pkg = require(path.join(rootDir, "package.json")),
|
||
|
filename;
|
||
|
|
||
|
var scope = {
|
||
|
VERSION : pkg.version, // Version
|
||
|
|
||
|
// Encodings
|
||
|
|
||
|
ENCODINGS : true, // Include encodings in general (catches all)
|
||
|
BASE64 : true, // Include base64 encoding
|
||
|
BINARY : true, // Include binary encoding
|
||
|
DEBUG : true, // Include debug encoding
|
||
|
HEX : true, // Include hex encoding
|
||
|
UTF8 : true, // Include utf8 encoding (required for STRINGS)
|
||
|
|
||
|
// Primitive types
|
||
|
|
||
|
BYTES : true, // Include bytes
|
||
|
INTS : true, // Include int types in general (catches all)
|
||
|
INT8 : true, // Include int8/uint8
|
||
|
INT16 : true, // Include int16/uint16
|
||
|
INT32 : true, // Include int32/uint32
|
||
|
INT64 : true, // Include int64/uint64 with Long.js
|
||
|
|
||
|
FLOATS : true, // Include float types in general (catches all)
|
||
|
FLOAT32 : true, // Include float32
|
||
|
FLOAT64 : true, // Include float64
|
||
|
|
||
|
// Varint encoding
|
||
|
|
||
|
VARINTS : true, // Include varint encoding in general (catches all)
|
||
|
VARINT32 : true, // Include varint32/zigZagVarint32
|
||
|
VARINT64 : true, // Include varint64/zigZagVarint32 with Long.js
|
||
|
|
||
|
// String support
|
||
|
|
||
|
STRINGS : true, // Include string support in general (catches all)
|
||
|
UTF8STRING : true, // Include UTF8 encoded strings
|
||
|
CSTRING : true, // Include C-like null terminated strings
|
||
|
VSTRING : true, // Include varint32 length prefixed strings
|
||
|
ISTRING : true, // Include uint32 length prefixed strings
|
||
|
|
||
|
// Other
|
||
|
|
||
|
ALIASES : true, // Include aliases like writeByte, writeShort ..
|
||
|
INLINE : true, // Inline any assertion code
|
||
|
VERBOSE_MS : false // Include MetaScript details as comments
|
||
|
};
|
||
|
|
||
|
// Optimize for size : INLINE=false, ALIASES=false, VERBOSE_MS=false, WHATEVERYOUDONTNEED=false
|
||
|
// Optimize for speed : INLINE=true
|
||
|
|
||
|
if (!scope.UTF8) scope.STRINGS = false;
|
||
|
|
||
|
// Build node version using Buffers
|
||
|
scope.NODE = true;
|
||
|
console.log("Building bytebuffer-node with scope", JSON.stringify(scope, null, 2));
|
||
|
fs.writeFileSync(
|
||
|
path.join(distDir, "bytebuffer-node.js"),
|
||
|
MetaScript.transform(fs.readFileSync(filename = path.join(srcDir, "wrap-node.js")), filename, scope, srcDir)
|
||
|
);
|
||
|
|
||
|
// Build browser version using Typed Arrays
|
||
|
scope.NODE = false;
|
||
|
scope.DATAVIEW = false;
|
||
|
delete scope.BUFFERVIEW;
|
||
|
console.log("Building bytebuffer.js with scope", JSON.stringify(scope, null, 2));
|
||
|
fs.writeFileSync(
|
||
|
path.join(distDir, "bytebuffer.js"),
|
||
|
MetaScript.transform(fs.readFileSync(filename = path.join(srcDir, "wrap.js")), filename, scope)
|
||
|
);
|
||
|
|
||
|
// Build alternative browser version using a DataView
|
||
|
scope.NODE = false;
|
||
|
scope.DATAVIEW = true;
|
||
|
console.log("Building bytebuffer-dataview with scope", JSON.stringify(scope, null, 2));
|
||
|
fs.writeFileSync(
|
||
|
path.join(distDir, "bytebuffer-dataview.js"),
|
||
|
MetaScript.transform(fs.readFileSync(filename = path.join(srcDir, "wrap.js")), filename, scope)
|
||
|
);
|
||
|
|
||
|
// Update bower.json
|
||
|
scope = { VERSION: pkg.version };
|
||
|
console.log("Updating bower.json with scope", JSON.stringify(scope, null, 2));
|
||
|
fs.writeFileSync(
|
||
|
path.join(rootDir, "bower.json"),
|
||
|
MetaScript.transform(fs.readFileSync(filename = path.join(srcDir, "bower.json")), filename, scope, srcDir)
|
||
|
);
|
||
|
|
||
|
console.log("Done");
|