aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/file.cxx
AgeCommit message (Collapse)AuthorFilesLines
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
2020-09-24Add post-boot module functionBoris Kolpackov1-1/+10
2020-09-22Add ability to skip external modules during bootstrap (--no-external-modules)Boris Kolpackov1-1/+7
2020-09-15Handle infinite output when extracting metadata (GitHub issue #102)Boris Kolpackov1-2/+22
2020-08-26Fix bug in module initialization orderBoris Kolpackov1-21/+13
2020-08-24Only suggest ad hoc path import for path-based targetsBoris Kolpackov1-6/+10
2020-08-16Add ability to initialize bootstrapped modules after loading root.buildBoris Kolpackov1-5/+23
2020-08-16Redo modules map as vectorBoris Kolpackov1-8/+4
2020-07-12Cache subprojects variable value in scope::root_extraBoris Kolpackov1-35/+17
2020-07-10Add support for project-local importationBoris Kolpackov1-11/+19
An import without a project name or with the same name as the importing project's is now treated as importation from the same project. For example, given the libhello project that exports the lib{hello} target, a buildfile for an executable in the same project instead of doing something like this: include ../libhello/ exe{hello}: ../libhello/lib{hello} Can now do this: import lib = libhello%lib{hello} Or: import lib = lib{hello} And then: exe{hello}: $lib Note that a target in project-local importation must still be exported in the project's export stub. In other words, project-local importation goes through the same mechanisms as normal import.