This is an old revision of the document!
The How
- no depencencies other than the c++-20 compiler
- the
REG
macro - automaticint a = registerFunction()
wrapper. std::filesystem
for reading timestampsexecv
,posix_spawn
and friends for executing the compiler, linker and other toolsstd::async
for parallel compilationstd::thread::hardware_concurrency()
for automatic-jn
deductiongcc -MMD
for dependency tracking- trixy self-re-invoke (after re-compilation) when configuration files change.
- tree of self-dependency weirdness
configure
target- cross-compilation and tool-chain control
- independent target compilation (with dependency deduction)
clean
target- bootstrapping (yes - libctor compiles itself)
check
target, for unit test compilation and execution- compilation-database (json) for c-lion and others
- future work:
- external dependency deduction
- custom compilation configuration control through
configure
target (like–with-X
/–enable-Y
in autotools) install
target withPREFIX
andDESTDIR
support- documentation