Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2022-09-12 | Do not treat primary ad hoc group member as group for variable lookup | Boris Kolpackov | 3 | -4/+38 | |
Note that we started with this semantics but it was changed in a commit on 2021-09-16 for reasons not entirely unclear but most likely due to target- specific variables specified for the group not being set on all the members. Which we have now addressed (see the previous commit). Note also that this new (old) semantics is not without its own drawbacks. Specifically, there is a bit of waste when the target-specific variable is really only meant for the recipe and thus setting it on all the members is unnecessary. For example: <{hxx ixx cxx}{options}>: cli{options} { options = ... } {{ # Use options. }} But this feels like a quality of implementation rather than conceptual issue. For example, we could likely one day address it by synthesizing a separate group target for ad hoc groups. | |||||
2022-09-09 | Evaluate target specific variable assignment/block on ad hoc members | Boris Kolpackov | 2 | -37/+113 | |
This is in preparation for (again) not treating primary member of an ad hoc group as a group for variable lookup. | |||||
2022-09-07 | Fix assert after cycle detection in ad hoc groups | Boris Kolpackov | 1 | -31/+31 | |
2022-09-07 | Fix fsdir{} handling corner cases in ad hoc buildscript recipes/rulesdist-remap | Boris Kolpackov | 4 | -11/+39 | |
2022-09-06 | Add ability to remap paths in distribution | Boris Kolpackov | 2 | -29/+102 | |
Specifically, the dist target-specific variable now can specify a path besides true or false. This path is the "imaginary" source location which is used to derive the corresponding distribution local. This location can be either a directory path (to remap with the same file name) or a file path (to remap with a different name). If the path is relative, then it's treated relative to the target directory. Note that to make things less error prone, simple paths without any directory separators are not allowed (use ./<name> instead). Note that if multiple targets end up with the same source location, the behavior is undefined and no diagnostics is issued. Note also that such remapping has no effect in the bootstrap distribution mode. | |||||
2022-09-05 | Allow empty prerequisites in prerequisite-specific variable assignment/block | Boris Kolpackov | 1 | -27/+52 | |
The old semantics was not very consistent, consider: exe{foo}: cxx{$empty} # Ok. exe{foo}: cxx{$empty}: include = false # Not ok? So now both are ok, as well as the block variant: exe{foo}: cxx{$empty}: { include = false } Note that the empty prerequisite list in the dependency chain is still an error: ./: exe{$empty}: cxx{foo} # Error. Note also that the syntactically-empty prerequisite list was and still is an error: exe{foo}: : include = false # Error. | |||||
2022-09-02 | Add missing if! support in recipes | Boris Kolpackov | 1 | -2/+2 | |
2022-09-02 | Add ability to specify `in` rule substitution as key-value pairs | Boris Kolpackov | 7 | -12/+65 | |
2022-09-02 | Rename in.substitution variable to in.mode | Boris Kolpackov | 2 | -2/+6 | |
The original name is still recognized for backwards compatibility. | |||||
2022-08-22 | Manually check values for NULL when using low-level function interface | Boris Kolpackov | 2 | -1/+14 | |
2022-08-17 | Allow matching empty output with here-document regex without ':' modifier | Karen Arutyunov | 1 | -0/+25 | |
2022-08-17 | Fix bug in handling of "in *.export.libs but not in prerequisites" case | Boris Kolpackov | 1 | -5/+16 | |
2022-08-17 | If cl.exe path is specified then extract VC tools directory from this path | Karen Arutyunov | 1 | -32/+74 | |
2022-08-17 | Handle another "in *.export.libs but not in prerequisites" case | Boris Kolpackov | 3 | -49/+78 | |
Also, enable this check even if proc_lib is not specified unless in the execute phase. | |||||
2022-08-17 | Get rid of Clang warning | Boris Kolpackov | 1 | -0/+2 | |
2022-08-16 | Improve MSVC /DEBUG option handling | Boris Kolpackov | 1 | -19/+26 | |
Specifically, handle the /DEBUG:<value> form in addition to /DEBUG and recognize /DEBUG:NONE. | |||||
2022-08-02 | Make bash.in rule match exe{} without bash{} modules with hint | Boris Kolpackov | 2 | -8/+9 | |
2022-07-29 | Change version to 0.16.0-a.0.z | Boris Kolpackov | 1 | -1/+1 | |
2022-07-28 | Release version 0.15.0v0.15.0 | Boris Kolpackov | 1 | -1/+1 | |
2022-07-26 | Remove unused code | Boris Kolpackov | 1 | -66/+0 | |
2022-07-26 | Disable risky sanity check | Boris Kolpackov | 1 | -1/+3 | |
2022-07-26 | Re-enable temporarily disable tests (part of cmdline work) | Boris Kolpackov | 2 | -10/+2 | |
2022-07-26 | Add <libbuild2/dyndep.hxx> to list of headers pre-included for C++ recipes | Boris Kolpackov | 1 | -0/+1 | |
2022-07-25 | Use 'C:\Program Files' instead of 'C:\Program Files (x86)' in documentation | Karen Arutyunov | 1 | -1/+1 | |
2022-07-25 | Fix typo in comment | Boris Kolpackov | 1 | -1/+1 | |
2022-07-21 | Make LLVM tools (ar, lld, etc) detection more robust | Boris Kolpackov | 1 | -6/+18 | |
2022-07-21 | Use bundle scope when deciding whether project is being distributed | Boris Kolpackov | 1 | -2/+3 | |
2022-07-21 | Map Apple Clang 13.1.6 to vanilla Clang 12.0.0 | Boris Kolpackov | 1 | -18/+20 | |
2022-07-21 | Fix bug in common .pc file generation logic (GitHub issue #198) | Boris Kolpackov | 1 | -1/+1 | |
2022-07-21 | Add link to HOWTO entry in conditional dependency declaration warning | Boris Kolpackov | 1 | -1/+3 | |
2022-07-21 | Don't issue conditional dependency declaration warning for imported projects | Boris Kolpackov | 3 | -9/+46 | |
2022-07-20 | Fix bug in cc::pkconfig_save() | Boris Kolpackov | 1 | -1/+1 | |
2022-07-20 | Tweak diagnostics | Boris Kolpackov | 1 | -1/+1 | |
2022-07-20 | Adjust conditional dependency declaration warning logic | Boris Kolpackov | 2 | -13/+19 | |
Now instead of ignoring imported stuff (which turned out to be racy), we only consider conditions up to the include boundary. The thinking here is that an included (but not sourced) buildfile is a standalone entity (e.g., imported project but also could be just a side-included buildfile). Note that unfortunately we will still be issuing warnings in imported projects since there is no straightforward way to know what is being distributed and what is not while parsing. | |||||
2022-07-20 | Adjust to match libpkg-config interface/semantics changes | Boris Kolpackov | 1 | -5/+25 | |
2022-07-19 | Warn about conditional dependency declarations during distribution | Boris Kolpackov | 2 | -0/+51 | |
2022-07-19 | Fix bug in target::matched() | Boris Kolpackov | 2 | -7/+7 | |
2022-07-17 | Map VC 17 to runtime version 14.3 | Boris Kolpackov | 2 | -3/+6 | |
2022-07-13 | Work around "storing address of local variable" warning issued by GCC 12 | Boris Kolpackov | 1 | -1/+1 | |
The warning is issued inside the target_lock's move constructor so we sidestep the whole thing by avoiding the call to the move constructor. | |||||
2022-07-08 | Fix script::parser::need_cmdline_relex() | Karen Arutyunov | 1 | -1/+1 | |
2022-07-07 | Use new cmdline type for canned command lines in {Build,Test}script | Boris Kolpackov | 12 | -73/+389 | |
2022-07-07 | Fix incorrect function family assignment for $target.process_path() | Boris Kolpackov | 1 | -1/+1 | |
2022-07-05 | Drop unused lambda capture | Boris Kolpackov | 1 | -2/+1 | |
2022-07-05 | Switch to using libpkg-config instead of libpkgconf by default | Boris Kolpackov | 3 | -7/+276 | |
The use of (now deprecated) libpkgconf is still possible by setting config.build2.libpkgconf to true. Note that libpkgconf is known to have issues on Windows and Mac OS so this should only be used on Linux and maybe BSDs. Also note that we will only keep this until upstream (again) breaks backwards compatibility at which point we will drop this support. | |||||
2022-07-05 | Recognize special .for_install variable suffix in library user metadata | Boris Kolpackov | 2 | -26/+95 | |
2022-07-04 | Work around VC16 issue | Boris Kolpackov | 1 | -0/+2 | |
2022-07-04 | Factor libpkgconf-based pkgconfig implementation to separate source file | Boris Kolpackov | 3 | -461/+499 | |
2022-07-02 | Minor cleanups in class pkgconf implementation | Boris Kolpackov | 1 | -22/+32 | |
2022-07-02 | Add note on version we save in pkg-config files | Boris Kolpackov | 1 | -0/+14 | |
2022-07-01 | Regenerate options parsing files | Karen Arutyunov | 4 | -47/+162 | |