aboutsummaryrefslogtreecommitdiff
path: root/build2/bin/init.cxx
AgeCommit message (Collapse)AuthorFilesLines
2019-07-05Remove dead code (libu{})Boris Kolpackov1-3/+0
2019-07-05Move config, dist, test, and install modules into libraryKaren Arutyunov1-4/+4
2019-07-04Remove libu{} target groupBoris Kolpackov1-3/+2
The semantics provided by libu{} is rarely required and as result was not yet documented. However, if you are using it, the new way to achieve the same result is to use both libue{} and libul{} explicitly, for example: exe{foo}: libue{foo} lib{foo}: libul{foo} {libue libul}{foo}: cxx{*}
2019-07-01Split build system into library and driverBoris Kolpackov1-3/+3
2019-06-24Constrain access to options to build system driver main() onlyBoris Kolpackov1-2/+2
2019-06-19Improve diagnosticsBoris Kolpackov1-13/+13
2019-06-03Adapt to renaming traits alias to traits_type for basic_path, basic_url, and ↵Karen Arutyunov1-4/+10
string_table class templates
2019-04-30Initial take on header unit and include translation supportBoris Kolpackov1-0/+8
2019-04-04Add ability to disable automatic rpath, support for custom rpath-linkBoris Kolpackov1-4/+43
Specifically, the new config.bin.rpath.auto variable can be used to disable automatic addition of prerequisite library rpaths, for example: $ b config.bin.rpath.auto=false Note that in this case rpath-link is still added where normally required and for targets that support it (Linux and *BSD). The new config.bin.rpath_link and config.bin.rpath_link.auto have the same semantics as config.bin.rpath* but for rpath-link.
2019-03-07Move bunch of root scope-only data members to root_extraBoris Kolpackov1-1/+1
2019-02-03Fix bug in bin moduleBoris Kolpackov1-1/+1
2019-01-16Update copyright yearKaren Arutyunov1-1/+1
2018-10-26Add config.{c,cxx}.{id,version,target} configuration variablesBoris Kolpackov1-1/+1
These variables allow overriding guessed compiler id/version/target, for example, in case of mis-guesses or when working with compilers that don't report their base (e.g., GCC, Clang) with -v/--version (common in the embedded space).
2018-08-27Don't insist on install rules for non-file targetsBoris Kolpackov1-2/+2
This helps with (not) installing libu*{} groups.
2018-08-25Implement missing pieces in utility libraries supportBoris Kolpackov1-90/+99
In particular, we can now build static libraries out of utility libraries.
2018-08-14Use thin archives if available for utility librariesBoris Kolpackov1-5/+29
Thin archives are supported by GNU ar since binutils 2.19.1 and LLVM ar since LLVM 3.8.0.
2018-07-16Implement in moduleBoris Kolpackov1-1/+1
Given test.in containing something along these lines: foo = $foo$ Now we can do: using in file{test}: in{test.in} file{test}: foo = FOO The alternative variable substitution symbol can be specified with the in.symbol variable and lax (instead of the default strict) mode with in.substitution. For example: file{test}: in.symbol = '@' file{test}: in.substitution = lax
2018-06-12Add built-in support for Windows module definition files (.def)Boris Kolpackov1-0/+6
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-7/+18
Instead we now have two more or less separate match states for outer and inner parts of an action.
2017-12-16Improve process execution diagnostics by reusing run_*() APIBoris Kolpackov1-1/+2
2017-12-04Improve cc/bin target mismatch diagnosticsBoris Kolpackov1-1/+1
2017-07-28Implement support for linking whole archiveBoris Kolpackov1-0/+18
2017-07-27Initial infrastructure for utility librariesBoris Kolpackov1-9/+18
2017-05-31C++ modules work: add target typesBoris Kolpackov1-0/+9
2017-05-01Add hxx extension for headersKaren Arutyunov1-9/+9
2017-03-04Only set install variables if install module has been loadedBoris Kolpackov1-23/+30
While generally a good idea, failing to do this trips up our load generation protection.
2017-02-13Add bin.vars moduleBoris Kolpackov1-71/+88
Use in cc to make sure hint variables are already registered.
2017-02-13Add model mutex, make var_pool const by defaultBoris Kolpackov1-17/+17
2017-01-23Make rules const throughoutBoris Kolpackov1-2/+2
2017-01-12Implement support for narrowing down tests (config.test)Boris Kolpackov1-23/+23
2017-01-09Make use of operator<<(ostream, exception)Karen Arutyunov1-2/+1
2017-01-06Store platform targets as typed target_tripletBoris Kolpackov1-14/+16
2017-01-05Update copyright yearBoris Kolpackov1-1/+1
2016-12-16Move exe{} to build2 core, add fallback extensions (existing files)Boris Kolpackov1-3/+0
2016-11-04Various design/implementation cleanupsBoris Kolpackov1-2/+2
2016-08-30Add support for target visibility, use for dist, test, installBoris Kolpackov1-2/+1
This means we can no longer write: install = false Now it should be: *: install = false
2016-08-30Remove backwards-compatibility kludgesBoris Kolpackov1-3/+0
2016-08-29Implement initial support for library versioningBoris Kolpackov1-0/+6
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
2016-08-26Add pkg-config support for import installedBoris Kolpackov1-2/+2
Redesign library importing/exporting while at it.
2016-08-22Cache process_path, use fallback search directory for binutilsBoris Kolpackov1-27/+56
2016-08-19Implement uninstall operationBoris Kolpackov1-0/+1
2016-08-17Add config.bin.{prefix,suffix} convenience valuesBoris Kolpackov1-8/+18
These can be used to specify for both lib and exe.
2016-08-17Add support for config.bin.{lib,exe}.{prefix,suffix}Boris Kolpackov1-13/+33
This replaces the bin.libprefix functionality.
2016-08-12Rename module to initBoris Kolpackov1-0/+714