Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2024-01-10 | Fix bunch of typos | Boris Kolpackov | 6 | -10/+10 | |
2024-01-09 | Disable use of -frewrite-includes for assembler with preprocessor files | Boris Kolpackov | 1 | -3/+24 | |
With -frewrite-includes Clang has issues with correctly tracking location information (manifests itself as wrong line numbers in debug info, for example). The result also appears to reference the .Si file instead of the original source file for some reason. While at it also omit trying to scan such files since that can be hazardous (such files sometimes use `#`-style comments). | |||||
2024-01-09 | Allow imported buildfiles to using config.* variables from own project | Boris Kolpackov | 3 | -38/+189 | |
2024-01-08 | Improve documentation comment | Boris Kolpackov | 1 | -2/+2 | |
2024-01-08 | Allow specifying compiler mode options in buildfile | Boris Kolpackov | 1 | -7/+20 | |
Now the configured mode options are appended to buildfile-specified (which must be specified before loading the guess module). In particular, this ability to specify the compiler mode in a buildfile is useful in embedded development where the project may need to hardcode things like -target, -nostdinc, etc. For example: cxx.std = 20 cxx.mode = -target riscv32-unknown-unknown -nostdinc using cxx | |||||
2024-01-08 | Handle absent paths in cc::gcc_header_search_dirs() (e.g., due to -nostdinc) | Boris Kolpackov | 1 | -8/+17 | |
2024-01-08 | Add {bin,c,cxx}.types submodules that only register target types | Boris Kolpackov | 7 | -166/+371 | |
2023-12-14 | Allow enabling C++ modules for C++20 and later std.cxx values | Boris Kolpackov | 2 | -90/+243 | |
2023-12-14 | Cleanup old code for C++ modules support in Clang | Boris Kolpackov | 1 | -106/+2 | |
2023-12-13 | Fix another instance of module name not being assigned due to deferred failure | Boris Kolpackov | 1 | -10/+17 | |
2023-12-12 | Work around unexecuted member for installed libraries issue | Boris Kolpackov | 4 | -21/+64 | |
See comment for the long-term plan. | |||||
2023-12-11 | Instrument target::newer() with additional debug information | Boris Kolpackov | 1 | -0/+12 | |
2023-12-08 | Workaround bogus initialized variable warning | Boris Kolpackov | 1 | -1/+1 | |
2023-12-07 | Fix bug that led to duplication of module import information | Boris Kolpackov | 1 | -1/+7 | |
2023-12-07 | Add support for compiling MSVC standard library modules | Boris Kolpackov | 1 | -41/+144 | |
2023-12-07 | C++20 named modules support for MSVC, take 2 | Boris Kolpackov | 7 | -135/+126 | |
2023-12-04 | Clarify comment | Boris Kolpackov | 1 | -4/+4 | |
2023-12-04 | Don't match predefs rule for unsupported compiler/version | Boris Kolpackov | 1 | -1/+24 | |
2023-12-04 | Improve parser diagnostics | Boris Kolpackov | 1 | -1/+5 | |
2023-12-04 | Support creating file symlinks with ad hoc recipes | Boris Kolpackov | 1 | -6/+52 | |
2023-12-03 | Support dir{}/fsdir{} idiosyncrasies in $name.*() function family | Boris Kolpackov | 1 | -0/+6 | |
2023-12-03 | Reimplement search_existing() functions via target_type::search | Boris Kolpackov | 18 | -66/+91 | |
This allows us to automatically get the target type-specific behavior with regards to the out_only semantics (added in the previous commit) instead of passing it explicitly from each call site. | |||||
2023-12-03 | Search in src for existing prerequisites with unspecified out | Boris Kolpackov | 5 | -23/+58 | |
2023-12-03 | Make fsdir{} usable as target of ad hoc Buildscript recipes | Boris Kolpackov | 2 | -3/+41 | |
In particular, it can now be used to represent a directory symlink. For example: exe{hello}: ... fsdir{assets} fsdir{assets}: % update {{ ln -s $src_base/assets $out_base/assets }} % clean {{ rm $out_base/assets }} | |||||
2023-11-29 | Add rule for extracting C and C++ predefs | Boris Kolpackov | 8 | -30/+518 | |
2023-11-29 | Minor cleanups in cc::compile_rule | Boris Kolpackov | 1 | -6/+3 | |
2023-11-29 | Complete earlier fix for modules support in Clang | Boris Kolpackov | 1 | -5/+2 | |
2023-11-27 | Fix minor incompatibility with C++14 | Boris Kolpackov | 1 | -1/+1 | |
2023-11-27 | Tweak module name from file name guessing logic | Boris Kolpackov | 1 | -2/+41 | |
As a heuristics, prefer shorter but exact partition name matches to longer but partial. | |||||
2023-11-22 | Fix cc::link_rule and cc::install_rule to recognize S{} even in C++ | Boris Kolpackov | 2 | -20/+20 | |
Failed that, a C++ link rule cannot match a dependency with S{} prerequisites. | |||||
2023-11-22 | Deal with lack of module information due to deferred failure | Boris Kolpackov | 1 | -9/+17 | |
2023-11-22 | Fix incorrect _LIBCPP_VERSION macro name in comments | Boris Kolpackov | 2 | -7/+7 | |
2023-11-22 | Add support for `import std` in Clang 17 or later with libc++ | Boris Kolpackov | 9 | -118/+7033 | |
2023-11-21 | Add target::append_locked() variant | Boris Kolpackov | 2 | -6/+34 | |
2023-11-17 | Undo remap of Apple Clang 14.0.3 and 15.0.0 to vanilla Clang 14.0 and 15.0 | Boris Kolpackov | 1 | -5/+7 | |
2023-11-17 | Add pre-condition assert to target::newer() | Boris Kolpackov | 1 | -0/+2 | |
2023-11-16 | Fix target::group_state() for unmatched ad hoc group members | Boris Kolpackov | 2 | -4/+14 | |
2023-11-16 | Extend comment on Clang's -fmodules-embed-all-files use | Boris Kolpackov | 1 | -0/+6 | |
2023-11-15 | Switch from two-step module compilation to -fmodule-output for Clang | Boris Kolpackov | 1 | -0/+35 | |
2023-11-14 | Remap Apple Clang 14.0.3 and 15.0.0 to vanilla Clang 14.0 and 15.0 | Boris Kolpackov | 1 | -6/+14 | |
Lately, we started seeing __LIBCPP_VERSION values like 15.0.6 or 16.0.2 which would suggest the base is 15.0.5 or 16.0.1. But that assumption did not check out with the actual usage. For example, vanilla Clang 16 should no longer require -fmodules-ts but the Apple's version (that is presumably based on it) still does. So the theory here is that Apple upgrades to newer libc++ while keeping the old compiler. Which means we must be more conservative and assume something like 15.0.6 is still 14-based. | |||||
2023-11-14 | Fix module sidebuild logic for Clang | Boris Kolpackov | 1 | -10/+16 | |
2023-11-09 | Fix more issues with C++20 named modules support in Clang | Boris Kolpackov | 2 | -34/+19 | |
2023-11-09 | Minor fix to diagnostics | Boris Kolpackov | 1 | -1/+1 | |
2023-11-07 | Account for match options re-locking when checking if target is matched | Boris Kolpackov | 6 | -15/+49 | |
2023-11-06 | Fix basic issues with C++20 named modules support in Clang | Boris Kolpackov | 2 | -13/+16 | |
Note that modules support now require Clang 16 or later. | |||||
2023-11-06 | Fix C-comment scanning bug in cc::lexer | Boris Kolpackov | 2 | -10/+12 | |
2023-11-03 | Generalize and export cc::lexer | Boris Kolpackov | 4 | -16/+29 | |
2023-11-03 | Work around lack of definition for static constexpr some more | Boris Kolpackov | 1 | -2/+4 | |
2023-11-03 | Work around lack of definition for static constexpr | Boris Kolpackov | 1 | -2/+2 | |
During bootstrap we compile in C++14 where it is not implicitly inline. | |||||
2023-11-03 | Fix data race in match options logic | Boris Kolpackov | 3 | -10/+36 | |