aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/cc
AgeCommit message (Collapse)AuthorFilesLines
2021-02-09Minor simplificationBoris Kolpackov2-5/+5
2021-02-08Get rid of unused lambda captureBoris Kolpackov1-1/+1
2021-02-08Enter scope src directories into scope mapBoris Kolpackov1-14/+6
2021-02-03Propagate relevant options/prerequisites to header unit sidebuildsBoris Kolpackov5-33/+216
2021-01-30Add std::{map, multimap} to types.hxxBoris Kolpackov4-6/+1
Seeing that std::map is becoming a common Buildfile variable type.
2021-01-30Rework include translation supportBoris Kolpackov13-182/+876
See the config.cxx.translate_include variable documentation in cxx/init.cxx for details.
2021-01-22Redo bin.lib.version not to require empty keyBoris Kolpackov1-3/+9
2021-01-21Use target name to derive binless library -l-nameBoris Kolpackov2-6/+22
2021-01-11Use link.exe /LIB rather than /DUMP approach to detect library typeBoris Kolpackov1-25/+27
This approach works for both link.exe and lld-link which does not support /DUMP. We now also issue a warning if we were unable to detect the library type.
2021-01-11Add extra diagnostics around pkg-config library resolutionBoris Kolpackov1-6/+24
2021-01-08Add noteBoris Kolpackov1-0/+7
2020-12-15Cache more results of executing programs (compilers, etc)Boris Kolpackov2-36/+69
2020-12-14Fix bug in create_new_target_locked()Karen Arutyunov2-3/+3
2020-12-14Fix incorrect assert in conditionBoris Kolpackov1-2/+2
2020-12-11Minor module mapper fixesBoris Kolpackov2-17/+26
2020-12-11Add $cxx.obj_modules() which returns object files for binless modulesBoris Kolpackov2-11/+110
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