Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2023-12-07 | C++20 named modules support for MSVC, take 2 | Boris Kolpackov | 1 | -3/+3 | |
2023-08-22 | Consider *_inc{} target types as headers for rule match purposes | Boris Kolpackov | 1 | -7/+10 | |
2023-04-18 | Add support for Assembler with C Preprocessor (.S) compilation | Boris Kolpackov | 1 | -2/+15 | |
Specifically, the c module now provides the c.as-cpp submodules which can be loaded in order to register the S{} target type and enable Assembler with C Preprocessor compilation in the c compile rule. For details, refer to "Assembler with C Preprocessor Compilation" in the manual. | |||||
2023-04-10 | Fix inconsistent /usr/local/{include,lib} search | Boris Kolpackov | 1 | -4/+8 | |
In particular, we were adding -L/usr/local/lib which means it is considered before built-in directories (/usr/lib, etc) but in our own library search code we were considering it after (because we were storing it at the end of sys_lib_dirs). Now in both sys_{hdr,lib}_dirs we store /usr/local/{include,lib} after mode and before built-in directories. Note that as part of this fix we now pass -isystem /usr/local/include instead of -idirafter (which is consistent with the -L behavior and also the customarily expected semantics). | |||||
2022-12-09 | Enable diagnostics color in GCC and Clang | Boris Kolpackov | 1 | -0/+5 | |
2022-12-05 | Skip common .pc file for binless if found but rejected binful (GH issues #235) | Boris Kolpackov | 1 | -2/+5 | |
2022-11-22 | Add support for Objective-C/C++ compilation in cc module | Boris Kolpackov | 1 | -5/+24 | |
2022-08-17 | Handle another "in *.export.libs but not in prerequisites" case | Boris Kolpackov | 1 | -0/+5 | |
Also, enable this check even if proc_lib is not specified unless in the execute phase. | |||||
2022-06-28 | Complete support for saving/loading library metadata to/from pkg-config files | Boris Kolpackov | 1 | -5/+5 | |
2022-06-24 | Allow ad hoc rules not to list targets that are updated during match | Boris Kolpackov | 1 | -0/+5 | |
For example, this allows a Qt moc rule not to list generated headers from libQtCore since they are pre-generated by the library. | |||||
2022-06-24 | Add ability to get common interface options via $x.lib_poptions() | Boris Kolpackov | 1 | -1/+5 | |
Specifically, the output target type may now be omitted for utility libraries (libul{} and libu[eas]{}). In this case, only "common interface" options will be returned for lib{} dependencies. This is primarily useful for obtaining poptions to be passed to tools other than C/C++ compilers (for example, Qt moc). | |||||
2022-04-15 | Adjust small vector limit in process_libraries() | Boris Kolpackov | 1 | -3/+20 | |
2022-04-13 | Add automatic interface dependency deduplication in cc::process_libraries() | Boris Kolpackov | 1 | -1/+2 | |
2022-04-06 | Add support for rule hints | Boris Kolpackov | 1 | -6/+3 | |
A rule hint is a target attribute, for example: [rule_hint=cxx] exe{hello}: c{hello} Rule hints can be used to resolve ambiguity when multiple rules match the same target as well as to override an unambiguous match. | |||||
2022-03-30 | Infrastructure for library metadata support | Boris Kolpackov | 1 | -2/+4 | |
2022-03-28 | Add ability to customize pkg-config header and library search paths | Boris Kolpackov | 1 | -0/+3 | |
Specifically, {cc,c,cxx}.pkgconfig.{include,lib} variables specify header (-I) and library (-L) search paths to use in the generated .pc files instead of the default install.{include,lib}. Relative paths are resolved as install paths. | |||||
2021-10-07 | Verify libraries and targets they are linked to a for-install-compatible | Boris Kolpackov | 1 | -1/+1 | |
2021-10-04 | Optimize internal scope implementation | Boris Kolpackov | 1 | -8/+10 | |
2021-10-04 | Add support for treating specific libraries as always internal | Boris Kolpackov | 1 | -0/+6 | |
2021-10-01 | Add notion of internal scope, translate external -I to -isystem or equivalent | Boris Kolpackov | 1 | -0/+15 | |
2021-08-11 | Optimize process_libraries() some more | Boris Kolpackov | 1 | -1/+1 | |
2021-08-05 | Implement traversal pruning in process_libraries() | Boris Kolpackov | 1 | -2/+2 | |
2021-08-05 | Add resolved library cache, use in cc::process_libraries() | Boris Kolpackov | 1 | -1/+13 | |
2021-05-13 | Rename sys_inc_dirs to sys_hdr_dirs for consistency | Boris Kolpackov | 1 | -10/+10 | |
2021-05-04 | Replace int_ with intf_ and imp_ with impl_ in names | Boris Kolpackov | 1 | -2/+2 | |
2021-05-04 | Handle duplicate suppression of multi-element libraries (-l foo) | Boris Kolpackov | 1 | -1/+3 | |
See GitHub issue #114 for context. | |||||
2021-04-20 | Track changes to environment in cc rules | Boris Kolpackov | 1 | -0/+4 | |
2021-02-11 | Generalize process_libraries() to allow no picking installed library member | Boris Kolpackov | 1 | -8/+8 | |
2021-01-30 | Rework include translation support | Boris Kolpackov | 1 | -5/+5 | |
See the config.cxx.translate_include variable documentation in cxx/init.cxx for details. | |||||
2020-12-11 | Add support for module interface-only libraries | Boris Kolpackov | 1 | -0/+12 | |
Also suppress generation of the object file in cases where we don't need it. | |||||
2020-07-16 | Save original compiler path/mode in {c,cxx}.config.path/mode | Boris Kolpackov | 1 | -0/+2 | |
It turns out that when propagating {c,cxx}.config in tests we don't want to propagate any options (such as *.std) that have been folded into our project's mode. | |||||
2020-07-13 | Fold translated *.std options into compiler mode options | Boris Kolpackov | 1 | -4/+0 | |
This way they are accessible in ad hoc recipes. | |||||
2020-07-01 | Add *.export.imp_libs to get rid of dual *.export.libs semantics | Boris Kolpackov | 1 | -0/+2 | |
2020-05-22 | Fix bug in previous commit | Boris Kolpackov | 1 | -1/+1 | |
2020-05-22 | Make template definition available in all translation units where used | Boris Kolpackov | 1 | -1/+3 | |
We were trying to be clever but GCC 10's IPA-SRA optimization didn't like it. | |||||
2020-04-13 | Add ../share/pkgconfig/ search directory by default on Linux | Boris Kolpackov | 1 | -1/+1 | |
2020-02-07 | Drop copyright notice from source code | Karen Arutyunov | 1 | -1/+0 | |
2020-02-03 | Add header/library search paths from compiler mode to sys_*_dirs | Boris Kolpackov | 1 | -9/+19 | |
2020-01-31 | Propagate installed library out (tag) when converting to name | Boris Kolpackov | 1 | -1/+2 | |
2020-01-31 | Tag installed library targets with linker path | Boris Kolpackov | 1 | -2/+3 | |
This makes sure we get different targets for different toolchains. | |||||
2019-11-05 | Add support for supplying MSVC IFCPATH equivalent | Boris Kolpackov | 1 | -3/+5 | |
2019-10-18 | Add ability to specify "compiler mode" options as part of config.{c,cxx} | Boris Kolpackov | 1 | -1/+4 | |
Such options are (normally) not overridden by buildfiles and are passed last (after cc.coptions and {c,cxx}.coptions) in the resulting command lines. They are also cross-hinted between config.c and config.cxx. For example: $ b config.cxx="g++ -m64" | |||||
2019-10-11 | Add support for clang-cl | Boris Kolpackov | 1 | -5/+15 | |
The compiler type is `msvc`, variant `clang`. | |||||
2019-09-18 | Rename importable_headers variable to translatable_headers | Boris Kolpackov | 1 | -4/+5 | |
This name aligns better with the post-Cologne importable/translatable semantics. | |||||
2019-08-28 | Move cc build system module to separate library | Karen Arutyunov | 1 | -0/+358 | |