{"_id":"buildcheck","_rev":"5-7b0ee241b8f09893b108dbdd2f2002e1","name":"buildcheck","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"buildcheck","version":"0.0.1","author":{"name":"Brian White","email":"mscdex@mscdex.net"},"description":"Build environment checking (a la autoconf) for node.js","main":"./lib/index.js","engines":{"node":">=10.0.0"},"devDependencies":{"@mscdex/eslint-config":"^1.1.0","eslint":"^7.0.0"},"scripts":{"lint":"eslint --cache --report-unused-disable-directives --ext=.js .eslintrc.js lib","lint:fix":"npm run lint -- --fix"},"keywords":["build","autoconf","addons","compiler","environment"],"licenses":[{"type":"MIT","url":"http://github.com/mscdex/buildcheck/raw/master/LICENSE"}],"repository":{"type":"git","url":"git+ssh://git@github.com/mscdex/buildcheck.git"},"_resolved":"","_integrity":"","_from":"https://github.com/mscdex/buildcheck/tarball/v0.0.1","bugs":{"url":"https://github.com/mscdex/buildcheck/issues"},"homepage":"https://github.com/mscdex/buildcheck#readme","_id":"buildcheck@0.0.1","_nodeVersion":"10.22.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-c8urpjm+vnjxzqedWfC/bdF0f0B1QMmHujcJVYwlQLYpWZpv058Lm4x3Krwoiyb7zjjzHlUtgoTOwEQum2WdAw==","shasum":"64af6f1a138c9b8532ca6407750c9aae7a09d95a","tarball":"http://localhost:4545/npm/registry/buildcheck/buildcheck-0.0.1.tgz","fileCount":11,"unpackedSize":9839,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhPtIoCRA9TVsSAnZWagAAW8IP/3Dd5gfvFTC2+YdbI9Oc\nGOInVGDgDbuP7Q5RaA/oR19s41t6u3+OOX6F7xDedwT+3K2juVQchKiVlPjs\nSg6UZnACrqcnTAevczJ8S2yrcaZdw4mGqtd4BJNvI4AeG6zycE/Jl9K6PxJG\nnz3V6QG833sqe5o8z9yCvDm9Ai3mD8GpTYOQnBb8IZ+Yb0qG1px7sP9/GPnJ\ny33zFUttGc7UUsI6qXoAA4/KAIw2s07SMM2CHNTdwMme6/n6ZFDYxipsd6fa\nNeT04EkIZXF+OwsZOn++succUCJFlia6GrCNijGn6XHFbEkyBF9DYobnhnfL\n2eUdrPwETJFxxyOHxSbtw69ar1X122T9Pdt0vP82zy+Oik8+L+7Wr119sgK2\nXUyEN5PrqkzhMSZ6RipXuy4gXnAoVS0I3yZR1nRrUqE66wYQmwPOKOI/lbnn\nmhykS2QvPzP9+UF3+QYFT/cyjYxsATx6MlG1qfhPSjwvZsg++t7vY6Yxqeys\nqvWEJ4i+RwqOijQyMpSnOy9S7ttTGJ+wYjAJdsfP4EPt4GYDkodJYfm3lYU5\npNAKX9Hdo/dNla+QllDN64XDcfh1seFt2NXMuTO/qhi5PgKAxzyK8419RneR\ngxNl8KUh2zGnaRemr23t1hxykyavTzjRhmXbkoPCCeWGN0wpVeDEockwUaE0\nS07k\r\n=J2Pf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC0WXpnJUwwRToQZ42g5NsdLb3npiuRtw54PSJtPk9eGAiB9TyufJvlxEIqx10ATr8pafVyAICy7IjUP7tChPW6yxw=="}]},"_npmUser":{"name":"mscdex","email":"mscdex@mscdex.net"},"directories":{},"maintainers":[{"name":"mscdex","email":"mscdex@mscdex.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/buildcheck_0.0.1_1631506984609_0.7975404344347068"},"_hasShrinkwrap":false},"0.0.2":{"name":"buildcheck","version":"0.0.2","author":{"name":"Brian White","email":"mscdex@mscdex.net"},"description":"Build environment checking (a la autoconf) for node.js","main":"./lib/index.js","engines":{"node":">=10.0.0"},"devDependencies":{"@mscdex/eslint-config":"^1.1.0","eslint":"^7.0.0"},"scripts":{"lint":"eslint --cache --report-unused-disable-directives --ext=.js .eslintrc.js lib","lint:fix":"npm run lint -- --fix"},"keywords":["build","autoconf","addons","compiler","environment"],"licenses":[{"type":"MIT","url":"http://github.com/mscdex/buildcheck/raw/master/LICENSE"}],"repository":{"type":"git","url":"git+ssh://git@github.com/mscdex/buildcheck.git"},"_resolved":"","_integrity":"","_from":"https://github.com/mscdex/buildcheck/tarball/v0.0.2","bugs":{"url":"https://github.com/mscdex/buildcheck/issues"},"homepage":"https://github.com/mscdex/buildcheck#readme","_id":"buildcheck@0.0.2","_nodeVersion":"10.22.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-V8jsKuMjGyUR6vDqIEKEUwzA44RYLdShqvwQt1bimI3RfLYDfvvbD+kjL+ZlaVH7epmxQHx2HflkfmH+5ipxIA==","shasum":"db0ae2d4067b1c91618fc6b470eae235ff17cc96","tarball":"http://localhost:4545/npm/registry/buildcheck/buildcheck-0.0.2.tgz","fileCount":14,"unpackedSize":42188,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCd77KwnvB1TBuyq8AQ/EBRlJad4N8SoKJasRepm8MOPwIhAJtriPyIZ5h5RAq43d9ArmZOU9Ii7K0a5CL7wJwiCY4B"}]},"_npmUser":{"name":"mscdex","email":"mscdex@mscdex.net"},"directories":{},"maintainers":[{"name":"mscdex","email":"mscdex@mscdex.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/buildcheck_0.0.2_1634871484977_0.3103629551650462"},"_hasShrinkwrap":false},"0.0.3":{"name":"buildcheck","version":"0.0.3","author":{"name":"Brian White","email":"mscdex@mscdex.net"},"description":"Build environment checking (a la autoconf) for node.js","main":"./lib/index.js","engines":{"node":">=10.0.0"},"devDependencies":{"@mscdex/eslint-config":"^1.1.0","eslint":"^7.0.0"},"scripts":{"lint":"eslint --cache --report-unused-disable-directives --ext=.js .eslintrc.js lib","lint:fix":"npm run lint -- --fix"},"keywords":["build","autoconf","addons","compiler","environment"],"licenses":[{"type":"MIT","url":"http://github.com/mscdex/buildcheck/raw/master/LICENSE"}],"repository":{"type":"git","url":"git+ssh://git@github.com/mscdex/buildcheck.git"},"_resolved":"","_integrity":"","_from":"https://github.com/mscdex/buildcheck/tarball/v0.0.3","bugs":{"url":"https://github.com/mscdex/buildcheck/issues"},"homepage":"https://github.com/mscdex/buildcheck#readme","_id":"buildcheck@0.0.3","_nodeVersion":"10.22.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-pziaA+p/wdVImfcbsZLNF32EiWyujlQLwolMqUQE8xpKNOH7KmZQaY8sXN7DGOEzPAElo9QTaeNRfGnf3iOJbA==","shasum":"70451897a95d80f7807e68fc412eb2e7e35ff4d5","tarball":"http://localhost:4545/npm/registry/buildcheck/buildcheck-0.0.3.tgz","fileCount":14,"unpackedSize":42580,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2lO2CRA9TVsSAnZWagAAkvwP/3lP+9kQb3DC9grgfRou\nWC8iEZxIbG1ggMTKfiYtOOjQ5tTcBQ5lWX4Wjv4KEHu+8R/AoRC2WJMIqwPj\nX3r8K0i22ptWTZdQPlQKXDPQG/yfRrB1mBz8KEJBW1374RBwe0g4q5MAGJSK\nrUVp9kmAJtugq5hvH0JtCb++9uxnvgZzUaO/geT1oPyb4rF9SEhv7AzSLTTg\nVu3vq49qxghoYCkeiOMsoOOrzu0Eix+nXuWFcuqIuVXaA7IQBTgSqnJwUV6d\nwOgQ8M78sJS2v94X0dTWiYH9Ni/LDgnAK62JvL6GhSaE5r98KgprMmp0ebC2\nfjFRllHBckqV8IJLyQiThKlsBDqomkNI1wRelFQFspGprPLLjbwQxm2s6+6H\n6irH8Z7uup6rivQMzQm3xLt5gokRIhwO6CIXQDEDL1k1WlgGic1rlpscsnat\nd/XkddHZvVu7lAW0uuufy37BhxHFTT3JQDxxHg2gRXzpRlEC3aHl5h7gSNKp\nVyqxgWBxnpwHTNv//WHzEIxGTfDXY03GcjpTx2ofqlvzSp4BcbibSgj/GRf6\nm78a9DAKOqZAqJ2gbRwROuTwmeqq9u3r1+V3PwiSPNWz5U5f6EGxQbtr/OoO\nfNkFz+7UCIKEJmDe3gPI0s/bMcAP/sZpdsfLLtBY6aCuKFzg52t/r8sTzvNN\nzW7f\r\n=jW+A\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPtBDI6CdG76mWIhWcyPBzraHJ76pNO2QZnCGDoV+WUQIgYE6E8+IvlPlYV7dil5eQi6IKFs5+gDY1cyv+Db7MUI8="}]},"_npmUser":{"name":"mscdex","email":"mscdex@mscdex.net"},"directories":{},"maintainers":[{"name":"mscdex","email":"mscdex@mscdex.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/buildcheck_0.0.3_1634956644889_0.278232070219929"},"_hasShrinkwrap":false},"0.0.4":{"name":"buildcheck","version":"0.0.4","author":{"name":"Brian White","email":"mscdex@mscdex.net"},"description":"Build environment checking (a la autoconf) for node.js","main":"./lib/index.js","engines":{"node":">=10.0.0"},"devDependencies":{"@mscdex/eslint-config":"^1.1.0","eslint":"^7.0.0"},"scripts":{"lint":"eslint --cache --report-unused-disable-directives --ext=.js .eslintrc.js lib","lint:fix":"npm run lint -- --fix"},"keywords":["build","autoconf","addons","compiler","environment"],"licenses":[{"type":"MIT","url":"http://github.com/mscdex/buildcheck/raw/master/LICENSE"}],"repository":{"type":"git","url":"git+ssh://git@github.com/mscdex/buildcheck.git"},"_resolved":"","_integrity":"","_from":"https://github.com/mscdex/buildcheck/tarball/v0.0.4","bugs":{"url":"https://github.com/mscdex/buildcheck/issues"},"homepage":"https://github.com/mscdex/buildcheck#readme","_id":"buildcheck@0.0.4","_nodeVersion":"10.22.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-3lROzwIR07xIL4Dan3Bj2uJ0x3XQOwRxQ3kivEyTJRevxJLR9erAWgIgmXnjTpC1eL5jPtAhmWyyPqvZEzchaA==","shasum":"01b78c9e595629a4982956eb6cfd98359afb9d76","tarball":"http://localhost:4545/npm/registry/buildcheck/buildcheck-0.0.4.tgz","fileCount":14,"unpackedSize":42908,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPoZLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrVzw//W6kOVTaMk1b85jdnF2TaMAh3jlpiq1XasL46GmYNLg9r4+kz\r\ne9yLJsp1tddv833EICpuwMweZBQXYdkHR2ixtsRwzFl1joBS2a5lWZn/9wae\r\nzuaOr7zs1Bsud+G7nSob5cdwRbJErfLMP3UXUi096/6B9n53CqGyjs0kxwvK\r\n3mEHFIfCapT7759CqfQrlFBwkju6L6r/BbCawCh9BEat3p42FwQmepvmn3zZ\r\nSNaeotDXTNrawhZDOqYxGVEpVJltPFUBCUWgszYQBd+U1w8kOTd7wXLNfMbQ\r\n2NuEcwc5ZAxEpOPxxchwrRK/oWfKQTiOnjA3EIe1QRpla4U3fVwJHk3at7eU\r\nhU+uiSx+FoCuzZAQNdPrvjyz8l1lACurM2DwvboYHc1lS0OtK4iSwgsOardl\r\npWyheaRiLWe9KuyOUCR+867ps1MLG9Ot8uLYW+Lo7gwOhvMrhsHXyBzZraLC\r\n2ZLZqaU5ULcHRNzA2W6FKgExspmDwvm56vm5K3zirz1u9PKFsx6MoQ5rBD7r\r\nikrDUg+csdoS5Fo+4NSQkWwNZgYDJS2muCIrtNSYmtSIpOolAAQlsnlI/c6z\r\n1bpPBeYwKmbVqbnV3YPbE0slMJ3f9QJC3/7N+KPLYR1NZkGWPm+KX34Wu8EG\r\nROGCdU1iPDNTjXZstVVpJpsbL3Ai4TfccEs=\r\n=LupJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcutYhEnWt+W5kZZ1zE0ti3e5Diac3/o8eZMZyFsWp0gIhAOnyDV76BFbk2eoU+jkhm/deZSfidvoOcUv4ZnMz3u+t"}]},"_npmUser":{"name":"mscdex","email":"mscdex@mscdex.net"},"directories":{},"maintainers":[{"name":"mscdex","email":"mscdex@mscdex.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/buildcheck_0.0.4_1648264778986_0.7520032376978061"},"_hasShrinkwrap":false}},"time":{"created":"2021-09-13T04:23:04.609Z","0.0.1":"2021-09-13T04:23:04.751Z","modified":"2022-04-12T04:42:15.633Z","0.0.2":"2021-10-22T02:58:05.145Z","0.0.3":"2021-10-23T02:37:25.041Z","0.0.4":"2022-03-26T03:19:39.150Z"},"maintainers":[{"name":"mscdex","email":"mscdex@mscdex.net"}],"description":"Build environment checking (a la autoconf) for node.js","homepage":"https://github.com/mscdex/buildcheck#readme","keywords":["build","autoconf","addons","compiler","environment"],"repository":{"type":"git","url":"git+ssh://git@github.com/mscdex/buildcheck.git"},"author":{"name":"Brian White","email":"mscdex@mscdex.net"},"bugs":{"url":"https://github.com/mscdex/buildcheck/issues"},"readme":"# Description\n\nBuild environment checking for [node.js](http://nodejs.org/).\n\nThis allows for autoconf-like functionality for node addons/build scripts.\n\n**Note:** Obsolete and/or exotic build environments or platforms not supported\nby node.js are not supported.\n\n## Requirements\n\n* [node.js](http://nodejs.org/) -- v10.0.0 or newer\n* Supported compilers:\n * gcc\n * clang\n * MSVC 2013+ and Windows SDK 8.1+\n\n## Installation\n\n npm install buildcheck\n\n## Examples\n\n### Check if a C function exists\n\n```js\n'use strict';\n\nconst { BuildEnvironment } = require('buildcheck');\n\nconst buildEnv = new BuildEnvironment();\n\nconsole.log(buildEnv.checkFunction('c', 'preadv2'));\n```\n\n### Check if a C header is usable\n\n```js\n'use strict';\n\nconst { BuildEnvironment } = require('buildcheck');\n\nconst buildEnv = new BuildEnvironment();\n\nconsole.log(buildEnv.checkHeader('c', 'linux/io_uring.h'));\n```\n\n### Try to compile some C code\n\n```js\n'use strict';\n\nconst { BuildEnvironment } = require('buildcheck');\n\nconst buildEnv = new BuildEnvironment();\n\n// Should be a successful compile\nconsole.log(buildEnv.tryCompile('c', 'int main() { return 0; }'));\n\n// Should be a failed compile\nconsole.log(buildEnv.tryCompile('c', 'int main() { return z; }'));\n```\n\n## API\n\n### Exports\n\n* `BuildEnvironment` - The main class for dealing with a build environment.\n\n### BuildEnvironment\n\n#### Methods\n\n* **(constructor)**([< _object_ >config]) - Creates and returns a new BuildEnvironment instance. `config` may contain:\n\n * **compilerC** - _string_ - C compiler command to use. *Note: this is ignored on Windows.* **Default:** `process.env.CC` or `'cc'`\n\n * **compilerCXX** - _string_ - C++ compiler command to use. *Note: this is ignored on Windows.* **Default:** `process.env.CXX` or `'c++'`\n\n * **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\n\n* **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:\n\n * **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.\n\n * **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.\n\n* **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:\n\n * **searchLibs** - _array_ - A list of library names (without the `'-l'` prefix) to try when checking for this function. `checkFunction()` will always first try without a library.\n\n* **checkFeature**(< _string_ >featureName) - _mixed_ - Executes a special test for a \"feature\" and returns the result. Supported values for `featureName`:\n\n * `'strerror_r'` - Returns an object containing:\n\n * `declared` - _boolean_ - Whether `strerror_r()` is declared\n\n * `returnsCharPtr` - _boolean_ - If `strerror_r()` is declared, whether it returns `char*` (a GNU extension) or not.\n\n* **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.\n\n* **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.\n\n* **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.\n\n* **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.\n","readmeFilename":"README.md"}