path: root/build2/cc/link-rule.cxx
AgeCommit message (Collapse)AuthorFilesLines
2019-08-23dry_runBoris Kolpackov1-9/+11
2019-08-23Minor fixKaren Arutyunov1-1/+1
2019-08-23Meta/operations and countsBoris Kolpackov1-4/+5
2019-08-22Run phaseBoris Kolpackov1-1/+1
2019-08-22Targets, scopes, varsBoris Kolpackov1-6/+7
2019-08-17Revert testing code (link name on Windows)Boris Kolpackov1-2/+1
2019-08-16Fix bugs in derive_libs_paths() logicBoris Kolpackov1-23/+29
2019-08-16Cosmetic changesBoris Kolpackov1-2/+2
2019-08-15Fix bug in mkanylink() usageBoris Kolpackov1-5/+5
2019-08-15Minor naming improvementBoris Kolpackov1-5/+5
2019-08-15Add support for bin.lib.load_suffixBoris Kolpackov1-6/+23
This allow the creation of yet another symlink to the shared library that is meant to be used for dynamic loading. For example, we may want to embed the main program interface number into its plugins to make sure that we only load compatible versions.
2019-08-15Fix bug in bin.lib.suffix handlingBoris Kolpackov1-19/+13
2019-08-15Implement libs_paths symlinking support on WindowsBoris Kolpackov1-8/+26
Also, temporarily enable libs_paths::link on Windows for testing.
2019-08-14Enable libs_paths symlinking logic on WindowsBoris Kolpackov1-21/+25
This should currently be noop since all the paths are set to empty.
2019-08-14Make libs_path::link empty instead of import library path for WindowsBoris Kolpackov1-19/+22
We don't really use this anywhere (in particular, the import library name cannot possibly match the clean pattern).
2019-07-04Remove libu{} target groupBoris Kolpackov1-19/+12
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-7/+7
2019-06-27Fix member-group linkup issue in previous fixBoris Kolpackov1-57/+86
We cannot linkup prerequisite targets since we are not matching them.
2019-06-26Fix C/C++ link rule matching ambiguity by seeing-through utility librariesBoris Kolpackov1-29/+118
2019-06-21Add support for [config.]{cc,c,cxx}.aoptions (archive options)Boris Kolpackov1-11/+12
In particular, this can be used to suppress lib.exe warnings, for example: cc.aoptions += /IGNORE:4221
2019-06-06Fix cc link rule matching ambiguity wrt to C/C++ sourcesBoris Kolpackov1-3/+5
Considering a C header as C++ source was definitely a bad idea.
2019-06-03Adapt to renaming traits alias to traits_type for basic_path, basic_url, and ↵Karen Arutyunov1-2/+2
string_table class templates
2019-05-15Cleanup clean_extra() mess (pun intended)Boris Kolpackov1-40/+52
2019-05-15Add noteBoris Kolpackov1-0/+3
2019-05-15Add ability to depend on (declared) ad hoc group memberBoris Kolpackov1-26/+29
2019-05-14Fix pdb{} target clashBoris Kolpackov1-3/+10
2019-05-13Remove order dependence in ad hoc group handlingBoris Kolpackov1-56/+56
Also, don't match group_recipe since we neither execute nor access the state.
2019-05-10Minor cleanups and clarificationsBoris Kolpackov1-4/+6
2019-04-30Initial take on header unit and include translation supportBoris Kolpackov1-1/+0
2019-04-17Incorporate ad hoc prerequisite mtime into out-of-date determinationBoris Kolpackov1-10/+25
2019-04-16Cosmetic changeBoris Kolpackov1-2/+2
2019-04-08Support for --dry-run|-n mode, perform update partBoris Kolpackov1-129/+149
2019-04-05Add bug number for Apple ar mtime truncation bugBoris Kolpackov1-1/+1
2019-04-04Add ability to disable automatic rpath, support for custom rpath-linkBoris Kolpackov1-19/+38
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-04-03Change depdb API and handle system_error thrown by butl::file_mtime()Karen Arutyunov1-2/+2
Previously, debdb operations threw system_error and io_error to signal errors, except for opening which issued diagnostics and failed. Now all operations print the diagnostics and fail on system and IO errors.
2019-02-27Escape backslashes in GNU options file on WindowsBoris Kolpackov1-2/+22
2019-02-27Use options (aka response) file on Windows if link command line is too longBoris Kolpackov1-10/+111
2019-02-15Don't try to pass utility's loptions/libs when linking static libraryBoris Kolpackov1-11/+34
2019-01-16Update copyright yearKaren Arutyunov1-1/+1
2019-01-09Fix bug in cc rules matchingBoris Kolpackov1-1/+1
2019-01-09Tighten cc rules matchingBoris Kolpackov1-7/+13
Specifically, make sure the rule does not match if there is a c-common prerequisites that it doesn't recognize.
2018-11-30Adapt to inventing path_match_flagsKaren Arutyunov1-4/+3
2018-11-28Add --[no-]mtime-check options to control this behavior at runtimeBoris Kolpackov1-1/+1
By default the checks are enabled only for the staged toolchain.
2018-11-23Revert rename of .exe.d to .d (did not make any difference)Boris Kolpackov1-5/+3
2018-11-22Rename .exe.d to just .d to test Windows interference theoryBoris Kolpackov1-3/+5
2018-11-22Make backwards modification time check permanent, add another experimentBoris Kolpackov1-23/+2
2018-11-21More backwards modification time experimentationBoris Kolpackov1-1/+2
2018-11-20Improve workaround for backwards modification time issueBoris Kolpackov1-9/+9
2018-11-19Extend backwards modification time diagnosticsBoris Kolpackov1-1/+2
2018-11-19Workaround Apple ar fractional second truncation bug on APFSBoris Kolpackov1-0/+16