Repository URL to install this package:
|
Version:
0.6.0 ▾
|
| .. |
| .github |
| deps |
| lib |
| .eslintrc.js |
| .npmignore |
| LICENSE |
| README.md |
| package.json |
Build environment checking for node.js.
This allows for autoconf-like functionality for node addons/build scripts.
Note: Obsolete and/or exotic build environments or platforms not supported by node.js are not supported.
npm install buildcheck
'use strict'; const { BuildEnvironment } = require('buildcheck'); const buildEnv = new BuildEnvironment(); console.log(buildEnv.checkFunction('c', 'preadv2'));
'use strict'; const { BuildEnvironment } = require('buildcheck'); const buildEnv = new BuildEnvironment(); console.log(buildEnv.checkHeader('c', 'linux/io_uring.h'));
'use strict'; const { BuildEnvironment } = require('buildcheck'); const buildEnv = new BuildEnvironment(); // Should be a successful compile console.log(buildEnv.tryCompile('c', 'int main() { return 0; }')); // Should be a failed compile console.log(buildEnv.tryCompile('c', 'int main() { return z; }'));
BuildEnvironment - The main class for dealing with a build environment.(constructor)([< object >config]) - Creates and returns a new BuildEnvironment instance. config may contain:
compilerC - string - C compiler command to use. Note: this is ignored on Windows. Default: process.env.CC or 'cc'
compilerCXX - string - C++ compiler command to use. Note: this is ignored on Windows. Default: process.env.CXX or 'c++'
msvs_version - mixed - A string or number containing the year of the Visual Studio compiler to use. Note: this is for Windows only. Default: newest version installed
checkDeclared(< string >lang, < string >symbolName[, < object >options]) - boolean - Checks if a symbol symbolName is declared where lang is either 'c' or 'c++'. Returns true if symbol exists, false otherwise. options may contain:
headers - array - A list of headers to try when checking if the symbol is declared. checkFunction() will always first try without a library. If not supplied, a default list of common (platform-specific) headers will be used.
searchLibs - array - A list of library names (without the '-l' prefix) to try when checking if the symbol is declared. checkDeclared() will always first try without a library.
checkFunction(< string >lang, < string >functionName[, < object >options]) - boolean - Checks if a function functionName exists and is linkable where lang is either 'c' or 'c++'. Returns true if function exists, false otherwise. options may contain:
'-l' prefix) to try when checking for this function. checkFunction() will always first try without a library.checkFeature(< string >featureName) - mixed - Executes a special test for a "feature" and returns the result. Supported values for featureName:
'strerror_r' - Returns an object containing:
declared - boolean - Whether strerror_r() is declared
returnsCharPtr - boolean - If strerror_r() is declared, whether it returns char* (a GNU extension) or not.
checkHeader(< string >lang, < string >headerName) - boolean - Checks if the header headerName exists and is usable where lang is either 'c' or 'c++'. Returns true if the header exists and is usable, false otherwise.
defines([< string >lang[, < boolean >rendered]]) - array - Returns a list of features, functions, headers, and symbols known to be defined by this build environment instance. lang is either 'c' or 'c++' If lang is not set, defines for both 'c' and 'c++' will be returned. If rendered is true (defaults to false), autoconf-style defines (e.g. "HAVE_FOO=1") will be returned instead. Defines coming from features utilize base strings/names from autoconf for better compatibility.
libs([< string >lang]) - array - Returns a list of ('-l'-prefixed) libraries known to be required for features and functions defined by this build environment instance. lang is either 'c' or 'c++' If lang is not set, defines for both 'c' and 'c++' will be returned.
tryCompile(< string >lang, < string >code[, < array >compilerParams]) - mixed - Attempts to compile code where lang is either 'c' or 'c++'. compilerParams is an optional array of compiler/linker flags to include. Returns true on successful compilation, or an Error instance with an output property containing the compiler error output.