aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-01-02Fix data race (tsan) bugBoris Kolpackov2-12/+15
2018-01-02Fix few undefined behavior (ubsan) bugsBoris Kolpackov9-70/+77
2018-01-01Fix bug in scheduler::wait_idle()Boris Kolpackov1-5/+4
2018-01-01Fix lifetime issue in progress monitoring logicBoris Kolpackov1-2/+3
2018-01-01Fix race in scheduler progress setting logicBoris Kolpackov3-15/+37
2017-12-26Adapt regex to digit(wchar_t) added to libbutlKaren Arutyunov2-2/+4
2017-12-23Use BUILD2_ATOMIC_NON_LOCK_FREE macro to suppress non-lock-free errorsBoris Kolpackov1-1/+7
2017-12-19Remove unused variableKaren Arutyunov1-2/+0
2017-12-17Fix few issues with structured result outputBoris Kolpackov7-18/+23
2017-12-17Diagnose C++ source/output target type mismatch (mxx{} vs cxx{})Boris Kolpackov1-0/+22
2017-12-17Trace non-zero process exit codeBoris Kolpackov4-31/+15
Also convert to using operator<<(ostream,process_exit).
2017-12-17Don't look for group recipe if target state is failedBoris Kolpackov1-2/+3
2017-12-16Improve process execution diagnostics by reusing run_*() APIBoris Kolpackov17-315/+250
2017-12-16Split stream verbosity into components (path, extension)Boris Kolpackov11-85/+112
Use to make sure structured result output always contains absolute target path.
2017-12-16Redo string/stream representation of dir{} name/targetBoris Kolpackov6-46/+170
Now instead of: dir{foo/bar/} We get: foo/dir{bar/} Which feels more consistent with how we print other names/targets. That is, "directory bar/ in directory foo/" similar how foo/exe{bar} is "executable bar in directory foo/".
2017-12-16Generated options code update for previous commitBoris Kolpackov1-8/+14
2017-12-16Add support for structured result output (--structured-result)Boris Kolpackov9-44/+202
2017-12-15Remove unnecessary according to Clang lambda captures to suppress warningsBoris Kolpackov1-4/+4
Apparently, use of a reference to a global variable need not be captured: https://bugs.llvm.org/show_bug.cgi?id=35669
2017-12-15Drop workaround for libpkgconf flags parsing issue (fixed by upstream package)Karen Arutyunov1-53/+2
2017-12-15Adapt to libbutl process API extensionKaren Arutyunov1-17/+23
2017-12-15Update Apple Clang to vanilla Clang version remapping (up to Xcode 9.2)Boris Kolpackov1-2/+14
2017-12-14Fix Windows linking issueBoris Kolpackov1-4/+4
2017-12-13Fix Clang issueBoris Kolpackov1-1/+1
2017-12-13Implement info meta operationBoris Kolpackov24-71/+227
This meta operation can be used to print basic information (name, version, source/output roots, etc) for one or more projects.
2017-12-13Add workaround for libpkgconf flags parsing issueKaren Arutyunov1-0/+50
2017-12-12Add support for VC 15u5 (compiler version 19.12)Boris Kolpackov5-16/+29
2017-12-12Add support for C17 now that both GCC 8 and Clang 6 recognize -std=c17Boris Kolpackov1-2/+7
2017-12-11Fix Clang on Windows C runtime library linking logicBoris Kolpackov2-3/+3
2017-12-09Fix git commit id calculationBoris Kolpackov5-65/+93
2017-12-08Resolve VC issueBoris Kolpackov1-7/+7
2017-12-08Improve inconsistent C++ compiler diagnosticsBoris Kolpackov2-6/+20
2017-12-08Link libcmt.lib when building with Clang for win32-msvc targetBoris Kolpackov1-0/+11
2017-12-07Distinguish between "fixed" and "default" target extensionsBoris Kolpackov15-251/+270
This fixes wrong merging of, say, file{README} and file{README.MySQL} (in libmysqlclient).
2017-12-06Remove stray staticBoris Kolpackov1-1/+1
2017-12-06Fix bug in relaxed_atomicBoris Kolpackov1-1/+1
2017-12-06More work on Clang on Windows/MSVC supportBoris Kolpackov4-151/+147
2017-12-05Work around VC14 issuesBoris Kolpackov2-1/+18
2017-12-05Add support for first-access value typification during non-load phasesBoris Kolpackov5-50/+115
2017-12-05Minor value typification API changeBoris Kolpackov3-6/+6
2017-12-04Uninline variable_map::typify()Boris Kolpackov1-1/+1
2017-12-04Remap Clang on Windows target triplet to that of MSVCBoris Kolpackov1-0/+17
2017-12-04Improve cc/bin target mismatch diagnosticsBoris Kolpackov2-4/+8
2017-12-04Recognize empty cc.patternBoris Kolpackov5-9/+9
2017-12-04Improve diagnostics when c-family modules using different toolchainsBoris Kolpackov6-20/+50
We now also warn on toolchain pattern mismatch.
2017-12-04Implement better cross-hinting between c-family modulesBoris Kolpackov7-61/+141
2017-12-04Add cast_empty() for value castingBoris Kolpackov3-5/+47
2017-12-04Suppress duplicate module init() calls for same scopeBoris Kolpackov1-8/+38
2017-12-04Handle phase_lock failure in async match tasksBoris Kolpackov1-4/+8
2017-12-03Add few clarifying commentsBoris Kolpackov2-2/+5
2017-12-03Allow typification of variables and values across load generationsBoris Kolpackov6-34/+14
The original semantics turned out to be too restrictive. For example, the user may have specified the config.c variable on the command line that is only used by an imported project that is loaded in a subsequent generation. We are also relaxing it for values since conceptually the two feel the same. For a value the (hypothetical) example is a "common" variable set in a project root that is only queried in a subdirectory in a subsequent generation.