aboutsummaryrefslogtreecommitdiff
path: root/build2/cc/common.cxx
AgeCommit message (Collapse)AuthorFilesLines
2019-08-22Targets, scopes, varsBoris Kolpackov1-19/+24
2019-08-22Make use of butl::sanitize_identifier()Karen Arutyunov1-9/+2
2019-08-21Cleanup context.hxx and its usageBoris Kolpackov1-1/+0
2019-07-01Split build system into library and driverBoris Kolpackov1-7/+7
2019-06-26Fix C/C++ link rule matching ambiguity by seeing-through utility librariesBoris Kolpackov1-1/+1
2019-06-19Improve diagnosticsBoris Kolpackov1-3/+5
2019-06-18Fix crashing on unhandled invalid_path thrown by extract_library_dirs()Karen Arutyunov1-23/+31
2019-06-03Adapt to renaming traits alias to traits_type for basic_path, basic_url, and ↵Karen Arutyunov1-3/+3
string_table class templates
2019-05-13Remove order dependence in ad hoc group handlingBoris Kolpackov1-2/+2
Also, don't match group_recipe since we neither execute nor access the state.
2019-04-03Change depdb API and handle system_error thrown by butl::file_mtime()Karen Arutyunov1-3/+3
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-03-12Tweak resolution of relative targets from export.libsBoris Kolpackov1-4/+8
2019-02-15Don't try to pass utility's loptions/libs when linking static libraryBoris Kolpackov1-2/+2
2019-01-16Update copyright yearKaren Arutyunov1-1/+1
2018-11-01Add support for rule-specific variables, use to fix cc.type data raceBoris Kolpackov1-2/+3
2018-09-06Fix issues with interaction between binless logic and Windows DLLsBoris Kolpackov1-4/+3
2018-09-05Only consider common .pc file for binless variant if there is no binfullBoris Kolpackov1-1/+5
2018-09-05Adjust pkg-config logic to cover binless librariesBoris Kolpackov1-12/+52
2018-08-25Implement missing pieces in utility libraries supportBoris Kolpackov1-118/+139
In particular, we can now build static libraries out of utility libraries.
2018-08-07Add support for default extension specification, trailing dot escapingBoris Kolpackov1-5/+3
For example: cxx{*}: extension = cxx cxx{foo} # foo.cxx cxx{foo.test} # foo.test (probably what we want...) cxx{foo.test...} # foo.test.cxx (... is this) cxx{foo..} # foo. cxx{foo....} # foo.. cxx{foo.....} # error (must come in escape pair)
2018-07-30Make project variable to be of project_name typeKaren Arutyunov1-0/+1
2018-06-28Implement support for excluded and ad hoc prerequisitesBoris Kolpackov1-1/+4
The inclusion/exclusion is controlled via the 'include' prerequisite-specific variable. Valid values are: false - exclude true - include adhoc - include but treat as an ad hoc input For example: lib{foo}: cxx{win32-utility}: include = ($cxx.targe.class == 'windows') exe{bar}: libs{plugin}: include = adhoc
2018-05-25Fix target locking race in search_library()Boris Kolpackov1-0/+8
2018-05-19Update copyright yearKaren Arutyunov1-1/+1
2018-05-16Fix uncaught invalid_path exceptionKaren Arutyunov1-1/+4
2018-02-03Get rid of action rule override semanticsBoris Kolpackov1-14/+14
Instead we now have two more or less separate match states for outer and inner parts of an action.
2017-12-06More work on Clang on Windows/MSVC supportBoris Kolpackov1-4/+4
2017-11-27Add {c,cxx}.class variablesBoris Kolpackov1-5/+5
Compiler class describes a set of compilers that follow more or less the same command line interface. Compilers that don't belong to any of the existing classes are in classes of their own (say, Sun CC would be on its own if we were to support it). Currently defined compiler classes: gcc gcc, clang, clang-apple, icc (on non-Windows) msvc msvc, clang-cl, icc (Windows)
2017-09-25Get rid of pkgconfig moduleKaren Arutyunov1-2/+1
2017-09-25Make use of libpkgconf libraryKaren Arutyunov1-1/+1
2017-08-02Cosmetic cleanupBoris Kolpackov1-5/+5
2017-07-31Experimental (and probably broken) pkg-config generation supportBoris Kolpackov1-2/+5
2017-07-29Fix bug in installed import library search on WindowsBoris Kolpackov1-2/+6
2017-07-28Implement support for linking whole archiveBoris Kolpackov1-9/+14
2017-07-27Initial infrastructure for utility librariesBoris Kolpackov1-18/+24
2017-07-25Remove incorrect assert in imported library processing logicBoris Kolpackov1-2/+5
2017-06-12Remove few unused lambda capturesBoris Kolpackov1-2/+2
2017-05-25Add compiler_id enumBoris Kolpackov1-5/+5
2017-05-01Add hxx extension for headersKaren Arutyunov1-9/+9
2017-03-02Implement parallel matchBoris Kolpackov1-94/+104
2017-02-13Use target:as<> instead of static_cast for target castingBoris Kolpackov1-2/+2
2017-02-13Tighten code that operates during both search/match and executeBoris Kolpackov1-67/+99
2017-02-13Pass const target& to recipesBoris Kolpackov1-13/+13
2017-02-13Pass const scope& where modification should not happenBoris Kolpackov1-5/+5
2017-02-13Add notion of phase, enforceBoris Kolpackov1-1/+4
2017-02-13Add model mutex, make var_pool const by defaultBoris Kolpackov1-5/+5
2017-01-19Get rid of extension_poolBoris Kolpackov1-16/+10
2017-01-05Update copyright yearBoris Kolpackov1-1/+1
2016-11-18Make names and vector<name> different types, add typed value constructorBoris Kolpackov1-1/+1
2016-09-05Change order in which library options are processedBoris Kolpackov1-48/+93
The idea is that we want more "specialized" -I/-L options before more "generic" in order to make sure we don't pick up installed headers or libraries. This is still not bullet-proof though.
2016-09-03Fix uninitialized variable warningBoris Kolpackov1-1/+1