Files
MapLibreParticleLab/bin/build-style.js
Konstantin Käfer 1538ebaf22 cascade styles
2014-01-27 17:21:48 +01:00

47 lines
1.3 KiB
JavaScript
Executable File

#!/usr/bin/env node
'use strict';
var fs = require('fs');
var name = 'style';
var data = fs.readFileSync('resources/style.pbf');
var length = data.length;
var header = '// NOTE: DO NOT CHANGE THIS FILE. IT IS AUTOMATICALLY GENERATED.\n\n';
header += '#ifndef LLMR_RESOURCE_' + name.toUpperCase() + '\n';
header += '#define LLMR_RESOURCE_' + name.toUpperCase() + '\n';
header += '\n';
header += 'namespace llmr {\n';
header += 'namespace resources {\n';
header += '\n';
header += 'extern const unsigned char ' + name + '[];\n';
header += 'extern const unsigned long ' + name + '_size;\n';
header += '\n';
header += '}\n';
header += '}\n';
header += '\n';
header += '#endif\n';
fs.writeFileSync('include/llmr/resources/' + name + '.hpp', header);
var code = '// NOTE: DO NOT CHANGE THIS FILE. IT IS AUTOMATICALLY GENERATED.\n';
code += '#include <llmr/resources/' + name + '.hpp>\n';
code += '\n';
code += 'using namespace llmr;\n';
code += '\n';
code += 'const unsigned char resources::' + name + '[] = {\n';
for (var i = 0; i < data.length; i += 16) {
if (i > 0) {
code += ',\n';
}
var part = data.slice(i, i + 16);
code += ' ' + Array.prototype.join.call(part, ', ');
}
code += '\n};\n';
code += 'const unsigned long resources::' + name + '_size = sizeof(resources::' + name + ');\n';
fs.writeFileSync('src/resources/' + name + '.cpp', code);