We're currently using <https://github.com/status-im/nimbus-build-system> which 
organizses a collection of utilities around `make` and friends - it lets us 
control a number of things that are important for project of our size:

  * reproducible builds such that two developers working on the project can 
expect the build to work
  * control over dependencies so as to avoid supply chain attacks
  * parallelization of compilation across nim files (ie when compiling multiple 
binaries, the compilation should happen in parallel)
  * common build options (like LTO)



Compared to autotools, you'll notice that there's no well-established workflow 
for compile-time feature detection (which headers are installed etc) - the 
easiest option, if you're keeping the C code, might actually be to let 
autotools and friends do its job, compile the code to a static library and then 
import that.

If your project is small, using `nim` itself without extras might be enough - 
see for example <https://github.com/arnetheduck/nim-sqlite3-abi> which uses 
`{.compile.}` directives which ends up being a crude build system of its own. 

Reply via email to