aboutsummaryrefslogtreecommitdiff
path: root/build2/cli/init.cxx
AgeCommit message (Collapse)AuthorFilesLines
2023-04-13Move cli module to libbuild2-cli libraryBoris Kolpackov1-287/+0
This is a temporary measure (until we unboundle this module) needed for in-process configure support in bpkg.
2022-10-13Optimize by going straight to public variable pool where applicableBoris Kolpackov1-1/+3
2022-02-07Add support for meta-operation wildcard in scope::insert_rule()Boris Kolpackov1-11/+5
2021-12-15Return stable imported target name from import_direct()Boris Kolpackov1-3/+3
2020-08-16Redo modules map as vectorBoris Kolpackov1-10/+10
2020-04-27Rework tool importation along with cli moduleBoris Kolpackov1-262/+173
Specifically, now config.<tool> (like config.cli) is handled by the import machinery (it is like a shorter alias for config.import.<tool>.<tool>.exe that we already had). And the cli module now uses that instead of custom logic. This also adds support for uniform tool metadata extraction that is handled by the import machinery. As a result, a tool that follows the "build2 way" can be imported with metadata by the buildfile and/or corresponding module without any tool-specific code or brittleness associated with parsing --version or similar outputs. See the cli tool/module for details. Finally, two new flavors of the import directive are now supported: import! triggers immediate importation skipping any rule-specific logic while import? is optional import (analogous to using?). Note that optional import is always immediate. There is also the import-specific metadata attribute which can be specified for these two import flavors in order to trigger metadata importation. For example: import? [metadata] cli = cli%exe{cli} if ($cli != [null]) info "cli version $($cli:cli.version)"
2020-03-31Switch to project variable visibility by defaultBoris Kolpackov1-6/+4
2020-03-17Rework config::{omitted,required,optional}() into unified config_lookup()Boris Kolpackov1-19/+20
2020-03-11Minor config variable lookup cleanupsBoris Kolpackov1-3/+3
2020-02-07Drop copyright notice from source codeKaren Arutyunov1-1/+0
2020-01-29Rename module_base to module, redo module boot/init argument passingBoris Kolpackov1-7/+3
2020-01-28Use scope::var_pool()Boris Kolpackov1-7/+7
2020-01-28Use scope::insert_rule()Boris Kolpackov1-8/+6
2020-01-27Improve module loading APIBoris Kolpackov1-1/+1
2019-08-28Add build2_cli_load()Karen Arutyunov1-0/+16
2019-08-28Move cxx build system module to separate libraryKaren Arutyunov1-1/+1
2019-08-26Make target types project-wideBoris Kolpackov1-5/+4
2019-08-23Introduce notion of build contextBoris Kolpackov1-1/+1
All non-const global state is now in class context and we can now have multiple independent builds going on at the same time.
2019-07-05Move config, dist, test, and install modules into libraryKaren Arutyunov1-2/+2
2019-07-01Split build system into library and driverBoris Kolpackov1-4/+4
2019-06-19Improve diagnosticsBoris Kolpackov1-3/+3
2019-06-05Tweak generated header heuristics, add more diagnosticsBoris Kolpackov1-1/+1
2019-01-16Update copyright yearKaren Arutyunov1-1/+1
2018-11-05Only search for external tools (compilers, linkers, etc) in PATHBoris Kolpackov1-1/+7
Specifically, omit the current executable's directory on Windows since there is no reason for them to be found there automagically and this can lead to surprising behavior (for example, our MinGW GCC being used instead of the user's even though the user's is in PATH before ours).
2018-10-19Suggest override variable (config.x) when tool is not foundBoris Kolpackov1-2/+4
2018-07-30Fortify cli detection against "other" cli's (like Mono JIT compiler)Boris Kolpackov1-12/+25
2018-06-29Use depdb to track changes to cli compiler, options, etcBoris Kolpackov1-6/+27
2018-05-19Update copyright yearKaren Arutyunov1-1/+1
2018-02-07Initial work for default update outer operationBoris Kolpackov1-0/+2
While update still uses the old "all update rules update all their prerequisites" assumption, test and install have been fixed not to rely on this.
2018-02-03Get rid of action rule override semanticsBoris Kolpackov1-5/+5
Instead we now have two more or less separate match states for outer and inner parts of an action.
2017-12-17Trace non-zero process exit codeBoris Kolpackov1-1/+3
Also convert to using operator<<(ostream,process_exit).
2017-12-16Improve process execution diagnostics by reusing run_*() APIBoris Kolpackov1-0/+2
2017-05-01Add hxx extension for headersKaren Arutyunov1-9/+9
2017-04-10Adapt to process_error changeKaren Arutyunov1-1/+1
2017-03-03Fix cli distribution via groupBoris Kolpackov1-14/+14
2017-02-13Implement pattern-based variable typing, tighten variable type updateBoris Kolpackov1-3/+3
2017-02-13Add model mutex, make var_pool const by defaultBoris Kolpackov1-2/+2
2017-01-23Make rules const throughoutBoris Kolpackov1-1/+1
2017-01-09Make use of operator<<(ostream, exception)Karen Arutyunov1-1/+1
2017-01-05Update copyright yearBoris Kolpackov1-1/+1
2016-11-23Add support for config.cli=false (leave unconfigured)Boris Kolpackov1-19/+38
2016-11-04Adopt to auto_fd introduced to libbutl fdstreams and processKaren Arutyunov1-1/+1
2016-09-15Add io_error alias for std::ios_base::failureKaren Arutyunov1-1/+1
2016-09-02Fix bug in cli module diagnosticsBoris Kolpackov1-1/+1
2016-08-30Remove backwards-compatibility kludgesBoris Kolpackov1-14/+9
2016-08-23Split cli module into cli.config and cliBoris Kolpackov1-43/+77
2016-08-22Cache process_path, use fallback search directory for binutilsBoris Kolpackov1-11/+23
2016-08-12Rename module to initBoris Kolpackov1-0/+265