$ gnpm install buildcheck
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; }'));
The exported value is 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.
Copyright 2013 - present © cnpmjs.org | Home |