Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2021-01-22 | Redo bin.lib.version not to require empty key | Boris Kolpackov | 1 | -3/+9 | |
2020-12-14 | Fix incorrect assert in condition | Boris Kolpackov | 1 | -2/+2 | |
2020-12-11 | Add $cxx.obj_modules() which returns object files for binless modules | Boris Kolpackov | 1 | -0/+5 | |
2020-12-11 | Add support for module interface-only libraries | Boris Kolpackov | 1 | -34/+142 | |
Also suppress generation of the object file in cases where we don't need it. | |||||
2020-12-03 | Add ability to get absolute library paths from ${c,cxx}.lib_libs() | Boris Kolpackov | 1 | -4/+9 | |
2020-11-23 | Suppress duplicates when extracting library options (GitHub issue #114) | Boris Kolpackov | 1 | -35/+127 | |
2020-11-17 | Omit default extensions for target types that now have fixed extensions | Boris Kolpackov | 1 | -2/+2 | |
2020-11-11 | Add ${c,cxx}.lib_{poptions,libs,rpaths}() functions | Boris Kolpackov | 1 | -36/+36 | |
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. | |||||
2020-11-05 | Initial Emscripten support | Boris Kolpackov | 1 | -0/+44 | |
- 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. | |||||
2020-08-12 | Adjust linker arguments for LTO parallelization | Matthew Krupcale | 1 | -0/+54 | |
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. | |||||
2020-07-13 | Fold translated *.std options into compiler mode options | Boris Kolpackov | 1 | -1/+0 | |
This way they are accessible in ad hoc recipes. | |||||
2020-06-16 | Move common functionality from cc to bin | Boris Kolpackov | 1 | -1/+1 | |
2020-05-27 | Initial support for ad hoc recipes (still work in progress) | Boris Kolpackov | 1 | -19/+5 | |
2020-03-20 | Generate common .pc file in addition to static/staged when installing lib{} | Boris Kolpackov | 1 | -9/+49 | |
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. | |||||
2020-03-17 | Rename all find*(variable) to lookup*(variable) | Boris Kolpackov | 1 | -6/+6 | |
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. | |||||
2020-03-10 | Force hard links inside backlinked DLL assembly directory | Boris Kolpackov | 1 | -1/+2 | |
Windows does not allow the manifest file inside to be a symlink for some (probably security) reasons. | |||||
2020-02-24 | Disable /WHOLEARCHIVE workaround for lld-link 9.0.1 and later | Boris Kolpackov | 1 | -9/+16 | |
2020-02-07 | Drop copyright notice from source code | Karen Arutyunov | 1 | -1/+0 | |
2020-02-03 | Add header/library search paths from compiler mode to sys_*_dirs | Boris Kolpackov | 1 | -33/+35 | |
2020-01-27 | Improve process run_*() API | Boris Kolpackov | 1 | -1/+4 | |
2020-01-24 | Don't pass dependency library non-export loptions to linker | Karen Arutyunov | 1 | -2/+10 | |
2019-11-29 | Reorder {cc,c/cxx}.{poptions,loptions} | Boris Kolpackov | 1 | -1/+6 | |
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). | |||||
2019-11-26 | Rename executable's .lib/.exp to avoid clashes with libraries | Boris Kolpackov | 1 | -29/+41 | |
Failed that we cannot have an executable and a library with the same name and in the same directory (their .lib's will clash). | |||||
2019-11-07 | Initial work on path_name use for `-` to stdin/stdout translation | Boris Kolpackov | 1 | -1/+1 | |
2019-10-29 | Add support for specifying custom load prefix and version clean patterns | Boris Kolpackov | 1 | -5/+10 | |
2019-10-29 | Tighten up versioned libraries clean patterns | Boris Kolpackov | 1 | -69/+122 | |
2019-10-21 | Work around LLD bug #43744 | Boris Kolpackov | 1 | -0/+23 | |
2019-10-21 | Build thin archives for utility libraries if using llvm-lib | Boris Kolpackov | 1 | -0/+13 | |
2019-10-18 | Add ability to specify "compiler mode" options as part of config.{c,cxx} | Boris Kolpackov | 1 | -8/+12 | |
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" | |||||
2019-10-14 | Implement MSVC installation discovery for version 15 (2017) and later | Karen Arutyunov | 1 | -8/+8 | |
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. | |||||
2019-10-09 | Prepend pattern search paths to PATH when running binutils | Boris Kolpackov | 1 | -4/+66 | |
This way any dependent tools (such as mt.exe that is invoked by link.exe) are first search for in there. | |||||
2019-10-07 | Pass MSVC system library search paths to linker if LIB envvar is unset | Boris Kolpackov | 1 | -13/+44 | |
2019-10-05 | Default to MSVC DLL runtime for Clang on Windows | Boris Kolpackov | 1 | -6/+8 | |
2019-10-01 | Adapt to renaming butl::casecmp() to icasecmp() | Karen Arutyunov | 1 | -1/+1 | |
2019-09-27 | Adapt to bracket expressions in wildcard patterns | Karen Arutyunov | 1 | -1/+1 | |
2019-09-05 | Tighten versioned shared library cleanup logic | Boris Kolpackov | 1 | -12/+23 | |
2019-09-04 | Add support for native shared library versioning on Linux | Boris Kolpackov | 1 | -24/+110 | |
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 | |||||
2019-08-28 | Move cc build system module to separate library | Karen Arutyunov | 1 | -0/+3043 | |