Boost logo

Boost :

From: Дмитрий Архипов (grisumbras_at_[hidden])
Date: 2024-04-09 14:33:29


вт, 9 апр. 2024 г. в 16:43, Rainer Deyke via Boost <boost_at_[hidden]>:
 first. Build systems aren't going anywhere, as well as compiled libraries.
>
> I'm fine with one build system. The one I use to compile my own code.
> I'm not fine with the dozen or so build systems I currently have to use
> to build my dependencies.

This is already solved by package managers. They deal with
dependencies' build systems for you and create "exports" for your
build system.

> You don't recompile the dependencies "all the time". You compile once
> per configuration and recompile when the dependency changes, same as any
> other source file. Your build system takes care of this.

But you do. I would think, most projects are built in CI these days.
CI can get you pre-built binaries for your dependencies. But BMIs are
not redistributable, as we've been told it is not even a goal. The
best you can do in order to not rebuild every module for every job is
CI runner cache.

> This means that there is just one way of configuring a library, by
> defining configuration macros. No messing around with CMake variables
> or command-line arguments for configure scripts or whatever Meson or
> SCons use.

Nothing stops you from using macros even now. E.g. with CMake:
CXXFLAGS=-DMYLIB_MACRO=1 cmake -S. -Bbuild

With b2:
b2 define=MYLIB_MACRO=1

There must be a reason projects prefer to use configuration options
and not macros directly.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk