aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/cc
AgeCommit message (Collapse)AuthorFilesLines
2020-12-11Add support for module interface-only librariesBoris Kolpackov7-63/+238
Also suppress generation of the object file in cases where we don't need it.
2020-12-08Update pkg-config modules serialization format to handle partitionsBoris Kolpackov1-4/+27
2020-12-04Fix bug in installed libraries matching logicBoris Kolpackov1-24/+34
2020-12-04Mark Buildfile functions as pure or impureBoris Kolpackov1-6/+12
2020-12-03Add ability to get absolute library paths from ${c,cxx}.lib_libs()Boris Kolpackov3-7/+18
2020-12-03Fix lock/unlock orderBoris Kolpackov1-1/+2
2020-12-03Fix bug in previous commitBoris Kolpackov1-2/+2
2020-12-03Fix modules support for installed librariesBoris Kolpackov3-20/+47
2020-12-01Modules-related refactoringBoris Kolpackov4-56/+60
2020-11-30Fix bug in module mapperBoris Kolpackov1-1/+0
2020-11-30Add version mapping for Apple Clang 12.0.0Boris Kolpackov1-1/+3
2020-11-30Disable __import recognition since GCC now uses [[__translated]]Boris Kolpackov2-4/+6
2020-11-30Add support for module partitionsBoris Kolpackov7-98/+201
2020-11-30Start adapting module mapper to latest GCC protocolBoris Kolpackov2-26/+441
2020-11-26Fix crashing on unhandled invalid_path thrown by cc::common::pkgconfig_load()Karen Arutyunov1-5/+15
2020-11-24Fix compilation error on older compilers (GCC 4.9, MSVC 14.3)Boris Kolpackov1-4/+4
2020-11-23Suppress duplicates when extracting library options (GitHub issue #114)Boris Kolpackov5-99/+298
2020-11-19Handle C++20 module partitions in scannerBoris Kolpackov7-63/+176
2020-11-17Resolve warningBoris Kolpackov1-0/+1
2020-11-17Omit default extensions for target types that now have fixed extensionsBoris Kolpackov1-2/+2
2020-11-17Implement modules pseudo-directive parsing (p1703, p1857)Boris Kolpackov7-54/+148
2020-11-13Minor tracing fix and additionBoris Kolpackov1-0/+3
2020-11-11Add ${c,cxx}.lib_{poptions,libs,rpaths}() functionsBoris Kolpackov9-104/+388
These functions can be used to query library metadata for options and libraries that should be used when compiling/linking dependent targets, similar to how cc::{compile,link}_rule do it. With this support it should be possible to more or less re-create their semantics in ad hoc recipes.
2020-11-05Initial Emscripten supportBoris Kolpackov5-397/+650
- Target: wasm32-emscripten (wasm32-unknown-emscripten). - Compiler id: clang-emscripten (type clang, variant emscripten, class gcc). - Ability to build executables (.js plus .wasm) and static libraries (.a). Set executable bit on the .js file (so it can be executed with a suitable binfmt interpreter). - Default config.bin.lib for wasm32-emscripten is static instead of both. - Full C++ exception support is enable unless disabled explicitly by the user with -s DISABLE_EXCEPTION_CATCHING=1|2. - The bin module registers the wasm{} target type for wasm32-emscripten.
2020-11-04Minor terminology tweakBoris Kolpackov1-1/+1
2020-09-24Give hints for common causes of "no rule to update ..." errorBoris Kolpackov3-4/+4
2020-08-24Use representation when passing target_triplet as hintBoris Kolpackov2-2/+2
2020-08-12Adjust linker arguments for LTO parallelizationMatthew Krupcale1-0/+54
GCC 10+ and Clang 4+ support controlling the number of LTO threads/jobs used during linking. Use the build2 scheduler to allocate up to the number of hardware threads to the GCC or Clang linker processes when -flto=auto or -flto=thin is specified, respectively. Otherwise, GCC or Clang will attempt to spawn the number of hardware threads detected for each linker process, which could result in up to n^2 linker threads on a CPU with n hardware threads.
2020-07-23Escape quotes in .pc file values besides spaces and backslashesKaren Arutyunov1-1/+1
2020-07-17Fix race in path/mtime assignment and file_rule::match()Boris Kolpackov2-23/+9
2020-07-17Use -fexternc-nounwind by default for Clang targeting MSVCBoris Kolpackov1-5/+27
This option implements the 'c' part in /EHsc and is not a mere optimization; see Clang bug #45021 for details.
2020-07-16Save original compiler path/mode in {c,cxx}.config.path/modeBoris Kolpackov3-9/+17
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-14Fix Clang warningBoris Kolpackov1-0/+2
2020-07-13Add ability to extend rule interface in source-compatible mannerBoris Kolpackov2-2/+2
2020-07-13Fold translated *.std options into compiler mode optionsBoris Kolpackov6-30/+13
This way they are accessible in ad hoc recipes.
2020-07-07Make sure paths used to insert target are canonicalizedBoris Kolpackov1-3/+9
2020-07-07Skip sources of executables in cc::install_ruleBoris Kolpackov1-4/+23
Failed that, they may pull headers via an ad hoc group.
2020-07-01Fix bug in *.export.imp_libs logicBoris Kolpackov2-3/+3
2020-07-01Add additional diagnostics for unassigned path (GitHub issue #89)Boris Kolpackov1-6/+10
2020-07-01Add additional diagnostics for disappearing header (GitHub issue #80)Boris Kolpackov1-0/+16
2020-07-01Add *.export.imp_libs to get rid of dual *.export.libs semanticsBoris Kolpackov3-36/+38
2020-06-26Handle #import in MSVC /showIncludes outputBoris Kolpackov2-13/+44
2020-06-26Minor terminology fix in commentsBoris Kolpackov1-3/+2
2020-06-26Fix race in library metadata protocolBoris Kolpackov2-4/+5
Specifically, we need to check whether the prerequisite_member is ad hoc before checking whether it is NULL because ad hoc ones are blanked out (set to NULL) during execute.
2020-06-25Fix warningBoris Kolpackov1-1/+1
2020-06-25Add more instrumentation for unassigned path raceBoris Kolpackov1-14/+41
2020-06-24Fix trace and clarify commentsBoris Kolpackov1-9/+12
2020-06-22Try to detect and warn about the ccache compiler wrapperBoris Kolpackov1-4/+24
2020-06-22Add version mapping for Apple Clang 11.0.3Boris Kolpackov1-14/+22
2020-06-18Complete NetBSD compatibilityBoris Kolpackov3-2/+7