aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/file.cxx
AgeCommit message (Collapse)AuthorFilesLines
2024-01-15Automatically alias unknown target types of imported targetsBoris Kolpackov1-21/+70
2024-01-15Fail with unable to import rather than unknown target typeBoris Kolpackov1-7/+62
2024-01-09Allow imported buildfiles to using config.* variables from own projectBoris Kolpackov1-8/+21
2023-11-01Add notion of match optionsBoris Kolpackov1-1/+1
Now, when matching a rule, the caller may request a subset of the full functionality of performing an operation on a target. This is achieved with match options.
2023-09-06Don't crash if config.report.variable names undefined variableBoris Kolpackov1-2/+2
2023-08-23Replace assert with diagnostics in bootstrap_src() (GH issue #322)Boris Kolpackov1-0/+9
2023-06-09Add explicit move as recommended by Clang warningBoris Kolpackov1-1/+1
2023-06-08Add support for buildfile importationBoris Kolpackov1-32/+210
2023-05-29Explicit group: dynamic membersBoris Kolpackov1-1/+1
2023-05-16Enter export stub targets with correct outBoris Kolpackov1-1/+1
2023-04-19Fix several issues in build system module importation logicmodule-importBoris Kolpackov1-4/+7
2022-12-14Improve empty simple value to empty list of names reduction heuristicsBoris Kolpackov1-1/+1
Specifically, do not reduce typed RHS empty simple values for prepend/append and additionally for assignment provided LHS is typed and is a container.
2022-12-12Adapt to dir_iterator API changeKaren Arutyunov1-2/+18
2022-12-02Fail if scope or target qualification in variable expansion is unknownBoris Kolpackov1-1/+5
There are three options here: we can "fall through" to an outer scope (there is always the global scope backstop; this is the old semantics, sort of), we can return NULL straight away, or we can fail. It feels like in most cases unknown scope or target is a mistake and doing anything other than failing is just making things harder to debug.
2022-11-29Move buildfiles to root_extra, use vector instead of unordered_setBoris Kolpackov1-2/+2
2022-11-16Initial low verbosity diagnostics reworkBoris Kolpackov1-8/+15
2022-11-09Make process exit diagnostics in executable metadata extraction consistentBoris Kolpackov1-11/+30
2022-11-08Make process exit diagnostics consistentBoris Kolpackov1-0/+2
In particular, we now always print error message on non-0 exit except in cases where such exit is ignored.
2022-10-13Work around Clang 6, 7 codegen issuesBoris Kolpackov1-33/+25
2022-10-13Optimize by going straight to public variable pool where applicableBoris Kolpackov1-1/+3
2022-10-13Switch to public/private variables modelBoris Kolpackov1-4/+6
Now unqualified variables are project-private and can be typified.
2022-10-11Factor variable patterns out of variable_pool into separate variable_patternsBoris Kolpackov1-1/+1
We have patterns only for the public variables pool.
2022-10-10Preparatory work for public/private variable distinctionBoris Kolpackov1-3/+10
We still always use the public var_pool from context but where required, all access now goes through scope::var_pool().
2022-06-28Add support for rule-specific import phase 2Boris Kolpackov1-10/+80
For example: import! [metadata, rule_hint=cxx.link] lib = libhello%lib{hello}
2022-06-17Add ability to ignore subprojects in create_bootstrap_outer()Boris Kolpackov1-3/+3
2022-04-20Add explicit flag to more efficiently avoid repeated load_root() callsBoris Kolpackov1-19/+21
2022-04-20Add import cacheBoris Kolpackov1-2/+57
2022-04-18Avoid locking target set if in load phaseBoris Kolpackov1-0/+3
2022-02-16Add pre/post hooks to load_root()Boris Kolpackov1-1/+15
2022-02-14Add ability to override amalgamation and subprojects in bootstrap_src()Boris Kolpackov1-2/+33
2021-12-15Return stable imported target name from import_direct()Boris Kolpackov1-17/+41
2021-10-26Add commentBoris Kolpackov1-2/+4
2021-10-15Allow explicit amalgamation by simple projectsBoris Kolpackov1-9/+8
2021-09-02Add diag_frame around export stub loadingBoris Kolpackov1-2/+11
This gives the location of the importer in case the export stub issues any diagnostics.
2021-08-13Fix amalgamation discovery logic some moreBoris Kolpackov1-1/+5
2021-08-03Fix incorrect assumption in amalgamation discovery logicBoris Kolpackov1-8/+10
2021-07-30Fix issue in amalgamation discoveryBoris Kolpackov1-41/+53
2021-05-07Various improvements and clarifications in metadata handlingBoris Kolpackov1-42/+81
2021-04-22Incorporate project environment checksum into cc::compiler_info cache keyBoris Kolpackov1-1/+2
2021-04-07Register environment variables for hermetic build configurationsBoris Kolpackov1-5/+25
2021-04-02Add support for propagating project environmentBoris Kolpackov1-5/+32
2021-03-19Redo entering of src directories into scope_mapBoris Kolpackov1-13/+13
2021-02-08Enter scope src directories into scope mapBoris Kolpackov1-16/+32
2021-01-12Diagnose typed and project-qualified empty namesBoris Kolpackov1-0/+5
2020-12-15Cache more results of executing programs (compilers, etc)Boris Kolpackov1-8/+23
2020-12-14Fix bug in create_new_target_locked()Karen Arutyunov1-1/+1
2020-11-13Minor tracing fix and additionBoris Kolpackov1-1/+1
2020-11-06Add support for test timeoutsKaren Arutyunov1-0/+1
2020-10-28Pad config report to maximum name lengthBoris Kolpackov1-10/+32
2020-09-24Give hints for common causes of "no rule to update ..." errorBoris Kolpackov1-1/+1