Opinionated build system generator based on CMake
npm install bare-makeOpinionated build system generator based on CMake. It generates build files for Ninja using Clang as the compiler toolchain across all supported systems, ensuring a consistent and reliable compilation process. Beyond forcing the build system and compiler toolchain, everything is still plain CMake, making it easy to eject to the normal CMake flow as necessary.
```
npm i [-g] bare-make
Like CMake, builds happen in three steps: You first generate a build system, then run the build system, and finally install the built artefacts. To perform the steps programmatically from JavaScript, do:
`js
const make = require('bare-make')
await make.generate()
await make.build()
await make.install()
`
The steps can also be performed interactively from the command line using the included CLI:
`console`
bare-make generate
bare-make build
bare-make install
To run tests for projects that use enable_testing() and add_test(), do:
`js`
await make.test()
Tests can also be run from the command line:
`console`
bare-make test
#### await generate([options])
Options include:
`js`
options = {
source: '.',
build: 'build',
platform: os.platform(),
arch: os.arch(),
simulator: false,
environment,
cache: true,
preset,
sanitize,
debug,
withDebugSymbols,
withMinimalSize,
define,
cwd: path.resolve('.'),
color: false,
verbose: false,
stdio
}
#### await build([options])
Options include:
`js`
options = {
build: 'build',
target,
clean: false,
parallel,
preset,
cwd: path.resolve('.'),
verbose: false,
stdio
}
#### await install([options])
Options include:
`js`
options = {
build: 'build',
prefix: 'prebuilds',
component,
link: false,
strip: false,
parallel,
cwd: path.resolve('.'),
verbose: false,
stdio
}
#### await test([options])
Options include:
`js`
options = {
build: 'build',
timeout: 30,
parallel,
preset,
cwd: path.resolve('.'),
verbose: false,
stdio
}
#### bare-make generate [flags]
Flags include:
`console`
--source|-s
--build|-b
--platform|-p
--arch|-a
--simulator Build for a simulator
--environment|-e
--no-cache Disregard the build variable cache
--preset
--debug|-d Configure a debug build
--with-debug-symbols Configure a release build with debug symbols
--with-minimal-size Configure a release build with minimal size
--sanitize
--define|-D [:
--no-color Disable colored output
--verbose Enable verbose output
--help|-h Show help
#### bare-make build [flags]
Flags include:
`console`
--build|-b
--target|-t
--clean|-c Clean before building
--parallel|-j
--preset
--verbose Enable verbose output
--help|-h Show help
#### bare-make install [flags]
Flags include:
`console`
--build|-b
--prefix|-p
--component|-c
--link|-l Link rather than copy the files
--strip|-s Strip before installing
--parallel|-j
--verbose Enable verbose output
--help|-h Show help
#### bare-make test [flags]
Flags include:
`console``
--build|-b
--timeout
--parallel|-j
--preset
--verbose Enable verbose output
--help|-h Show help
Apache-2.0