aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/cc
AgeCommit message (Collapse)AuthorFilesLines
2023-04-18Add support for Assembler with C Preprocessor (.S) compilationBoris Kolpackov7-41/+103
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-10Fix inconsistent /usr/local/{include,lib} searchBoris Kolpackov4-32/+53
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).
2023-04-05Allow creating context with bare minimum of initializationsBoris Kolpackov2-6/+6
This is used by bpkg to detect forwarded configurations without incurring the full context creation overhead.
2023-04-04Add support for installation filtering (GH issue #147)Boris Kolpackov1-2/+2
2023-04-03Add authz.lib to Windows system library listBoris Kolpackov1-0/+1
2023-03-30Add comdlg32.lib to list of system Windows librariesBoris Kolpackov1-0/+1
2023-03-24Add support for generating relocatable pkg-config filesBoris Kolpackov1-10/+133
2023-03-23Add support for relocatable installation in $install.resolve()Boris Kolpackov1-1/+2
2023-03-22Initial work on relocatable install: config.install.relocatable and rpathBoris Kolpackov1-2/+66
2023-03-08Fix uninitialized variable bugBoris Kolpackov1-1/+1
2023-03-02Adapt to interface changes in libpkgconf 1.9Boris Kolpackov1-0/+7
Patch by Matthew Krupcale.
2023-03-01Add support for installation manifestBoris Kolpackov1-3/+3
2023-02-20Fix raw string literal lexing bug in cc:lexer (GH issue #268)Boris Kolpackov2-3/+5
2023-02-13Deduplicate -I and -L options extracted from pkg-config files (GH issue #265)Boris Kolpackov1-43/+81
2022-12-15Add noexcept to move constructors and move assignment operatorsKaren Arutyunov1-4/+4
2022-12-14Improve empty simple value to empty list of names reduction heuristicsBoris Kolpackov1-1/+1
Specifically, do not reduce typed RHS empty simple values for prepend/append and additionally for assignment provided LHS is typed and is a container.
2022-12-12Adapt to dir_iterator API changeKaren Arutyunov2-2/+15
2022-12-09Enable diagnostics color in GCC and ClangBoris Kolpackov4-2/+80
2022-12-09Normalize target's out directory in cc::insert_library()Boris Kolpackov1-7/+8
2022-12-08Normalize extracted header/library search directories (GH issue #235)Boris Kolpackov5-13/+48
2022-12-07Fix incorrect process_path::effect accessBoris Kolpackov1-1/+1
2022-12-07Use effective rather than recall path for cache keyBoris Kolpackov1-1/+1
2022-12-07Fix bug in MSVC library_type() implementation (GH issue #235)Boris Kolpackov1-4/+1
It looks like the implementation was botched a bit when switching from link.exe /DUMP /ARCHIVEMEMBERS to link.exe /LIB /LIST.
2022-12-07Add MSVC library type cachingBoris Kolpackov1-9/+24
2022-12-07List dnsapi, msimg32 as Windows system librariesBoris Kolpackov1-2/+4
2022-12-06Handle bin.whole when specified for interface dependenciesBoris Kolpackov1-5/+23
2022-12-05Skip common .pc file for binless if found but rejected binful (GH issues #235)Boris Kolpackov3-26/+80
2022-12-05List windowscodecs as Windows system libraryBoris Kolpackov1-0/+1
2022-11-30Diagnose absence of import library after link.exe invocation (GH issue #231)Boris Kolpackov1-7/+22
If a library does not export any symbols then link.exe skips creating the import library.
2022-11-29Fix backlink logic for target groupsBoris Kolpackov1-5/+24
We used to backlink ad hoc group members both via the group and as individual members. And for explicit groups it was done only via individual members, which means it only works correctly if every member is individually updated. Now both types of groups are backlinked from the group target.
2022-11-25Fix diag buffer opining logic in cc::compile_ruleBoris Kolpackov1-5/+11
2022-11-23Rework diag_buffer interface to facilitate correct destruction orderBoris Kolpackov5-40/+45
2022-11-22Add support for Objective-C/C++ compilation in cc moduleBoris Kolpackov8-68/+140
2022-11-16Initial low verbosity diagnostics reworkBoris Kolpackov4-11/+13
2022-11-08Make process exit diagnostics consistentBoris Kolpackov5-11/+14
In particular, we now always print error message on non-0 exit except in cases where such exit is ignored.
2022-11-08Work around suspected GCC 12 mis-compilation (bug #107555)Boris Kolpackov2-16/+25
2022-11-08Allow passing fail diag record to diag_buffer::close()Boris Kolpackov1-11/+4
2022-11-08Tighten args const-ness in the run*() function familyBoris Kolpackov2-8/+0
2022-11-08Rework header dependency extraction with diagnostics bufferingBoris Kolpackov2-249/+416
2022-11-08More work on child process diagnostics bufferingBoris Kolpackov7-136/+124
2022-10-28Add ability to disable diagnostics buffering (--no-diag-buffer)Boris Kolpackov1-4/+4
2022-10-27Suppress (potential) bogus GCC 12 -Wrestrict warningsBoris Kolpackov2-4/+4
2022-10-27Initial work on child process diagnostics bufferingBoris Kolpackov3-81/+141
Currently this is implemented for C/C++ compile and link rules.
2022-10-25Adapt to butl::semantic_version API changeKaren Arutyunov1-3/+7
2022-10-21Add clarifying commentBoris Kolpackov1-0/+4
2022-10-21Handle freestanding/broken setups when entering importable std headersBoris Kolpackov1-17/+30
Fixes GH issue #219.
2022-10-17Add pkg-config search tracingBoris Kolpackov1-2/+14
2022-10-17Tolerate case differences when looking for pkg-config filesBoris Kolpackov1-18/+26
2022-10-13Fix bug in pkg-config metadata extraction logicBoris Kolpackov1-6/+9
2022-10-13Optimize by going straight to public variable pool where applicableBoris Kolpackov2-2/+8