Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
These functions can be used to query library metadata for options and
libraries that should be used when compiling/linking dependent targets,
similar to how cc::{compile,link}_rule do it. With this support it should
be possible to more or less re-create their semantics in ad hoc recipes.
|
|
- Target: wasm32-emscripten (wasm32-unknown-emscripten).
- Compiler id: clang-emscripten (type clang, variant emscripten, class gcc).
- Ability to build executables (.js plus .wasm) and static libraries (.a). Set
executable bit on the .js file (so it can be executed with a suitable binfmt
interpreter).
- Default config.bin.lib for wasm32-emscripten is static instead of both.
- Full C++ exception support is enable unless disabled explicitly by the user
with -s DISABLE_EXCEPTION_CATCHING=1|2.
- The bin module registers the wasm{} target type for wasm32-emscripten.
|
|
GCC 10+ and Clang 4+ support controlling the number of LTO threads/jobs used
during linking. Use the build2 scheduler to allocate up to the number of
hardware threads to the GCC or Clang linker processes when -flto=auto or
-flto=thin is specified, respectively. Otherwise, GCC or Clang will attempt to
spawn the number of hardware threads detected for each linker process, which
could result in up to n^2 linker threads on a CPU with n hardware threads.
|
|
This way they are accessible in ad hoc recipes.
|
|
|
|
|
|
The common .pc file is produced by ignoring any static/shared-specific
poptions and splitting loptions/libs into Libs/Libs.private.
It is "best effort", in a sense that it's not guaranteed to be sufficient in
all cases, but it will probably cover the majority of cases, even on Windows,
thanks to automatic dllimport'ing of functions.
|
|
Now we consistently use term "lookup" for variable value lookup. At some
point we should also rename type lookup to binding and get rid of all the
lookup_type aliases.
|
|
Windows does not allow the manifest file inside to be a symlink for some
(probably security) reasons.
|
|
|
|
|
|
|
|
|
|
|
|
Now it is c/cxx first followed by cc which is the reverse order of coptions
since the header/library search paths are examined in the order specified (in
contrast to the "last value wins" semantics that we assume for coptions).
|
|
Failed that we cannot have an executable and a library with the same name and
in the same directory (their .lib's will clash).
|
|
|
|
|
|
|
|
|
|
|
|
Such options are (normally) not overridden by buildfiles and are passed
last (after cc.coptions and {c,cxx}.coptions) in the resulting command
lines. They are also cross-hinted between config.c and config.cxx. For
example:
$ b config.cxx="g++ -m64"
|
|
In particular, this removes the requirement to build from the Visual Studio
command prompt. Note that since MSVC compiler binaries are target-specific
(i.e., there are no -m32/-m64 options nor something like /MACHINE), in this
case we default to a 64-bit build (a 32-bit build can still be achieved by
running from a suitable command prompt).
Finally, this mechanism is also used to find Clang bundled with MSVC.
|
|
This way any dependent tools (such as mt.exe that is invoked by link.exe)
are first search for in there.
|
|
|
|
|
|
|
|
|
|
|
|
Now we can do:
lib{foo}: bin.lib.version = linux@1.2
And end up with
libfoo.so.1.2
libfoo.so.1 -> libfoo.so.1.2
|
|
|