aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/cc
AgeCommit message (Collapse)AuthorFilesLines
2020-02-03Fix bug in sys_*_dirs commitBoris Kolpackov1-1/+1
2020-02-03Exclude -lexecinfo from resolutionBoris Kolpackov1-0/+5
2020-02-03Add header/library search paths from compiler mode to sys_*_dirsBoris Kolpackov10-193/+352
2020-01-31Propagate installed library out (tag) when converting to nameBoris Kolpackov3-13/+31
2020-01-31Use -l representation of library names in pkg-config files for MSVCBoris Kolpackov1-5/+38
Passing it as foo.lib triggers some (brain-dead) fragmentation logic in libpkgconf. Also, a C library built with MSVC can be used in MinGW (and vice versa) and so this is also a step in supporting that.
2020-01-31Tag installed library targets with linker pathBoris Kolpackov3-24/+34
This makes sure we get different targets for different toolchains.
2020-01-29Rename module_base to module, redo module boot/init argument passingBoris Kolpackov2-18/+14
2020-01-28Use scope::var_pool()Boris Kolpackov2-28/+28
2020-01-27Protect cc guess cache with mutexBoris Kolpackov1-1/+12
2020-01-27Improve module loading APIBoris Kolpackov2-36/+17
2020-01-27Improve process run_*() APIBoris Kolpackov4-8/+14
2020-01-27Add corner case check in const.{c,cxx} array splittingBoris Kolpackov1-8/+11
2020-01-27Minor cleanupBoris Kolpackov1-15/+1
2020-01-24Don't pass dependency library non-export loptions to linkerKaren Arutyunov1-2/+10
2019-11-29Reorder {cc,c/cxx}.{poptions,loptions}Boris Kolpackov5-12/+23
Now it is c/cxx first followed by cc which is the reverse order of coptions since the header/library search paths are examined in the order specified (in contrast to the "last value wins" semantics that we assume for coptions).
2019-11-26Rename executable's .lib/.exp to avoid clashes with librariesBoris Kolpackov2-32/+44
Failed that we cannot have an executable and a library with the same name and in the same directory (their .lib's will clash).
2019-11-18Add couple of sanity checksBoris Kolpackov1-3/+8
2019-11-15Use path_name_view in location and path_name_value in location_valueKaren Arutyunov1-2/+2
2019-11-15Improve {}-imbalance diagnostics in cc::parser and make it warningBoris Kolpackov3-10/+33
2019-11-15Fix bug in cc::parser location storageBoris Kolpackov2-2/+2
2019-11-13Use path_name in cc::lexer classKaren Arutyunov13-62/+105
2019-11-08Redo Apple /usr/include detection using patternsBoris Kolpackov1-16/+8
This should cover XCode 11 where the symlinks are the other way around now (see homebrew-core issue #46393 for details).
2019-11-07Don't add $install.lib to module library search path if import.build2 is NULLBoris Kolpackov1-6/+21
2019-11-07Initial work on path_name use for `-` to stdin/stdout translationBoris Kolpackov2-2/+2
2019-11-05Add support for automatic importing of libbuild2 of installed caseBoris Kolpackov1-1/+16
2019-11-05Add support for supplying MSVC IFCPATH equivalentBoris Kolpackov5-13/+62
2019-10-31Update comment on Apple Clang to vanilla Clang version mappingBoris Kolpackov1-15/+14
2019-10-29Add forward declaration header for build state typesBoris Kolpackov1-2/+1
2019-10-29Add support for specifying custom load prefix and version clean patternsBoris Kolpackov1-5/+10
2019-10-29Tighten up versioned libraries clean patternsBoris Kolpackov2-73/+128
2019-10-21Work around LLD bug #43744Boris Kolpackov1-0/+23
2019-10-21Build thin archives for utility libraries if using llvm-libBoris Kolpackov1-0/+13
2019-10-21Add more information on C and C++ compiler mode options to manualBoris Kolpackov1-0/+2
2019-10-19Add find_stem() utility functionBoris Kolpackov1-23/+4
2019-10-18Add ability to specify "compiler mode" options as part of config.{c,cxx}Boris Kolpackov10-213/+363
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-17Derive msvc_cpu from cl.exe signature rather than pathBoris Kolpackov1-41/+29
2019-10-17Add support for VS search by cl.exe path in find_msvc()Karen Arutyunov1-48/+93
2019-10-17Add temporary fallback to x64 in find_msvc()Boris Kolpackov1-3/+8
2019-10-16Make target CPU part of msvc_info structBoris Kolpackov1-18/+21
2019-10-16Try to find MSVC installation for absolute cl.exe pathsBoris Kolpackov2-49/+103
Without this extra logic recursive invocation of the build system (e.g., in tests) will fail to obtain the full environment.
2019-10-15Remove no longer used lambda captureBoris Kolpackov1-4/+1
2019-10-14Fix bug in guess_msvc()Karen Arutyunov1-1/+1
2019-10-14Add missing #ifndef BUILD2_BOOTSTRAP around find_msvc() callBoris Kolpackov1-0/+2
2019-10-14Implement MSVC installation discovery for version 15 (2017) and laterKaren Arutyunov7-182/+1695
In particular, this removes the requirement to build from the Visual Studio command prompt. Note that since MSVC compiler binaries are target-specific (i.e., there are no -m32/-m64 options nor something like /MACHINE), in this case we default to a 64-bit build (a 32-bit build can still be achieved by running from a suitable command prompt). Finally, this mechanism is also used to find Clang bundled with MSVC.
2019-10-11Various fixes to make clang-cl workBoris Kolpackov2-31/+45
Note that clang-cl's /showInclude output differs from cl's in the face of missing headers. In particular, it does not issue C1083 that we expect. As a result, this part of clang-cl's support is currently non-functional (the rest seems to work, however).
2019-10-11Switch clang-apple to primary/variant version setupBoris Kolpackov2-9/+60
2019-10-11Add support for clang-clBoris Kolpackov4-150/+297
The compiler type is `msvc`, variant `clang`.
2019-10-10Add %VCINSTALLDIR%\Tools\Llvm\bin as fallback search directory for ClangBoris Kolpackov1-6/+28
2019-10-09Prepend pattern search paths to PATH when running binutilsBoris Kolpackov1-4/+66
This way any dependent tools (such as mt.exe that is invoked by link.exe) are first search for in there.
2019-10-08Extend /LIBPATH handling to win32-msvc target systemBoris Kolpackov2-2/+4