Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
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 | Disable modules tests for Apple Clang | Boris Kolpackov | 1 | -2/+6 | |
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 | Enable named modules tests for Clang 16 or later (but not on Windows) | Boris Kolpackov | 2 | -6/+7 | |
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 | Fix source directory/subdirectory terminology inconsistencies in manual | Boris Kolpackov | 1 | -10/+10 | |
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 | |
2023-11-02 | Add $first()/$second() pair functions | Boris Kolpackov | 2 | -1/+84 | |
2023-11-02 | Minor diagnostics improvement | Boris Kolpackov | 1 | -1/+1 | |
2023-11-01 | Tighten/optimize cleaning of fsdir{} during match | Boris Kolpackov | 4 | -10/+37 | |
2023-11-01 | Fix incorrect fsdir_rule::perform_update_direct() calls | Boris Kolpackov | 4 | -18/+20 | |
Also make fsdir_rule::perform_{update,clean}_direct() harder to misuse. | |||||
2023-11-01 | Handle match options for post hoc libs{} prerequisites in cc::install_rule | Boris Kolpackov | 2 | -0/+78 | |
2023-11-01 | Add support for adjusting match options of post hoc prerequisites | Boris Kolpackov | 7 | -46/+153 | |
2023-11-01 | Use match options for runtime/buildtime distinction when installing libraries | Boris Kolpackov | 8 | -201/+837 | |
Specifically, now, if a library is installed solely as a prerequisite of an executable (potentially recursively), then only its runtime files are installed omitting everything buildtime-related (static/import libraries, non-versioned symlinks for shared libraries, pkg-config files, headers, etc). If you are familiar with the runtime and -dev/-devel package splits for libraries in Debian/Fedora, this is an analogous semantics. | |||||
2023-11-01 | Undo "Don't install static library prerequisites of executable" | Boris Kolpackov | 2 | -26/+1 | |
This turned out not to be always correct since a static library can have prerequisites that it requires at runtime (see the libca-certificates-curl for an example). The new plan is to split static/shared library installation into run-time and build-time parts using the new match options mechanism. | |||||
2023-11-01 | Add notion of match options | Boris Kolpackov | 16 | -173/+537 | |
Now, when matching a rule, the caller may request a subset of the full functionality of performing an operation on a target. This is achieved with match options. | |||||
2023-10-26 | Add inject_fsdir_direct(), fsdir_rule::perform_clean_direct() functions | Boris Kolpackov | 4 | -4/+55 | |
2023-10-26 | Add clean_during_match*() functions | Boris Kolpackov | 2 | -1/+196 | |
2023-10-26 | Minor diagnostics improvement | Boris Kolpackov | 2 | -5/+15 | |
2023-10-10 | Replace builds value host with all:&host | Boris Kolpackov | 1 | -1/+1 | |
2023-10-09 | Minor additions to manual | Boris Kolpackov | 1 | -2/+26 | |
2023-10-06 | Handle 0 mask in update_during_match_prerequisites() | Boris Kolpackov | 3 | -6/+7 | |
2023-10-04 | Add match_direct_complete() to support async direct matches | Boris Kolpackov | 2 | -19/+30 | |
2023-09-28 | Don't mark rdata symbols DATA in MSVC .def file (GH issue #315) | Boris Kolpackov | 1 | -1/+9 | |
2023-09-25 | Treat -liconv on Mac OS as system | Boris Kolpackov | 1 | -1/+5 | |
2023-09-21 | Fix bug in previous commit | Boris Kolpackov | 1 | -1/+1 | |
2023-09-21 | Don't install static library prerequisites of executable | Boris Kolpackov | 2 | -1/+32 | |
2023-09-20 | Fix issue with fallback rule priority in dist module | Boris Kolpackov | 6 | -22/+48 | |
While at it, also remove workarounds for the same issue in the config and test modules. | |||||
2023-09-11 | Invoke Clang to produce object files for module partitions similar to interfaces | Swat SomeBug | 1 | -2/+7 | |
Module interface and implementation partitions are like module interfaces so it's not surprising they require similar compilation steps. See GH PR #328 for background. | |||||
2023-09-08 | Manually extract library search paths from LIBRARY_PATH for Clang | Boris Kolpackov | 4 | -70/+90 | |
Unlike GCC, Clang does not incorporate the LIBRARY_PATH environment variable value into the -print-search-dirs output. | |||||
2023-09-07 | Search for .tbd in addition to .dylib in Mac OS | Boris Kolpackov | 1 | -0/+25 | |
Besides .dylib, Mac OS now also has "text-based stub libraries" that use the .tbd extension. They appear to be similar to Windows import libraries and contain information such as the location of the .dylib library, its symbols, etc. For example, there is /Library/.../MacOSX13.3.sdk/usr/lib/libsqlite3.tbd which points to /usr/lib/libsqlite3.dylib (but which itself is invisible/inaccessible, presumably for security). Note that for now we are treating the .tbd library as the shared library but could probably do the more elaborate dance with ad hoc members like on Windows if really necessary. | |||||
2023-09-07 | Add implied .../MacOSX*.sdk/usr/lib/ to system library search directories | Boris Kolpackov | 1 | -7/+22 | |
2023-09-06 | Don't crash if config.report.variable names undefined variable | Boris Kolpackov | 1 | -2/+2 | |