summaryrefslogtreecommitdiffstats
path: root/build2/utility.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Only search for external tools (compilers, linkers, etc) in PATHBoris Kolpackov2018-11-051-3/+4
| | | | | | | 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).
* Unset CL and _CL_ environment variables when detecting MSVCBoris Kolpackov2018-08-211-3/+12
|
* Make project variable to be of project_name typeKaren Arutyunov2018-07-301-7/+9
|
* Add $process.run() and $process.run_regex() functionsBoris Kolpackov2018-06-201-2/+6
| | | | | | | | | | | | | | $process.run(<prog>[ <args>...]) Return trimmed stdout. $process.run_regex(<prog>[ <args>...], <pat> [, <fmt>]) Return stdout lines matched and optionally processed with regex. Each line of stdout (including the customary trailing blank) is matched (as a whole) against <pat> and, if successful, returned, optionally processed with <fmt>, as an element of a list.
* Remove redundant header includeKaren Arutyunov2018-06-011-1/+0
|
* Update copyright yearKaren Arutyunov2018-05-191-1/+1
|
* Move trim(), next_word() to libbutlBoris Kolpackov2018-04-281-37/+0
|
* Implement run buildfile directiveBoris Kolpackov2018-04-261-10/+18
| | | | | | | Now we can do: run echo 'foo = bar' print $foo
* Implement compiler_info cachingBoris Kolpackov2018-01-081-1/+6
|
* Complete runtime/stdlib detectionBoris Kolpackov2018-01-081-1/+2
|
* Extend find_option_prefix() to return optionBoris Kolpackov2018-01-051-20/+20
|
* Trace non-zero process exit codeBoris Kolpackov2017-12-171-3/+9
| | | | Also convert to using operator<<(ostream,process_exit).
* Improve process execution diagnostics by reusing run_*() APIBoris Kolpackov2017-12-161-19/+30
|
* Split stream verbosity into components (path, extension)Boris Kolpackov2017-12-161-1/+1
| | | | | Use to make sure structured result output always contains absolute target path.
* Fix git commit id calculationBoris Kolpackov2017-12-091-1/+1
|
* Recognize empty cc.patternBoris Kolpackov2017-12-041-1/+1
|
* Filter out warning as error options during preprocessingBoris Kolpackov2017-08-061-8/+14
|
* Print progress to terminal by defaultKaren Arutyunov2017-08-061-0/+1
|
* Clean up module-related diagnosticsBoris Kolpackov2017-06-161-0/+9
|
* Add workaround for Clang module import during preprocessingBoris Kolpackov2017-06-121-13/+13
|
* Fix VC15 warnings (/W3)Karen Arutyunov2017-05-131-1/+5
|
* Add hxx extension for headersKaren Arutyunov2017-05-011-5/+5
|
* Align build.version.* variables with standard version/version moduleBoris Kolpackov2017-04-281-1/+1
|
* Use standard_version for module versioning checksBoris Kolpackov2017-04-281-81/+11
|
* Implement support for pre-processing version headers (or other files)Boris Kolpackov2017-04-281-0/+2
| | | | Also implement the build system version check.
* Adapt to process_error changeKaren Arutyunov2017-04-101-1/+1
|
* Implement support for wildcard patternsBoris Kolpackov2017-03-101-1/+9
|
* Implement parallel matchBoris Kolpackov2017-03-021-0/+10
|
* Make use of operator<<(ostream, exception)Karen Arutyunov2017-01-091-5/+5
|
* Update copyright yearBoris Kolpackov2017-01-051-1/+1
|
* Make use of butl::path::current(), butl::path::parent()Karen Arutyunov2016-12-071-2/+2
|
* Use diagnostics facility from libbutlBoris Kolpackov2016-11-221-18/+18
|
* Make build.driver path absoluteBoris Kolpackov2016-11-071-2/+4
|
* Add --no-line, --no-column optionsBoris Kolpackov2016-11-041-0/+1
|
* Add build.driver variable with build system driver path (argv[0])Boris Kolpackov2016-11-041-1/+4
|
* Rework test runnerBoris Kolpackov2016-11-041-0/+3
|
* Factor global initialization into init() analogous to reset()Boris Kolpackov2016-11-041-0/+19
|
* Minor dependency cleanupBoris Kolpackov2016-11-041-1/+54
|
* Audit all print_process()/process ctor for path_search()Karen Arutyunov2016-09-171-1/+1
|
* Implement initial support for library versioningBoris Kolpackov2016-08-291-1/+1
| | | | | | | | | | | | | Currently we only support platform-independent versions that get appended to the library name. The magic incantation is this: lib{foo}: bin.lib.version = @-1.2 This will produce libfoo-1.2.so, libfoo-1.2.dll, etc. In the future we will support things like this: lib{foo}: bin.lib.version = linux@1.2.3 freebsd@1.2 windows@1.2
* Add pkg-config support for import installedBoris Kolpackov2016-08-261-3/+8
| | | | Redesign library importing/exporting while at it.
* Handle *.export.libs, distinguish interface and implementation dependenciesBoris Kolpackov2016-08-241-0/+19
| | | | | | | | | | | | | | | | | | | | | A library dependency on another libraries is either "interface" or "implementation". If it is interface, then everyone who links to this library should also link to the interface dependency, explicitly. A good example of an interface dependency is a library API that is called in inline functions. Interface dependencies of a library should be explicitly listed in the *.export.libs (where we can also list target names). So the typical usage will be along these lines: import int_libs = libfoo%lib{foo} import int_libs += ... import imp_libs = libbar%lib{bar} import imp_libs += ... lib{baz}: ... $int_libs $imp_libs lib{baz}: cxx.export.libs = $int_libs
* Cache process_path, use fallback search directory for binutilsBoris Kolpackov2016-08-221-5/+42
|
* Adjust to new butl::process interfaceBoris Kolpackov2016-08-211-2/+2
|
* Implement c/cxx toolchain cross-hintingBoris Kolpackov2016-08-121-0/+15
|
* Add ignore case support for find_option()Karen Arutyunov2016-08-101-32/+22
|
* Make /EHsc and /MD default for VC compilerBoris Kolpackov2016-07-291-10/+113
|
* Adjust to new path implementation, use to support reversibilityBoris Kolpackov2016-07-281-19/+3
|
* Adapt to fdstream extensionKaren Arutyunov2016-07-231-1/+1
|
* Add standard static/shared macros for imported installed librariesBoris Kolpackov2016-07-181-2/+2
|