Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2024-02-26 | Add ability to serialize compilation/linking in cc rules | Boris Kolpackov | 1 | -0/+1 | |
Specifically, both the C/C++ compiler and link rules now recognize the cc.serialize boolean variable which instructs them to compiler/link serially with regards to any other recipe. This is primarily useful when compiling large translation units or linking large binaries that require so much memory that doing that in parallel with other compilation/linking jobs is likely to summon the OOM killer. For example: obj{memory-hog}: cc.serialize = true | |||||
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 | |