aboutsummaryrefslogtreecommitdiff
path: root/build2/install/rule.cxx
AgeCommit message (Collapse)AuthorFilesLines
2017-05-01Add hxx extension for headersKaren Arutyunov1-7/+7
2017-04-27Pass target to prerequisite searchBoris Kolpackov1-2/+2
2017-04-10Adapt to process_error changeKaren Arutyunov1-5/+5
2017-03-02Implement parallel matchBoris Kolpackov1-18/+14
2017-02-13Implement parallel error propagation, keep_going modeBoris Kolpackov1-3/+3
Keep going is the default but there is now the -s|--serial-stop that makes the driver run serially and stop at first error. Also fix some lockups, other minor improvements/features.
2017-02-13Do some naming cleanupsBoris Kolpackov1-2/+2
2017-02-13Implement parallel operation executionBoris Kolpackov1-1/+1
2017-02-13Use target:as<> instead of static_cast for target castingBoris Kolpackov1-6/+5
2017-02-13Pass const target& to recipesBoris Kolpackov1-22/+29
2017-02-13Pass const scope& where modification should not happenBoris Kolpackov1-2/+5
2017-02-13Add model mutex, make var_pool const by defaultBoris Kolpackov1-10/+10
2017-01-20Remove prerequisite caching in scopeBoris Kolpackov1-1/+1
We don't share them often and those that are shared (e.g., cxx{} in obja/objs{}) are lightweight (SOO).
2017-01-19Get rid of project_name_poolBoris Kolpackov1-1/+1
With small string optimizations this is most likely a hindrance rather that an optimization.
2017-01-09Make use of operator<<(ostream, exception)Karen Arutyunov1-10/+10
2017-01-05Update copyright yearBoris Kolpackov1-1/+1
2016-12-05Eliminate the use of '/...' paths on WindowsKaren Arutyunov1-11/+23
2016-11-04Cleanup match_result messBoris Kolpackov1-16/+32
2016-11-04Add target::out_dir() accessorBoris Kolpackov1-2/+1
2016-11-04Add support for skipping rule in delegate_match()Boris Kolpackov1-1/+1
2016-09-17Audit all print_process()/process ctor for path_search()Karen Arutyunov1-28/+38
2016-09-13Fix crashing on unhandled system_error thrown by file_exists()Karen Arutyunov1-0/+2
2016-09-13Fix crashing on empty installation directory nameKaren Arutyunov1-0/+4
2016-09-04Fix crash on uninstallKaren Arutyunov1-9/+15
2016-09-04Always use rm/rmdir utilities on Windows to delete stuff being usedBoris Kolpackov1-2/+8
2016-08-30Add support for install.subdirs so can be specified for scopeBoris Kolpackov1-30/+56
2016-08-30Change function names to make VC happyBoris Kolpackov1-16/+16
2016-08-29Implement initial support for library versioningBoris Kolpackov1-42/+101
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-23Add support for installing into a different file nameBoris Kolpackov1-27/+46
Now the install variable is a path, not dir_path. If it is a directory (ends with a trailing slash), then the target is installed into this directory with the same name. Otherwise, the entire path is used as the installation destination.
2016-08-19Implement uninstall operationBoris Kolpackov1-126/+390
2016-08-18Add global config.install.{cmd,options,sudo,mode,dir_mode}Boris Kolpackov1-6/+19
This way we can do: b install \ config.install.data_root=/tmp/data \ config.install.exec_root=/tmp/exec \ config.install.sudo=sudo
2016-08-10Add ignore case support for find_option()Karen Arutyunov1-3/+1
2016-08-03Add support for preserving subdirectories when installingBoris Kolpackov1-8/+32
This is handy, for example, when installing headers: install.include = $install.include/foo install.include.subdirs = true The base for calculating the subdirectories is the scope where the subdirs value is set.
2016-08-01Work around MSYS2 install.exe permission issueBoris Kolpackov1-3/+36
2016-07-28Adjust to new path implementation, use to support reversibilityBoris Kolpackov1-2/+2
2016-07-08Move filesystem-related functions from context to new filesystem filesBoris Kolpackov1-2/+1
2016-06-26Add notion of ad hoc group, use to handle DLL/import libraryBoris Kolpackov1-18/+46
2016-04-11New configuration logic, iteration 1Boris Kolpackov1-4/+4
2016-03-28Clean up variable usageBoris Kolpackov1-5/+5
2016-03-28Add variable cast from lookupBoris Kolpackov1-10/+10
2016-03-28New variable architectureBoris Kolpackov1-13/+16
2016-03-11Implement --config-{guess,sub} optionsBoris Kolpackov1-1/+0
2016-02-29Rename level[1-6]() to l[1-6]()Boris Kolpackov1-1/+1
2016-02-29Implement auxiliary dependency database (.d files), use in cxx.compileBoris Kolpackov1-4/+2
This is part of the "High Fidelity Build" work.
2016-02-15Catch system_error thrown by dir_exists() in installBoris Kolpackov1-44/+50
For example, we can get EACCES because we don't have permissions for some of the leading components. Of course, if we have sudo, then that may not be the case if we actually tried 'install -d' on it. So this will probably have to be revised at some point.
2016-02-12<types>/<utility> scheme cleanupBoris Kolpackov1-2/+2
2016-01-25Create install.root instead of complaining if it doesn't existBoris Kolpackov1-8/+9
2016-01-09Update copyright yearBoris Kolpackov1-1/+1
2016-01-05Rename build directory/namespace to build2Boris Kolpackov1-0/+410