aboutsummaryrefslogtreecommitdiff
path: root/libbuild2
AgeCommit message (Collapse)AuthorFilesLines
2020-11-17Omit default extensions for target types that now have fixed extensionsBoris Kolpackov1-2/+2
2020-11-17Implement modules pseudo-directive parsing (p1703, p1857)Boris Kolpackov7-54/+148
2020-11-13Minor tracing fix and additionBoris Kolpackov2-1/+4
2020-11-12Assign fixed extensions to wasm{} and pdb{} target typesBoris Kolpackov3-2/+42
2020-11-11Add ${c,cxx}.lib_{poptions,libs,rpaths}() functionsBoris Kolpackov10-105/+391
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-11Make value_traits<bool>::convert() non-modifyingBoris Kolpackov2-2/+5
2020-11-11Expose low-level function registration supportBoris Kolpackov2-4/+24
2020-11-11Add context::current_action()Boris Kolpackov1-1/+9
2020-11-06Fix mistreating test operation timeout as test timeout in some caseKaren Arutyunov1-1/+1
2020-11-06Add support for test timeoutsKaren Arutyunov33-184/+1819
2020-11-06Fix snapshot extraction for subproject symlinked from git submoduleKaren Arutyunov1-3/+20
2020-11-06Resolve warningBoris Kolpackov1-1/+1
2020-11-06Keep executable bit on .wasm files when installingBoris Kolpackov1-2/+4
2020-11-05Initial Emscripten supportBoris Kolpackov6-535/+803
- 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-11-04Minor terminology tweakBoris Kolpackov1-1/+1
2020-11-02Set executable bit for ad hoc buildscript rule executable target on POSIXKaren Arutyunov5-2/+61
2020-10-28Pad config report to maximum name lengthBoris Kolpackov1-10/+32
2020-10-28Add missing $builtin.string(int64)Boris Kolpackov1-0/+1
2020-10-27Tweak dist rule to handle prerequisites outside projectBoris Kolpackov1-7/+21
2020-10-20Add operation callback for adhoc rule match and applyBoris Kolpackov13-44/+95
2020-10-15Add ability to specify fallback value for NULL substitutions with in.nullBoris Kolpackov7-20/+60
2020-10-07Add ability to specify extra adhoc files for distributionBoris Kolpackov2-6/+58
2020-09-29Add bootstrap distribution mode (!config.dist.bootstrap=true)Boris Kolpackov6-277/+476
In this mode the dist meta-operation does not load the project (but does bootstrap it) and adds all the source files into the distribution only ignoring files and directories that start with a dot. This mode is primarily meant for situation where the project cannot (yet) be loaded due to missing dependencies.
2020-09-28Add $string.trim() functionBoris Kolpackov1-0/+12
2020-09-24Fix target declaration upgrade logicBoris Kolpackov2-12/+10
2020-09-24Give hints for common causes of "no rule to update ..." errorBoris Kolpackov12-50/+121
2020-09-24Add ability to ignore extra variables in specified_config()Boris Kolpackov2-9/+33
2020-09-24Add post-boot module functionBoris Kolpackov3-27/+84
2020-09-22Add ability to skip external modules during bootstrap (--no-external-modules)Boris Kolpackov4-34/+75
2020-09-15Handle infinite output when extracting metadata (GitHub issue #102)Boris Kolpackov1-2/+22
2020-09-12Regenerate options parsing codeKaren Arutyunov1-6/+6
2020-09-09Expand notes on issues with build system modules that require bootstrapBoris Kolpackov1-0/+6
2020-09-08Get rid of warning in static buildBoris Kolpackov1-0/+2
2020-09-08Allow external modules that require bootstrapBoris Kolpackov1-13/+34
2020-09-01Add TODO commentBoris Kolpackov1-0/+2
2020-08-26Add missing symbol exportsBoris Kolpackov2-2/+2
2020-08-26Fix bug in module initialization orderBoris Kolpackov3-26/+21
2020-08-25Add missing move() callBoris Kolpackov1-1/+3
2020-08-25Fix bug in interaction of unmatch logic with target groupsBoris Kolpackov3-3/+23
2020-08-24Only suggest ad hoc path import for path-based targetsBoris Kolpackov1-6/+10
2020-08-24Use representation when passing target_triplet as hintBoris Kolpackov4-3/+4
2020-08-24Add copying version of convert<T>(value)Boris Kolpackov4-12/+52
2020-08-18Add ability to mark config.* variables as "unsaved" (always transient)Boris Kolpackov5-19/+40
2020-08-17Add mvfile() filesystem utility functionBoris Kolpackov3-19/+33
2020-08-16Add support for post-configure and pre-disfigure hooksBoris Kolpackov7-27/+131
2020-08-16Add ability to initialize bootstrapped modules after loading root.buildBoris Kolpackov8-34/+64
2020-08-16Redo modules map as vectorBoris Kolpackov3-43/+74
2020-08-13Fix assertion failure in to_stream() for target key without extensionKaren Arutyunov1-2/+2
Also fix a similar assertion.
2020-08-13Add few more run() overloadsBoris Kolpackov1-2/+17
2020-08-12Adjust linker arguments for LTO parallelizationMatthew Krupcale1-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.