aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/file.cxx
AgeCommit message (Collapse)AuthorFilesLines
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.
2020-07-09Add support for ad hoc importationBoris Kolpackov1-68/+299
2020-07-08Fix bug in switch_scope()Boris Kolpackov1-1/+1
2020-07-03Cutoff amalgamation and subproject for simple projectsBoris Kolpackov1-40/+35
2020-07-02Optimize variable extraction in bootstrap_src()Boris Kolpackov1-64/+58
2020-07-02Cache project name in root_extraBoris Kolpackov1-8/+29
2020-06-09Make importation of unqualified targets illegalBoris Kolpackov1-6/+9
2020-06-09Move recipe build directory to build/build/recipes/Boris Kolpackov1-6/+9
Our new scheme is to have any "out" content in a subdirectory called build/ (build/build/ for the build system core, build/<module>/build/ for modules). This way we can ignore them in .gitignore with a generic entry.
2020-06-09Make metadata variable prefix mandatoryBoris Kolpackov1-28/+10
While we could automatically set it if the target is imported, there is nothing we can do if the target is used in the same project. So to avoid confusion we make it mandatory.