First Commit
This commit is contained in:
96
externals/cryptopp-cmake/cmake/scripts/standard-version-updater.js
vendored
Normal file
96
externals/cryptopp-cmake/cmake/scripts/standard-version-updater.js
vendored
Normal file
@@ -0,0 +1,96 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Distributed under the 3-Clause BSD License. See accompanying file LICENSE or
|
||||
// copy at https://opensource.org/licenses/BSD-3-Clause).
|
||||
// SPDX-License-Identifier: BSD-3-Clause
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Detect the dominant newline character of a string, from 'detect-newline'
|
||||
// https://github.com/sindresorhus/detect-newline
|
||||
//
|
||||
// MIT License
|
||||
// -----------------------------------------------------------------------------
|
||||
function detectNewline(string) {
|
||||
if (typeof string !== 'string') {
|
||||
throw new TypeError('Expected a string');
|
||||
}
|
||||
|
||||
const newlines = string.match(/(?:\r?\n)/g) || [];
|
||||
|
||||
if (newlines.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
const crlf = newlines.filter(newline => newline === '\r\n').length;
|
||||
const lf = newlines.length - crlf;
|
||||
|
||||
return crlf > lf ? '\r\n' : '\n';
|
||||
}
|
||||
|
||||
function detectNewlineGraceful(string) {
|
||||
return (typeof string === 'string' && detectNewline(string)) || '\n';
|
||||
}
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Version reader/updated for standard-version that uses the mETA information in
|
||||
// the CmakeLists.txt file
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
const major_rex = /set\(META_VERSION_MAJOR\s+\"(\d+)\"\)/;
|
||||
const minor_rex = /set\(META_VERSION_MINOR\s+\"(\d+)\"\)/;
|
||||
const patch_rex = /set\(META_VERSION_PATCH\s+\"(\d+)\"\)/;
|
||||
|
||||
module.exports.readVersion = function (contents) {
|
||||
var major = null, minor = null, patch = null;
|
||||
|
||||
const lines = contents.split(/\r?\n/);
|
||||
for (let index in lines) {
|
||||
let line = lines[index];
|
||||
var match = null;
|
||||
if (major == null) {
|
||||
var match = major_rex.exec(line);
|
||||
if (match != null) {
|
||||
major = match[1];
|
||||
}
|
||||
}
|
||||
if (match == null && minor == null) {
|
||||
var match = minor_rex.exec(line);
|
||||
if (match != null) {
|
||||
minor = match[1];
|
||||
}
|
||||
}
|
||||
if (match == null && patch == null) {
|
||||
var match = patch_rex.exec(line);
|
||||
if (match != null) {
|
||||
patch = match[1];
|
||||
}
|
||||
}
|
||||
if (major != null && minor != null && patch != null) break;
|
||||
};
|
||||
|
||||
if (major == null)
|
||||
console.error("Your CmakeLists.txt is missing META_VERSION_MAJOR variable!");
|
||||
if (minor == null)
|
||||
console.error("Your CmakeLists.txt is missing META_VERSION_MINOR variable!");
|
||||
if (patch == null)
|
||||
console.error("Your CmakeLists.txt is missing META_VERSION_PATCH variable!");
|
||||
|
||||
return major + "." + minor + "." + patch;
|
||||
}
|
||||
|
||||
module.exports.writeVersion = function (contents, version) {
|
||||
var [major, minor, patch] = version.split(".");
|
||||
var newContents = [];
|
||||
|
||||
const lines = contents.split(/\r?\n/);
|
||||
lines.forEach(line => {
|
||||
var newLine = line.replace(major_rex, "set(META_VERSION_MAJOR \"" + major + "\")")
|
||||
.replace(minor_rex, "set(META_VERSION_MINOR \"" + minor + "\")")
|
||||
.replace(patch_rex, "set(META_VERSION_PATCH \"" + patch + "\")");
|
||||
newContents.push(newLine);
|
||||
});
|
||||
|
||||
let newline = detectNewlineGraceful(contents)
|
||||
return newContents.join(newline);
|
||||
}
|
||||
Reference in New Issue
Block a user