[build2] 0.7.0 uses g++ even cl is specified

Boris Kolpackov boris at codesynthesis.com
Sun Jan 14 09:40:13 UTC 2018


Kalle Møller <build2.org at k-moeller.dk> writes:

> Trying to build from stage and doing the manual bootstrap (in x64 Native
> Tools Command Shell). Building b-boot was no problem. The next stage gives
> problems though
> 
> C:\Tools\Build2\build2-0.7.0-a.0.1515401170.8b07d68462c5fec9>build2\b-boot
> config.cxx=cl config.bin.lib=static
> config.import.libbutl=..\libbutl-0.7.0-a.0.1515401218.46b32368147e7975\
> error: unable to execute g++: no such file or directory
>   info: while applying rule alias to update dir{.\}

Variable overrides specified on the command line have different scopes.
The normal ones (like in the command line above) only apply to a project
and its subprojects (actually, more precisely, to the entire amalgamation).
As a result, because libbutl is outside the project you are trying to build,
config.cxx, etc., do not apply to it.

You can, however, make the override global by prefixing it with '!', for
example (note that on POSIX one needs to quote '!'):

b-boot !config.cxx=cl !config.bin.lib=static ...

The build2's NEWS file has more details on variable overrides semantics
(just search for 'override').


> As a side note - I would love to build from git, but I can't get build2
> (with cli installed) to build the INSTALL etc files.

Yes, temporarily these are generated with a shell script which is not going
to (easily) work on Windows. Hopefully we will be able to make this part of
the build soon. You could probably just comment these dependencies out as
a temporary hack.

Boris



More information about the users mailing list